Upped version numbers, cleaned up code, fixed my name.
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Parser / DB2 / Grammar.pm
1 package SQL::Translator::Parser::DB2::Grammar;
2
3 use vars qw[ $VERSION ];
4 $VERSION = '1.60';
5
6 use Parse::RecDescent;
7
8 { my $ERRORS;
9
10
11 package Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar;
12 use strict;
13 use vars qw($skip $AUTOLOAD  );
14 $skip = '\s*';
15
16     my ( %tables, $table_order, @table_comments, @views, @triggers );
17 ;
18
19
20 {
21 local $SIG{__WARN__} = sub {0};
22 # PRETEND TO BE IN Parse::RecDescent NAMESPACE
23 *Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::AUTOLOAD     = sub
24 {
25         no strict 'refs';
26         $AUTOLOAD =~ s/^Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar/Parse::RecDescent/;
27         goto &{$AUTOLOAD};
28 }
29 }
30
31 push @Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ISA, 'Parse::RecDescent';
32 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_17_of_rule_sysibm_function
34 {
35         my $thisparser = $_[0];
36         use vars q{$tracelevel};
37         local $tracelevel = ($tracelevel||0)+1;
38         $ERRORS = 0;
39         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_17_of_rule_sysibm_function"};
40         
41         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_17_of_rule_sysibm_function]},
42                                   Parse::RecDescent::_tracefirst($_[1]),
43                                   q{_alternation_1_of_production_17_of_rule_sysibm_function},
44                                   $tracelevel)
45                                         if defined $::RD_TRACE;
46
47         
48         my $err_at = @{$thisparser->{errors}};
49
50         my $score;
51         my $score_return;
52         my $_tok;
53         my $return = undef;
54         my $_matched=0;
55         my $commit=0;
56         my @item = ();
57         my %item = ();
58         my $repeating =  defined($_[2]) && $_[2];
59         my $_noactions = defined($_[3]) && $_[3];
60         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
61         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
62         my $text;
63         my $lastsep="";
64         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
65         $expectation->at($_[1]);
66         
67         my $thisline;
68         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
69
70         
71
72         while (!$_matched && !$commit)
73         {
74                 
75                 Parse::RecDescent::_trace(q{Trying production: [/DECIMAL/i]},
76                                           Parse::RecDescent::_tracefirst($_[1]),
77                                           q{_alternation_1_of_production_17_of_rule_sysibm_function},
78                                           $tracelevel)
79                                                 if defined $::RD_TRACE;
80                 my $thisprod = $thisrule->{"prods"}[0];
81                 $text = $_[1];
82                 my $_savetext;
83                 @item = (q{_alternation_1_of_production_17_of_rule_sysibm_function});
84                 %item = (__RULE__ => q{_alternation_1_of_production_17_of_rule_sysibm_function});
85                 my $repcount = 0;
86
87
88                 Parse::RecDescent::_trace(q{Trying terminal: [/DECIMAL/i]}, Parse::RecDescent::_tracefirst($text),
89                                           q{_alternation_1_of_production_17_of_rule_sysibm_function},
90                                           $tracelevel)
91                                                 if defined $::RD_TRACE;
92                 $lastsep = "";
93                 $expectation->is(q{})->at($text);
94                 
95
96                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DECIMAL)//i)
97                 {
98                         
99                         $expectation->failed();
100                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
101                                                   Parse::RecDescent::_tracefirst($text))
102                                         if defined $::RD_TRACE;
103
104                         last;
105                 }
106                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
107                                                 . $& . q{])},
108                                                   Parse::RecDescent::_tracefirst($text))
109                                         if defined $::RD_TRACE;
110                 push @item, $item{__PATTERN1__}=$&;
111                 
112
113
114                 Parse::RecDescent::_trace(q{>>Matched production: [/DECIMAL/i]<<},
115                                           Parse::RecDescent::_tracefirst($text),
116                                           q{_alternation_1_of_production_17_of_rule_sysibm_function},
117                                           $tracelevel)
118                                                 if defined $::RD_TRACE;
119                 $_matched = 1;
120                 last;
121         }
122
123
124         while (!$_matched && !$commit)
125         {
126                 
127                 Parse::RecDescent::_trace(q{Trying production: [/DEC/i]},
128                                           Parse::RecDescent::_tracefirst($_[1]),
129                                           q{_alternation_1_of_production_17_of_rule_sysibm_function},
130                                           $tracelevel)
131                                                 if defined $::RD_TRACE;
132                 my $thisprod = $thisrule->{"prods"}[1];
133                 $text = $_[1];
134                 my $_savetext;
135                 @item = (q{_alternation_1_of_production_17_of_rule_sysibm_function});
136                 %item = (__RULE__ => q{_alternation_1_of_production_17_of_rule_sysibm_function});
137                 my $repcount = 0;
138
139
140                 Parse::RecDescent::_trace(q{Trying terminal: [/DEC/i]}, Parse::RecDescent::_tracefirst($text),
141                                           q{_alternation_1_of_production_17_of_rule_sysibm_function},
142                                           $tracelevel)
143                                                 if defined $::RD_TRACE;
144                 $lastsep = "";
145                 $expectation->is(q{})->at($text);
146                 
147
148                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DEC)//i)
149                 {
150                         
151                         $expectation->failed();
152                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
153                                                   Parse::RecDescent::_tracefirst($text))
154                                         if defined $::RD_TRACE;
155
156                         last;
157                 }
158                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
159                                                 . $& . q{])},
160                                                   Parse::RecDescent::_tracefirst($text))
161                                         if defined $::RD_TRACE;
162                 push @item, $item{__PATTERN1__}=$&;
163                 
164
165
166                 Parse::RecDescent::_trace(q{>>Matched production: [/DEC/i]<<},
167                                           Parse::RecDescent::_tracefirst($text),
168                                           q{_alternation_1_of_production_17_of_rule_sysibm_function},
169                                           $tracelevel)
170                                                 if defined $::RD_TRACE;
171                 $_matched = 1;
172                 last;
173         }
174
175
176         unless ( $_matched || defined($return) || defined($score) )
177         {
178                 
179
180                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
181                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
182                                          Parse::RecDescent::_tracefirst($_[1]),
183                                          q{_alternation_1_of_production_17_of_rule_sysibm_function},
184                                          $tracelevel)
185                                         if defined $::RD_TRACE;
186                 return undef;
187         }
188         if (!defined($return) && defined($score))
189         {
190                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
191                                           q{_alternation_1_of_production_17_of_rule_sysibm_function},
192                                           $tracelevel)
193                                                 if defined $::RD_TRACE;
194                 $return = $score_return;
195         }
196         splice @{$thisparser->{errors}}, $err_at;
197         $return = $item[$#item] unless defined $return;
198         if (defined $::RD_TRACE)
199         {
200                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
201                                           $return . q{])}, "",
202                                           q{_alternation_1_of_production_17_of_rule_sysibm_function},
203                                           $tracelevel);
204                 Parse::RecDescent::_trace(q{(consumed: [} .
205                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
206                                           Parse::RecDescent::_tracefirst($text),
207                                           , q{_alternation_1_of_production_17_of_rule_sysibm_function},
208                                           $tracelevel)
209         }
210         $_[1] = $text;
211         return $return;
212 }
213
214 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
215 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action
216 {
217         my $thisparser = $_[0];
218         use vars q{$tracelevel};
219         local $tracelevel = ($tracelevel||0)+1;
220         $ERRORS = 0;
221         my $thisrule = $thisparser->{"rules"}{"triggered_action"};
222         
223         Parse::RecDescent::_trace(q{Trying rule: [triggered_action]},
224                                   Parse::RecDescent::_tracefirst($_[1]),
225                                   q{triggered_action},
226                                   $tracelevel)
227                                         if defined $::RD_TRACE;
228
229         
230         my $err_at = @{$thisparser->{errors}};
231
232         my $score;
233         my $score_return;
234         my $_tok;
235         my $return = undef;
236         my $_matched=0;
237         my $commit=0;
238         my @item = ();
239         my %item = ();
240         my $repeating =  defined($_[2]) && $_[2];
241         my $_noactions = defined($_[3]) && $_[3];
242         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
243         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
244         my $text;
245         my $lastsep="";
246         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
247         $expectation->at($_[1]);
248         
249         my $thisline;
250         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
251
252         
253
254         while (!$_matched && !$commit)
255         {
256                 
257                 Parse::RecDescent::_trace(q{Trying production: [when_clause SQL_procedure_statement]},
258                                           Parse::RecDescent::_tracefirst($_[1]),
259                                           q{triggered_action},
260                                           $tracelevel)
261                                                 if defined $::RD_TRACE;
262                 my $thisprod = $thisrule->{"prods"}[0];
263                 $text = $_[1];
264                 my $_savetext;
265                 @item = (q{triggered_action});
266                 %item = (__RULE__ => q{triggered_action});
267                 my $repcount = 0;
268
269
270                 Parse::RecDescent::_trace(q{Trying repeated subrule: [when_clause]},
271                                   Parse::RecDescent::_tracefirst($text),
272                                   q{triggered_action},
273                                   $tracelevel)
274                                         if defined $::RD_TRACE;
275                 $expectation->is(q{})->at($text);
276                 
277                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::when_clause, 0, 1, $_noactions,$expectation,undef))) 
278                 {
279                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [when_clause]>>},
280                                                   Parse::RecDescent::_tracefirst($text),
281                                                   q{triggered_action},
282                                                   $tracelevel)
283                                                         if defined $::RD_TRACE;
284                         last;
285                 }
286                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [when_clause]<< (}
287                                         . @$_tok . q{ times)},
288                                           
289                                           Parse::RecDescent::_tracefirst($text),
290                                           q{triggered_action},
291                                           $tracelevel)
292                                                 if defined $::RD_TRACE;
293                 $item{q{when_clause(?)}} = $_tok;
294                 push @item, $_tok;
295                 
296
297
298                 Parse::RecDescent::_trace(q{Trying subrule: [SQL_procedure_statement]},
299                                   Parse::RecDescent::_tracefirst($text),
300                                   q{triggered_action},
301                                   $tracelevel)
302                                         if defined $::RD_TRACE;
303                 if (1) { no strict qw{refs};
304                 $expectation->is(q{SQL_procedure_statement})->at($text);
305                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
306                 {
307                         
308                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [SQL_procedure_statement]>>},
309                                                   Parse::RecDescent::_tracefirst($text),
310                                                   q{triggered_action},
311                                                   $tracelevel)
312                                                         if defined $::RD_TRACE;
313                         $expectation->failed();
314                         last;
315                 }
316                 Parse::RecDescent::_trace(q{>>Matched subrule: [SQL_procedure_statement]<< (return value: [}
317                                         . $_tok . q{]},
318                                           
319                                           Parse::RecDescent::_tracefirst($text),
320                                           q{triggered_action},
321                                           $tracelevel)
322                                                 if defined $::RD_TRACE;
323                 $item{q{SQL_procedure_statement}} = $_tok;
324                 push @item, $_tok;
325                 
326                 }
327
328                 Parse::RecDescent::_trace(q{Trying action},
329                                           Parse::RecDescent::_tracefirst($text),
330                                           q{triggered_action},
331                                           $tracelevel)
332                                                 if defined $::RD_TRACE;
333                 
334
335                 $_tok = ($_noactions) ? 0 : do { $return = { 'condition' => $item[1][0],
336               'statement' => $item{'SQL_procedure_statement'} };
337 };
338                 unless (defined $_tok)
339                 {
340                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
341                                         if defined $::RD_TRACE;
342                         last;
343                 }
344                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
345                                           . $_tok . q{])},
346                                           Parse::RecDescent::_tracefirst($text))
347                                                 if defined $::RD_TRACE;
348                 push @item, $_tok;
349                 $item{__ACTION1__}=$_tok;
350                 
351
352
353                 Parse::RecDescent::_trace(q{>>Matched production: [when_clause SQL_procedure_statement]<<},
354                                           Parse::RecDescent::_tracefirst($text),
355                                           q{triggered_action},
356                                           $tracelevel)
357                                                 if defined $::RD_TRACE;
358                 $_matched = 1;
359                 last;
360         }
361
362
363         unless ( $_matched || defined($return) || defined($score) )
364         {
365                 
366
367                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
368                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
369                                          Parse::RecDescent::_tracefirst($_[1]),
370                                          q{triggered_action},
371                                          $tracelevel)
372                                         if defined $::RD_TRACE;
373                 return undef;
374         }
375         if (!defined($return) && defined($score))
376         {
377                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
378                                           q{triggered_action},
379                                           $tracelevel)
380                                                 if defined $::RD_TRACE;
381                 $return = $score_return;
382         }
383         splice @{$thisparser->{errors}}, $err_at;
384         $return = $item[$#item] unless defined $return;
385         if (defined $::RD_TRACE)
386         {
387                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
388                                           $return . q{])}, "",
389                                           q{triggered_action},
390                                           $tracelevel);
391                 Parse::RecDescent::_trace(q{(consumed: [} .
392                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
393                                           Parse::RecDescent::_tracefirst($text),
394                                           , q{triggered_action},
395                                           $tracelevel)
396         }
397         $_[1] = $text;
398         return $return;
399 }
400
401 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
402 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_search_condition
403 {
404         my $thisparser = $_[0];
405         use vars q{$tracelevel};
406         local $tracelevel = ($tracelevel||0)+1;
407         $ERRORS = 0;
408         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_2_of_rule_search_condition"};
409         
410         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_2_of_rule_search_condition]},
411                                   Parse::RecDescent::_tracefirst($_[1]),
412                                   q{_alternation_1_of_production_2_of_rule_search_condition},
413                                   $tracelevel)
414                                         if defined $::RD_TRACE;
415
416         
417         my $err_at = @{$thisparser->{errors}};
418
419         my $score;
420         my $score_return;
421         my $_tok;
422         my $return = undef;
423         my $_matched=0;
424         my $commit=0;
425         my @item = ();
426         my %item = ();
427         my $repeating =  defined($_[2]) && $_[2];
428         my $_noactions = defined($_[3]) && $_[3];
429         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
430         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
431         my $text;
432         my $lastsep="";
433         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
434         $expectation->at($_[1]);
435         
436         my $thisline;
437         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
438
439         
440
441         while (!$_matched && !$commit)
442         {
443                 
444                 Parse::RecDescent::_trace(q{Trying production: [predicate /SELECTIVITY/i]},
445                                           Parse::RecDescent::_tracefirst($_[1]),
446                                           q{_alternation_1_of_production_2_of_rule_search_condition},
447                                           $tracelevel)
448                                                 if defined $::RD_TRACE;
449                 my $thisprod = $thisrule->{"prods"}[0];
450                 $text = $_[1];
451                 my $_savetext;
452                 @item = (q{_alternation_1_of_production_2_of_rule_search_condition});
453                 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_search_condition});
454                 my $repcount = 0;
455
456
457                 Parse::RecDescent::_trace(q{Trying subrule: [predicate]},
458                                   Parse::RecDescent::_tracefirst($text),
459                                   q{_alternation_1_of_production_2_of_rule_search_condition},
460                                   $tracelevel)
461                                         if defined $::RD_TRACE;
462                 if (1) { no strict qw{refs};
463                 $expectation->is(q{})->at($text);
464                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
465                 {
466                         
467                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [predicate]>>},
468                                                   Parse::RecDescent::_tracefirst($text),
469                                                   q{_alternation_1_of_production_2_of_rule_search_condition},
470                                                   $tracelevel)
471                                                         if defined $::RD_TRACE;
472                         $expectation->failed();
473                         last;
474                 }
475                 Parse::RecDescent::_trace(q{>>Matched subrule: [predicate]<< (return value: [}
476                                         . $_tok . q{]},
477                                           
478                                           Parse::RecDescent::_tracefirst($text),
479                                           q{_alternation_1_of_production_2_of_rule_search_condition},
480                                           $tracelevel)
481                                                 if defined $::RD_TRACE;
482                 $item{q{predicate}} = $_tok;
483                 push @item, $_tok;
484                 
485                 }
486
487                 Parse::RecDescent::_trace(q{Trying repeated subrule: [/SELECTIVITY/i]},
488                                   Parse::RecDescent::_tracefirst($text),
489                                   q{_alternation_1_of_production_2_of_rule_search_condition},
490                                   $tracelevel)
491                                         if defined $::RD_TRACE;
492                 $expectation->is(q{/SELECTIVITY/i})->at($text);
493                 
494                 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))) 
495                 {
496                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/SELECTIVITY/i]>>},
497                                                   Parse::RecDescent::_tracefirst($text),
498                                                   q{_alternation_1_of_production_2_of_rule_search_condition},
499                                                   $tracelevel)
500                                                         if defined $::RD_TRACE;
501                         last;
502                 }
503                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition]<< (}
504                                         . @$_tok . q{ times)},
505                                           
506                                           Parse::RecDescent::_tracefirst($text),
507                                           q{_alternation_1_of_production_2_of_rule_search_condition},
508                                           $tracelevel)
509                                                 if defined $::RD_TRACE;
510                 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition(?)}} = $_tok;
511                 push @item, $_tok;
512                 
513
514
515
516                 Parse::RecDescent::_trace(q{>>Matched production: [predicate /SELECTIVITY/i]<<},
517                                           Parse::RecDescent::_tracefirst($text),
518                                           q{_alternation_1_of_production_2_of_rule_search_condition},
519                                           $tracelevel)
520                                                 if defined $::RD_TRACE;
521                 $_matched = 1;
522                 last;
523         }
524
525
526         while (!$_matched && !$commit)
527         {
528                 
529                 Parse::RecDescent::_trace(q{Trying production: ['(' search_condition ')']},
530                                           Parse::RecDescent::_tracefirst($_[1]),
531                                           q{_alternation_1_of_production_2_of_rule_search_condition},
532                                           $tracelevel)
533                                                 if defined $::RD_TRACE;
534                 my $thisprod = $thisrule->{"prods"}[1];
535                 $text = $_[1];
536                 my $_savetext;
537                 @item = (q{_alternation_1_of_production_2_of_rule_search_condition});
538                 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_search_condition});
539                 my $repcount = 0;
540
541
542                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
543                                           Parse::RecDescent::_tracefirst($text),
544                                           q{_alternation_1_of_production_2_of_rule_search_condition},
545                                           $tracelevel)
546                                                 if defined $::RD_TRACE;
547                 $lastsep = "";
548                 $expectation->is(q{})->at($text);
549                 
550
551                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
552                 {
553                         
554                         $expectation->failed();
555                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
556                                                   Parse::RecDescent::_tracefirst($text))
557                                                         if defined $::RD_TRACE;
558                         last;
559                 }
560                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
561                                                 . $& . q{])},
562                                                   Parse::RecDescent::_tracefirst($text))
563                                                         if defined $::RD_TRACE;
564                 push @item, $item{__STRING1__}=$&;
565                 
566
567                 Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
568                                   Parse::RecDescent::_tracefirst($text),
569                                   q{_alternation_1_of_production_2_of_rule_search_condition},
570                                   $tracelevel)
571                                         if defined $::RD_TRACE;
572                 if (1) { no strict qw{refs};
573                 $expectation->is(q{search_condition})->at($text);
574                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
575                 {
576                         
577                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
578                                                   Parse::RecDescent::_tracefirst($text),
579                                                   q{_alternation_1_of_production_2_of_rule_search_condition},
580                                                   $tracelevel)
581                                                         if defined $::RD_TRACE;
582                         $expectation->failed();
583                         last;
584                 }
585                 Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
586                                         . $_tok . q{]},
587                                           
588                                           Parse::RecDescent::_tracefirst($text),
589                                           q{_alternation_1_of_production_2_of_rule_search_condition},
590                                           $tracelevel)
591                                                 if defined $::RD_TRACE;
592                 $item{q{search_condition}} = $_tok;
593                 push @item, $_tok;
594                 
595                 }
596
597                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
598                                           Parse::RecDescent::_tracefirst($text),
599                                           q{_alternation_1_of_production_2_of_rule_search_condition},
600                                           $tracelevel)
601                                                 if defined $::RD_TRACE;
602                 $lastsep = "";
603                 $expectation->is(q{')'})->at($text);
604                 
605
606                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
607                 {
608                         
609                         $expectation->failed();
610                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
611                                                   Parse::RecDescent::_tracefirst($text))
612                                                         if defined $::RD_TRACE;
613                         last;
614                 }
615                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
616                                                 . $& . q{])},
617                                                   Parse::RecDescent::_tracefirst($text))
618                                                         if defined $::RD_TRACE;
619                 push @item, $item{__STRING2__}=$&;
620                 
621
622
623                 Parse::RecDescent::_trace(q{>>Matched production: ['(' search_condition ')']<<},
624                                           Parse::RecDescent::_tracefirst($text),
625                                           q{_alternation_1_of_production_2_of_rule_search_condition},
626                                           $tracelevel)
627                                                 if defined $::RD_TRACE;
628                 $_matched = 1;
629                 last;
630         }
631
632
633         unless ( $_matched || defined($return) || defined($score) )
634         {
635                 
636
637                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
638                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
639                                          Parse::RecDescent::_tracefirst($_[1]),
640                                          q{_alternation_1_of_production_2_of_rule_search_condition},
641                                          $tracelevel)
642                                         if defined $::RD_TRACE;
643                 return undef;
644         }
645         if (!defined($return) && defined($score))
646         {
647                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
648                                           q{_alternation_1_of_production_2_of_rule_search_condition},
649                                           $tracelevel)
650                                                 if defined $::RD_TRACE;
651                 $return = $score_return;
652         }
653         splice @{$thisparser->{errors}}, $err_at;
654         $return = $item[$#item] unless defined $return;
655         if (defined $::RD_TRACE)
656         {
657                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
658                                           $return . q{])}, "",
659                                           q{_alternation_1_of_production_2_of_rule_search_condition},
660                                           $tracelevel);
661                 Parse::RecDescent::_trace(q{(consumed: [} .
662                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
663                                           Parse::RecDescent::_tracefirst($text),
664                                           , q{_alternation_1_of_production_2_of_rule_search_condition},
665                                           $tracelevel)
666         }
667         $_[1] = $text;
668         return $return;
669 }
670
671 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
672 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::name1
673 {
674         my $thisparser = $_[0];
675         use vars q{$tracelevel};
676         local $tracelevel = ($tracelevel||0)+1;
677         $ERRORS = 0;
678         my $thisrule = $thisparser->{"rules"}{"name1"};
679         
680         Parse::RecDescent::_trace(q{Trying rule: [name1]},
681                                   Parse::RecDescent::_tracefirst($_[1]),
682                                   q{name1},
683                                   $tracelevel)
684                                         if defined $::RD_TRACE;
685
686         
687         my $err_at = @{$thisparser->{errors}};
688
689         my $score;
690         my $score_return;
691         my $_tok;
692         my $return = undef;
693         my $_matched=0;
694         my $commit=0;
695         my @item = ();
696         my %item = ();
697         my $repeating =  defined($_[2]) && $_[2];
698         my $_noactions = defined($_[3]) && $_[3];
699         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
700         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
701         my $text;
702         my $lastsep="";
703         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
704         $expectation->at($_[1]);
705         
706         my $thisline;
707         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
708
709         
710
711         while (!$_matched && !$commit)
712         {
713                 
714                 Parse::RecDescent::_trace(q{Trying production: [NAME]},
715                                           Parse::RecDescent::_tracefirst($_[1]),
716                                           q{name1},
717                                           $tracelevel)
718                                                 if defined $::RD_TRACE;
719                 my $thisprod = $thisrule->{"prods"}[0];
720                 $text = $_[1];
721                 my $_savetext;
722                 @item = (q{name1});
723                 %item = (__RULE__ => q{name1});
724                 my $repcount = 0;
725
726
727                 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
728                                   Parse::RecDescent::_tracefirst($text),
729                                   q{name1},
730                                   $tracelevel)
731                                         if defined $::RD_TRACE;
732                 if (1) { no strict qw{refs};
733                 $expectation->is(q{})->at($text);
734                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
735                 {
736                         
737                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
738                                                   Parse::RecDescent::_tracefirst($text),
739                                                   q{name1},
740                                                   $tracelevel)
741                                                         if defined $::RD_TRACE;
742                         $expectation->failed();
743                         last;
744                 }
745                 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
746                                         . $_tok . q{]},
747                                           
748                                           Parse::RecDescent::_tracefirst($text),
749                                           q{name1},
750                                           $tracelevel)
751                                                 if defined $::RD_TRACE;
752                 $item{q{NAME}} = $_tok;
753                 push @item, $_tok;
754                 
755                 }
756
757
758                 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
759                                           Parse::RecDescent::_tracefirst($text),
760                                           q{name1},
761                                           $tracelevel)
762                                                 if defined $::RD_TRACE;
763                 $_matched = 1;
764                 last;
765         }
766
767
768         unless ( $_matched || defined($return) || defined($score) )
769         {
770                 
771
772                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
773                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
774                                          Parse::RecDescent::_tracefirst($_[1]),
775                                          q{name1},
776                                          $tracelevel)
777                                         if defined $::RD_TRACE;
778                 return undef;
779         }
780         if (!defined($return) && defined($score))
781         {
782                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
783                                           q{name1},
784                                           $tracelevel)
785                                                 if defined $::RD_TRACE;
786                 $return = $score_return;
787         }
788         splice @{$thisparser->{errors}}, $err_at;
789         $return = $item[$#item] unless defined $return;
790         if (defined $::RD_TRACE)
791         {
792                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
793                                           $return . q{])}, "",
794                                           q{name1},
795                                           $tracelevel);
796                 Parse::RecDescent::_trace(q{(consumed: [} .
797                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
798                                           Parse::RecDescent::_tracefirst($text),
799                                           , q{name1},
800                                           $tracelevel)
801         }
802         $_[1] = $text;
803         return $return;
804 }
805
806 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
807 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cond
808 {
809         my $thisparser = $_[0];
810         use vars q{$tracelevel};
811         local $tracelevel = ($tracelevel||0)+1;
812         $ERRORS = 0;
813         my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_cond"};
814         
815         Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_cond]},
816                                   Parse::RecDescent::_tracefirst($_[1]),
817                                   q{_alternation_2_of_production_1_of_rule_cond},
818                                   $tracelevel)
819                                         if defined $::RD_TRACE;
820
821         
822         my $err_at = @{$thisparser->{errors}};
823
824         my $score;
825         my $score_return;
826         my $_tok;
827         my $return = undef;
828         my $_matched=0;
829         my $commit=0;
830         my @item = ();
831         my %item = ();
832         my $repeating =  defined($_[2]) && $_[2];
833         my $_noactions = defined($_[3]) && $_[3];
834         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
835         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
836         my $text;
837         my $lastsep="";
838         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
839         $expectation->at($_[1]);
840         
841         my $thisline;
842         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
843
844         
845
846         while (!$_matched && !$commit)
847         {
848                 
849                 Parse::RecDescent::_trace(q{Trying production: [predicate /SELECTIVITY/i]},
850                                           Parse::RecDescent::_tracefirst($_[1]),
851                                           q{_alternation_2_of_production_1_of_rule_cond},
852                                           $tracelevel)
853                                                 if defined $::RD_TRACE;
854                 my $thisprod = $thisrule->{"prods"}[0];
855                 $text = $_[1];
856                 my $_savetext;
857                 @item = (q{_alternation_2_of_production_1_of_rule_cond});
858                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cond});
859                 my $repcount = 0;
860
861
862                 Parse::RecDescent::_trace(q{Trying subrule: [predicate]},
863                                   Parse::RecDescent::_tracefirst($text),
864                                   q{_alternation_2_of_production_1_of_rule_cond},
865                                   $tracelevel)
866                                         if defined $::RD_TRACE;
867                 if (1) { no strict qw{refs};
868                 $expectation->is(q{})->at($text);
869                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
870                 {
871                         
872                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [predicate]>>},
873                                                   Parse::RecDescent::_tracefirst($text),
874                                                   q{_alternation_2_of_production_1_of_rule_cond},
875                                                   $tracelevel)
876                                                         if defined $::RD_TRACE;
877                         $expectation->failed();
878                         last;
879                 }
880                 Parse::RecDescent::_trace(q{>>Matched subrule: [predicate]<< (return value: [}
881                                         . $_tok . q{]},
882                                           
883                                           Parse::RecDescent::_tracefirst($text),
884                                           q{_alternation_2_of_production_1_of_rule_cond},
885                                           $tracelevel)
886                                                 if defined $::RD_TRACE;
887                 $item{q{predicate}} = $_tok;
888                 push @item, $_tok;
889                 
890                 }
891
892                 Parse::RecDescent::_trace(q{Trying repeated subrule: [/SELECTIVITY/i]},
893                                   Parse::RecDescent::_tracefirst($text),
894                                   q{_alternation_2_of_production_1_of_rule_cond},
895                                   $tracelevel)
896                                         if defined $::RD_TRACE;
897                 $expectation->is(q{/SELECTIVITY/i})->at($text);
898                 
899                 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))) 
900                 {
901                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/SELECTIVITY/i]>>},
902                                                   Parse::RecDescent::_tracefirst($text),
903                                                   q{_alternation_2_of_production_1_of_rule_cond},
904                                                   $tracelevel)
905                                                         if defined $::RD_TRACE;
906                         last;
907                 }
908                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond]<< (}
909                                         . @$_tok . q{ times)},
910                                           
911                                           Parse::RecDescent::_tracefirst($text),
912                                           q{_alternation_2_of_production_1_of_rule_cond},
913                                           $tracelevel)
914                                                 if defined $::RD_TRACE;
915                 $item{q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond(?)}} = $_tok;
916                 push @item, $_tok;
917                 
918
919
920
921                 Parse::RecDescent::_trace(q{>>Matched production: [predicate /SELECTIVITY/i]<<},
922                                           Parse::RecDescent::_tracefirst($text),
923                                           q{_alternation_2_of_production_1_of_rule_cond},
924                                           $tracelevel)
925                                                 if defined $::RD_TRACE;
926                 $_matched = 1;
927                 last;
928         }
929
930
931         while (!$_matched && !$commit)
932         {
933                 
934                 Parse::RecDescent::_trace(q{Trying production: ['(' search_condition ')']},
935                                           Parse::RecDescent::_tracefirst($_[1]),
936                                           q{_alternation_2_of_production_1_of_rule_cond},
937                                           $tracelevel)
938                                                 if defined $::RD_TRACE;
939                 my $thisprod = $thisrule->{"prods"}[1];
940                 $text = $_[1];
941                 my $_savetext;
942                 @item = (q{_alternation_2_of_production_1_of_rule_cond});
943                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cond});
944                 my $repcount = 0;
945
946
947                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
948                                           Parse::RecDescent::_tracefirst($text),
949                                           q{_alternation_2_of_production_1_of_rule_cond},
950                                           $tracelevel)
951                                                 if defined $::RD_TRACE;
952                 $lastsep = "";
953                 $expectation->is(q{})->at($text);
954                 
955
956                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
957                 {
958                         
959                         $expectation->failed();
960                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
961                                                   Parse::RecDescent::_tracefirst($text))
962                                                         if defined $::RD_TRACE;
963                         last;
964                 }
965                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
966                                                 . $& . q{])},
967                                                   Parse::RecDescent::_tracefirst($text))
968                                                         if defined $::RD_TRACE;
969                 push @item, $item{__STRING1__}=$&;
970                 
971
972                 Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
973                                   Parse::RecDescent::_tracefirst($text),
974                                   q{_alternation_2_of_production_1_of_rule_cond},
975                                   $tracelevel)
976                                         if defined $::RD_TRACE;
977                 if (1) { no strict qw{refs};
978                 $expectation->is(q{search_condition})->at($text);
979                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
980                 {
981                         
982                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
983                                                   Parse::RecDescent::_tracefirst($text),
984                                                   q{_alternation_2_of_production_1_of_rule_cond},
985                                                   $tracelevel)
986                                                         if defined $::RD_TRACE;
987                         $expectation->failed();
988                         last;
989                 }
990                 Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
991                                         . $_tok . q{]},
992                                           
993                                           Parse::RecDescent::_tracefirst($text),
994                                           q{_alternation_2_of_production_1_of_rule_cond},
995                                           $tracelevel)
996                                                 if defined $::RD_TRACE;
997                 $item{q{search_condition}} = $_tok;
998                 push @item, $_tok;
999                 
1000                 }
1001
1002                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
1003                                           Parse::RecDescent::_tracefirst($text),
1004                                           q{_alternation_2_of_production_1_of_rule_cond},
1005                                           $tracelevel)
1006                                                 if defined $::RD_TRACE;
1007                 $lastsep = "";
1008                 $expectation->is(q{')'})->at($text);
1009                 
1010
1011                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
1012                 {
1013                         
1014                         $expectation->failed();
1015                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
1016                                                   Parse::RecDescent::_tracefirst($text))
1017                                                         if defined $::RD_TRACE;
1018                         last;
1019                 }
1020                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1021                                                 . $& . q{])},
1022                                                   Parse::RecDescent::_tracefirst($text))
1023                                                         if defined $::RD_TRACE;
1024                 push @item, $item{__STRING2__}=$&;
1025                 
1026
1027
1028                 Parse::RecDescent::_trace(q{>>Matched production: ['(' search_condition ')']<<},
1029                                           Parse::RecDescent::_tracefirst($text),
1030                                           q{_alternation_2_of_production_1_of_rule_cond},
1031                                           $tracelevel)
1032                                                 if defined $::RD_TRACE;
1033                 $_matched = 1;
1034                 last;
1035         }
1036
1037
1038         unless ( $_matched || defined($return) || defined($score) )
1039         {
1040                 
1041
1042                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
1043                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1044                                          Parse::RecDescent::_tracefirst($_[1]),
1045                                          q{_alternation_2_of_production_1_of_rule_cond},
1046                                          $tracelevel)
1047                                         if defined $::RD_TRACE;
1048                 return undef;
1049         }
1050         if (!defined($return) && defined($score))
1051         {
1052                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1053                                           q{_alternation_2_of_production_1_of_rule_cond},
1054                                           $tracelevel)
1055                                                 if defined $::RD_TRACE;
1056                 $return = $score_return;
1057         }
1058         splice @{$thisparser->{errors}}, $err_at;
1059         $return = $item[$#item] unless defined $return;
1060         if (defined $::RD_TRACE)
1061         {
1062                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1063                                           $return . q{])}, "",
1064                                           q{_alternation_2_of_production_1_of_rule_cond},
1065                                           $tracelevel);
1066                 Parse::RecDescent::_trace(q{(consumed: [} .
1067                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
1068                                           Parse::RecDescent::_tracefirst($text),
1069                                           , q{_alternation_2_of_production_1_of_rule_cond},
1070                                           $tracelevel)
1071         }
1072         $_[1] = $text;
1073         return $return;
1074 }
1075
1076 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1077 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression
1078 {
1079         my $thisparser = $_[0];
1080         use vars q{$tracelevel};
1081         local $tracelevel = ($tracelevel||0)+1;
1082         $ERRORS = 0;
1083         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_expression"};
1084         
1085         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_expression]},
1086                                   Parse::RecDescent::_tracefirst($_[1]),
1087                                   q{_alternation_1_of_production_1_of_rule_expression},
1088                                   $tracelevel)
1089                                         if defined $::RD_TRACE;
1090
1091         
1092         my $err_at = @{$thisparser->{errors}};
1093
1094         my $score;
1095         my $score_return;
1096         my $_tok;
1097         my $return = undef;
1098         my $_matched=0;
1099         my $commit=0;
1100         my @item = ();
1101         my %item = ();
1102         my $repeating =  defined($_[2]) && $_[2];
1103         my $_noactions = defined($_[3]) && $_[3];
1104         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
1105         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
1106         my $text;
1107         my $lastsep="";
1108         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1109         $expectation->at($_[1]);
1110         
1111         my $thisline;
1112         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1113
1114         
1115
1116         while (!$_matched && !$commit)
1117         {
1118                 
1119                 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]},
1120                                           Parse::RecDescent::_tracefirst($_[1]),
1121                                           q{_alternation_1_of_production_1_of_rule_expression},
1122                                           $tracelevel)
1123                                                 if defined $::RD_TRACE;
1124                 my $thisprod = $thisrule->{"prods"}[0];
1125                 $text = $_[1];
1126                 my $_savetext;
1127                 @item = (q{_alternation_1_of_production_1_of_rule_expression});
1128                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_expression});
1129                 my $repcount = 0;
1130
1131
1132                 Parse::RecDescent::_trace(q{Trying repeated subrule: ['+', or '-']},
1133                                   Parse::RecDescent::_tracefirst($text),
1134                                   q{_alternation_1_of_production_1_of_rule_expression},
1135                                   $tracelevel)
1136                                         if defined $::RD_TRACE;
1137                 $expectation->is(q{})->at($text);
1138                 
1139                 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))) 
1140                 {
1141                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: ['+', or '-']>>},
1142                                                   Parse::RecDescent::_tracefirst($text),
1143                                                   q{_alternation_1_of_production_1_of_rule_expression},
1144                                                   $tracelevel)
1145                                                         if defined $::RD_TRACE;
1146                         last;
1147                 }
1148                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]<< (}
1149                                         . @$_tok . q{ times)},
1150                                           
1151                                           Parse::RecDescent::_tracefirst($text),
1152                                           q{_alternation_1_of_production_1_of_rule_expression},
1153                                           $tracelevel)
1154                                                 if defined $::RD_TRACE;
1155                 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression(?)}} = $_tok;
1156                 push @item, $_tok;
1157                 
1158
1159
1160                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
1161                                   Parse::RecDescent::_tracefirst($text),
1162                                   q{_alternation_1_of_production_1_of_rule_expression},
1163                                   $tracelevel)
1164                                         if defined $::RD_TRACE;
1165                 if (1) { no strict qw{refs};
1166                 $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);
1167                 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 })))
1168                 {
1169                         
1170                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]>>},
1171                                                   Parse::RecDescent::_tracefirst($text),
1172                                                   q{_alternation_1_of_production_1_of_rule_expression},
1173                                                   $tracelevel)
1174                                                         if defined $::RD_TRACE;
1175                         $expectation->failed();
1176                         last;
1177                 }
1178                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]<< (return value: [}
1179                                         . $_tok . q{]},
1180                                           
1181                                           Parse::RecDescent::_tracefirst($text),
1182                                           q{_alternation_1_of_production_1_of_rule_expression},
1183                                           $tracelevel)
1184                                                 if defined $::RD_TRACE;
1185                 $item{q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}} = $_tok;
1186                 push @item, $_tok;
1187                 
1188                 }
1189
1190
1191                 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]<<},
1192                                           Parse::RecDescent::_tracefirst($text),
1193                                           q{_alternation_1_of_production_1_of_rule_expression},
1194                                           $tracelevel)
1195                                                 if defined $::RD_TRACE;
1196                 $_matched = 1;
1197                 last;
1198         }
1199
1200
1201         unless ( $_matched || defined($return) || defined($score) )
1202         {
1203                 
1204
1205                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
1206                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1207                                          Parse::RecDescent::_tracefirst($_[1]),
1208                                          q{_alternation_1_of_production_1_of_rule_expression},
1209                                          $tracelevel)
1210                                         if defined $::RD_TRACE;
1211                 return undef;
1212         }
1213         if (!defined($return) && defined($score))
1214         {
1215                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1216                                           q{_alternation_1_of_production_1_of_rule_expression},
1217                                           $tracelevel)
1218                                                 if defined $::RD_TRACE;
1219                 $return = $score_return;
1220         }
1221         splice @{$thisparser->{errors}}, $err_at;
1222         $return = $item[$#item] unless defined $return;
1223         if (defined $::RD_TRACE)
1224         {
1225                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1226                                           $return . q{])}, "",
1227                                           q{_alternation_1_of_production_1_of_rule_expression},
1228                                           $tracelevel);
1229                 Parse::RecDescent::_trace(q{(consumed: [} .
1230                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
1231                                           Parse::RecDescent::_tracefirst($text),
1232                                           , q{_alternation_1_of_production_1_of_rule_expression},
1233                                           $tracelevel)
1234         }
1235         $_[1] = $text;
1236         return $return;
1237 }
1238
1239 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1240 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA
1241 {
1242         my $thisparser = $_[0];
1243         use vars q{$tracelevel};
1244         local $tracelevel = ($tracelevel||0)+1;
1245         $ERRORS = 0;
1246         my $thisrule = $thisparser->{"rules"}{"SCHEMA"};
1247         
1248         Parse::RecDescent::_trace(q{Trying rule: [SCHEMA]},
1249                                   Parse::RecDescent::_tracefirst($_[1]),
1250                                   q{SCHEMA},
1251                                   $tracelevel)
1252                                         if defined $::RD_TRACE;
1253
1254         
1255         my $err_at = @{$thisparser->{errors}};
1256
1257         my $score;
1258         my $score_return;
1259         my $_tok;
1260         my $return = undef;
1261         my $_matched=0;
1262         my $commit=0;
1263         my @item = ();
1264         my %item = ();
1265         my $repeating =  defined($_[2]) && $_[2];
1266         my $_noactions = defined($_[3]) && $_[3];
1267         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
1268         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
1269         my $text;
1270         my $lastsep="";
1271         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1272         $expectation->at($_[1]);
1273         
1274         my $thisline;
1275         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1276
1277         
1278
1279         while (!$_matched && !$commit)
1280         {
1281                 
1282                 Parse::RecDescent::_trace(q{Trying production: [/\\w+/]},
1283                                           Parse::RecDescent::_tracefirst($_[1]),
1284                                           q{SCHEMA},
1285                                           $tracelevel)
1286                                                 if defined $::RD_TRACE;
1287                 my $thisprod = $thisrule->{"prods"}[0];
1288                 $text = $_[1];
1289                 my $_savetext;
1290                 @item = (q{SCHEMA});
1291                 %item = (__RULE__ => q{SCHEMA});
1292                 my $repcount = 0;
1293
1294
1295                 Parse::RecDescent::_trace(q{Trying terminal: [/\\w+/]}, Parse::RecDescent::_tracefirst($text),
1296                                           q{SCHEMA},
1297                                           $tracelevel)
1298                                                 if defined $::RD_TRACE;
1299                 $lastsep = "";
1300                 $expectation->is(q{})->at($text);
1301                 
1302
1303                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:\w+)//)
1304                 {
1305                         
1306                         $expectation->failed();
1307                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
1308                                                   Parse::RecDescent::_tracefirst($text))
1309                                         if defined $::RD_TRACE;
1310
1311                         last;
1312                 }
1313                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1314                                                 . $& . q{])},
1315                                                   Parse::RecDescent::_tracefirst($text))
1316                                         if defined $::RD_TRACE;
1317                 push @item, $item{__PATTERN1__}=$&;
1318                 
1319
1320
1321                 Parse::RecDescent::_trace(q{>>Matched production: [/\\w+/]<<},
1322                                           Parse::RecDescent::_tracefirst($text),
1323                                           q{SCHEMA},
1324                                           $tracelevel)
1325                                                 if defined $::RD_TRACE;
1326                 $_matched = 1;
1327                 last;
1328         }
1329
1330
1331         while (!$_matched && !$commit)
1332         {
1333                 
1334                 Parse::RecDescent::_trace(q{Trying production: [/\\w\{1,128\}/]},
1335                                           Parse::RecDescent::_tracefirst($_[1]),
1336                                           q{SCHEMA},
1337                                           $tracelevel)
1338                                                 if defined $::RD_TRACE;
1339                 my $thisprod = $thisrule->{"prods"}[1];
1340                 $text = $_[1];
1341                 my $_savetext;
1342                 @item = (q{SCHEMA});
1343                 %item = (__RULE__ => q{SCHEMA});
1344                 my $repcount = 0;
1345
1346
1347                 Parse::RecDescent::_trace(q{Trying terminal: [/\\w\{1,128\}/]}, Parse::RecDescent::_tracefirst($text),
1348                                           q{SCHEMA},
1349                                           $tracelevel)
1350                                                 if defined $::RD_TRACE;
1351                 $lastsep = "";
1352                 $expectation->is(q{})->at($text);
1353                 
1354
1355                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:\w{1,128})//)
1356                 {
1357                         
1358                         $expectation->failed();
1359                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
1360                                                   Parse::RecDescent::_tracefirst($text))
1361                                         if defined $::RD_TRACE;
1362
1363                         last;
1364                 }
1365                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1366                                                 . $& . q{])},
1367                                                   Parse::RecDescent::_tracefirst($text))
1368                                         if defined $::RD_TRACE;
1369                 push @item, $item{__PATTERN1__}=$&;
1370                 
1371
1372
1373                 Parse::RecDescent::_trace(q{>>Matched production: [/\\w\{1,128\}/]<<},
1374                                           Parse::RecDescent::_tracefirst($text),
1375                                           q{SCHEMA},
1376                                           $tracelevel)
1377                                                 if defined $::RD_TRACE;
1378                 $_matched = 1;
1379                 last;
1380         }
1381
1382
1383         unless ( $_matched || defined($return) || defined($score) )
1384         {
1385                 
1386
1387                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
1388                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1389                                          Parse::RecDescent::_tracefirst($_[1]),
1390                                          q{SCHEMA},
1391                                          $tracelevel)
1392                                         if defined $::RD_TRACE;
1393                 return undef;
1394         }
1395         if (!defined($return) && defined($score))
1396         {
1397                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1398                                           q{SCHEMA},
1399                                           $tracelevel)
1400                                                 if defined $::RD_TRACE;
1401                 $return = $score_return;
1402         }
1403         splice @{$thisparser->{errors}}, $err_at;
1404         $return = $item[$#item] unless defined $return;
1405         if (defined $::RD_TRACE)
1406         {
1407                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1408                                           $return . q{])}, "",
1409                                           q{SCHEMA},
1410                                           $tracelevel);
1411                 Parse::RecDescent::_trace(q{(consumed: [} .
1412                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
1413                                           Parse::RecDescent::_tracefirst($text),
1414                                           , q{SCHEMA},
1415                                           $tracelevel)
1416         }
1417         $_[1] = $text;
1418         return $return;
1419 }
1420
1421 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1422 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_87_of_rule_sysibm_function
1423 {
1424         my $thisparser = $_[0];
1425         use vars q{$tracelevel};
1426         local $tracelevel = ($tracelevel||0)+1;
1427         $ERRORS = 0;
1428         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_87_of_rule_sysibm_function"};
1429         
1430         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_87_of_rule_sysibm_function]},
1431                                   Parse::RecDescent::_tracefirst($_[1]),
1432                                   q{_alternation_1_of_production_87_of_rule_sysibm_function},
1433                                   $tracelevel)
1434                                         if defined $::RD_TRACE;
1435
1436         
1437         my $err_at = @{$thisparser->{errors}};
1438
1439         my $score;
1440         my $score_return;
1441         my $_tok;
1442         my $return = undef;
1443         my $_matched=0;
1444         my $commit=0;
1445         my @item = ();
1446         my %item = ();
1447         my $repeating =  defined($_[2]) && $_[2];
1448         my $_noactions = defined($_[3]) && $_[3];
1449         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
1450         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
1451         my $text;
1452         my $lastsep="";
1453         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1454         $expectation->at($_[1]);
1455         
1456         my $thisline;
1457         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1458
1459         
1460
1461         while (!$_matched && !$commit)
1462         {
1463                 
1464                 Parse::RecDescent::_trace(q{Trying production: [/VARIANCE/i]},
1465                                           Parse::RecDescent::_tracefirst($_[1]),
1466                                           q{_alternation_1_of_production_87_of_rule_sysibm_function},
1467                                           $tracelevel)
1468                                                 if defined $::RD_TRACE;
1469                 my $thisprod = $thisrule->{"prods"}[0];
1470                 $text = $_[1];
1471                 my $_savetext;
1472                 @item = (q{_alternation_1_of_production_87_of_rule_sysibm_function});
1473                 %item = (__RULE__ => q{_alternation_1_of_production_87_of_rule_sysibm_function});
1474                 my $repcount = 0;
1475
1476
1477                 Parse::RecDescent::_trace(q{Trying terminal: [/VARIANCE/i]}, Parse::RecDescent::_tracefirst($text),
1478                                           q{_alternation_1_of_production_87_of_rule_sysibm_function},
1479                                           $tracelevel)
1480                                                 if defined $::RD_TRACE;
1481                 $lastsep = "";
1482                 $expectation->is(q{})->at($text);
1483                 
1484
1485                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VARIANCE)//i)
1486                 {
1487                         
1488                         $expectation->failed();
1489                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
1490                                                   Parse::RecDescent::_tracefirst($text))
1491                                         if defined $::RD_TRACE;
1492
1493                         last;
1494                 }
1495                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1496                                                 . $& . q{])},
1497                                                   Parse::RecDescent::_tracefirst($text))
1498                                         if defined $::RD_TRACE;
1499                 push @item, $item{__PATTERN1__}=$&;
1500                 
1501
1502
1503                 Parse::RecDescent::_trace(q{>>Matched production: [/VARIANCE/i]<<},
1504                                           Parse::RecDescent::_tracefirst($text),
1505                                           q{_alternation_1_of_production_87_of_rule_sysibm_function},
1506                                           $tracelevel)
1507                                                 if defined $::RD_TRACE;
1508                 $_matched = 1;
1509                 last;
1510         }
1511
1512
1513         while (!$_matched && !$commit)
1514         {
1515                 
1516                 Parse::RecDescent::_trace(q{Trying production: [/VAR/i]},
1517                                           Parse::RecDescent::_tracefirst($_[1]),
1518                                           q{_alternation_1_of_production_87_of_rule_sysibm_function},
1519                                           $tracelevel)
1520                                                 if defined $::RD_TRACE;
1521                 my $thisprod = $thisrule->{"prods"}[1];
1522                 $text = $_[1];
1523                 my $_savetext;
1524                 @item = (q{_alternation_1_of_production_87_of_rule_sysibm_function});
1525                 %item = (__RULE__ => q{_alternation_1_of_production_87_of_rule_sysibm_function});
1526                 my $repcount = 0;
1527
1528
1529                 Parse::RecDescent::_trace(q{Trying terminal: [/VAR/i]}, Parse::RecDescent::_tracefirst($text),
1530                                           q{_alternation_1_of_production_87_of_rule_sysibm_function},
1531                                           $tracelevel)
1532                                                 if defined $::RD_TRACE;
1533                 $lastsep = "";
1534                 $expectation->is(q{})->at($text);
1535                 
1536
1537                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VAR)//i)
1538                 {
1539                         
1540                         $expectation->failed();
1541                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
1542                                                   Parse::RecDescent::_tracefirst($text))
1543                                         if defined $::RD_TRACE;
1544
1545                         last;
1546                 }
1547                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1548                                                 . $& . q{])},
1549                                                   Parse::RecDescent::_tracefirst($text))
1550                                         if defined $::RD_TRACE;
1551                 push @item, $item{__PATTERN1__}=$&;
1552                 
1553
1554
1555                 Parse::RecDescent::_trace(q{>>Matched production: [/VAR/i]<<},
1556                                           Parse::RecDescent::_tracefirst($text),
1557                                           q{_alternation_1_of_production_87_of_rule_sysibm_function},
1558                                           $tracelevel)
1559                                                 if defined $::RD_TRACE;
1560                 $_matched = 1;
1561                 last;
1562         }
1563
1564
1565         unless ( $_matched || defined($return) || defined($score) )
1566         {
1567                 
1568
1569                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
1570                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1571                                          Parse::RecDescent::_tracefirst($_[1]),
1572                                          q{_alternation_1_of_production_87_of_rule_sysibm_function},
1573                                          $tracelevel)
1574                                         if defined $::RD_TRACE;
1575                 return undef;
1576         }
1577         if (!defined($return) && defined($score))
1578         {
1579                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1580                                           q{_alternation_1_of_production_87_of_rule_sysibm_function},
1581                                           $tracelevel)
1582                                                 if defined $::RD_TRACE;
1583                 $return = $score_return;
1584         }
1585         splice @{$thisparser->{errors}}, $err_at;
1586         $return = $item[$#item] unless defined $return;
1587         if (defined $::RD_TRACE)
1588         {
1589                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1590                                           $return . q{])}, "",
1591                                           q{_alternation_1_of_production_87_of_rule_sysibm_function},
1592                                           $tracelevel);
1593                 Parse::RecDescent::_trace(q{(consumed: [} .
1594                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
1595                                           Parse::RecDescent::_tracefirst($text),
1596                                           , q{_alternation_1_of_production_87_of_rule_sysibm_function},
1597                                           $tracelevel)
1598         }
1599         $_[1] = $text;
1600         return $return;
1601 }
1602
1603 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1604 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression
1605 {
1606         my $thisparser = $_[0];
1607         use vars q{$tracelevel};
1608         local $tracelevel = ($tracelevel||0)+1;
1609         $ERRORS = 0;
1610         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression"};
1611         
1612         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
1613                                   Parse::RecDescent::_tracefirst($_[1]),
1614                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1615                                   $tracelevel)
1616                                         if defined $::RD_TRACE;
1617
1618         
1619         my $err_at = @{$thisparser->{errors}};
1620
1621         my $score;
1622         my $score_return;
1623         my $_tok;
1624         my $return = undef;
1625         my $_matched=0;
1626         my $commit=0;
1627         my @item = ();
1628         my %item = ();
1629         my $repeating =  defined($_[2]) && $_[2];
1630         my $_noactions = defined($_[3]) && $_[3];
1631         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
1632         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
1633         my $text;
1634         my $lastsep="";
1635         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1636         $expectation->at($_[1]);
1637         
1638         my $thisline;
1639         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1640
1641         
1642
1643         while (!$_matched && !$commit)
1644         {
1645                 
1646                 Parse::RecDescent::_trace(q{Trying production: ['+']},
1647                                           Parse::RecDescent::_tracefirst($_[1]),
1648                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1649                                           $tracelevel)
1650                                                 if defined $::RD_TRACE;
1651                 my $thisprod = $thisrule->{"prods"}[0];
1652                 $text = $_[1];
1653                 my $_savetext;
1654                 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1655                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1656                 my $repcount = 0;
1657
1658
1659                 Parse::RecDescent::_trace(q{Trying terminal: ['+']},
1660                                           Parse::RecDescent::_tracefirst($text),
1661                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1662                                           $tracelevel)
1663                                                 if defined $::RD_TRACE;
1664                 $lastsep = "";
1665                 $expectation->is(q{})->at($text);
1666                 
1667
1668                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\+//)
1669                 {
1670                         
1671                         $expectation->failed();
1672                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
1673                                                   Parse::RecDescent::_tracefirst($text))
1674                                                         if defined $::RD_TRACE;
1675                         last;
1676                 }
1677                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1678                                                 . $& . q{])},
1679                                                   Parse::RecDescent::_tracefirst($text))
1680                                                         if defined $::RD_TRACE;
1681                 push @item, $item{__STRING1__}=$&;
1682                 
1683
1684
1685                 Parse::RecDescent::_trace(q{>>Matched production: ['+']<<},
1686                                           Parse::RecDescent::_tracefirst($text),
1687                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1688                                           $tracelevel)
1689                                                 if defined $::RD_TRACE;
1690                 $_matched = 1;
1691                 last;
1692         }
1693
1694
1695         while (!$_matched && !$commit)
1696         {
1697                 
1698                 Parse::RecDescent::_trace(q{Trying production: ['-']},
1699                                           Parse::RecDescent::_tracefirst($_[1]),
1700                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1701                                           $tracelevel)
1702                                                 if defined $::RD_TRACE;
1703                 my $thisprod = $thisrule->{"prods"}[1];
1704                 $text = $_[1];
1705                 my $_savetext;
1706                 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1707                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1708                 my $repcount = 0;
1709
1710
1711                 Parse::RecDescent::_trace(q{Trying terminal: ['-']},
1712                                           Parse::RecDescent::_tracefirst($text),
1713                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1714                                           $tracelevel)
1715                                                 if defined $::RD_TRACE;
1716                 $lastsep = "";
1717                 $expectation->is(q{})->at($text);
1718                 
1719
1720                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\-//)
1721                 {
1722                         
1723                         $expectation->failed();
1724                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
1725                                                   Parse::RecDescent::_tracefirst($text))
1726                                                         if defined $::RD_TRACE;
1727                         last;
1728                 }
1729                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1730                                                 . $& . q{])},
1731                                                   Parse::RecDescent::_tracefirst($text))
1732                                                         if defined $::RD_TRACE;
1733                 push @item, $item{__STRING1__}=$&;
1734                 
1735
1736
1737                 Parse::RecDescent::_trace(q{>>Matched production: ['-']<<},
1738                                           Parse::RecDescent::_tracefirst($text),
1739                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1740                                           $tracelevel)
1741                                                 if defined $::RD_TRACE;
1742                 $_matched = 1;
1743                 last;
1744         }
1745
1746
1747         unless ( $_matched || defined($return) || defined($score) )
1748         {
1749                 
1750
1751                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
1752                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1753                                          Parse::RecDescent::_tracefirst($_[1]),
1754                                          q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1755                                          $tracelevel)
1756                                         if defined $::RD_TRACE;
1757                 return undef;
1758         }
1759         if (!defined($return) && defined($score))
1760         {
1761                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1762                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1763                                           $tracelevel)
1764                                                 if defined $::RD_TRACE;
1765                 $return = $score_return;
1766         }
1767         splice @{$thisparser->{errors}}, $err_at;
1768         $return = $item[$#item] unless defined $return;
1769         if (defined $::RD_TRACE)
1770         {
1771                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1772                                           $return . q{])}, "",
1773                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1774                                           $tracelevel);
1775                 Parse::RecDescent::_trace(q{(consumed: [} .
1776                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
1777                                           Parse::RecDescent::_tracefirst($text),
1778                                           , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1779                                           $tracelevel)
1780         }
1781         $_[1] = $text;
1782         return $return;
1783 }
1784
1785 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1786 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::get_bracketed
1787 {
1788         my $thisparser = $_[0];
1789         use vars q{$tracelevel};
1790         local $tracelevel = ($tracelevel||0)+1;
1791         $ERRORS = 0;
1792         my $thisrule = $thisparser->{"rules"}{"get_bracketed"};
1793         
1794         Parse::RecDescent::_trace(q{Trying rule: [get_bracketed]},
1795                                   Parse::RecDescent::_tracefirst($_[1]),
1796                                   q{get_bracketed},
1797                                   $tracelevel)
1798                                         if defined $::RD_TRACE;
1799
1800         
1801         my $err_at = @{$thisparser->{errors}};
1802
1803         my $score;
1804         my $score_return;
1805         my $_tok;
1806         my $return = undef;
1807         my $_matched=0;
1808         my $commit=0;
1809         my @item = ();
1810         my %item = ();
1811         my $repeating =  defined($_[2]) && $_[2];
1812         my $_noactions = defined($_[3]) && $_[3];
1813         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
1814         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
1815         my $text;
1816         my $lastsep="";
1817         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1818         $expectation->at($_[1]);
1819         
1820         my $thisline;
1821         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1822
1823         
1824
1825         while (!$_matched && !$commit)
1826         {
1827                 
1828                 Parse::RecDescent::_trace(q{Trying production: []},
1829                                           Parse::RecDescent::_tracefirst($_[1]),
1830                                           q{get_bracketed},
1831                                           $tracelevel)
1832                                                 if defined $::RD_TRACE;
1833                 my $thisprod = $thisrule->{"prods"}[0];
1834                 $text = $_[1];
1835                 my $_savetext;
1836                 @item = (q{get_bracketed});
1837                 %item = (__RULE__ => q{get_bracketed});
1838                 my $repcount = 0;
1839
1840
1841                 Parse::RecDescent::_trace(q{Trying action},
1842                                           Parse::RecDescent::_tracefirst($text),
1843                                           q{get_bracketed},
1844                                           $tracelevel)
1845                                                 if defined $::RD_TRACE;
1846                 
1847
1848                 $_tok = ($_noactions) ? 0 : do { 
1849     extract_bracketed($text, '(');
1850 };
1851                 unless (defined $_tok)
1852                 {
1853                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
1854                                         if defined $::RD_TRACE;
1855                         last;
1856                 }
1857                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1858                                           . $_tok . q{])},
1859                                           Parse::RecDescent::_tracefirst($text))
1860                                                 if defined $::RD_TRACE;
1861                 push @item, $_tok;
1862                 $item{__ACTION1__}=$_tok;
1863                 
1864
1865
1866                 Parse::RecDescent::_trace(q{>>Matched production: []<<},
1867                                           Parse::RecDescent::_tracefirst($text),
1868                                           q{get_bracketed},
1869                                           $tracelevel)
1870                                                 if defined $::RD_TRACE;
1871                 $_matched = 1;
1872                 last;
1873         }
1874
1875
1876         unless ( $_matched || defined($return) || defined($score) )
1877         {
1878                 
1879
1880                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
1881                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1882                                          Parse::RecDescent::_tracefirst($_[1]),
1883                                          q{get_bracketed},
1884                                          $tracelevel)
1885                                         if defined $::RD_TRACE;
1886                 return undef;
1887         }
1888         if (!defined($return) && defined($score))
1889         {
1890                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1891                                           q{get_bracketed},
1892                                           $tracelevel)
1893                                                 if defined $::RD_TRACE;
1894                 $return = $score_return;
1895         }
1896         splice @{$thisparser->{errors}}, $err_at;
1897         $return = $item[$#item] unless defined $return;
1898         if (defined $::RD_TRACE)
1899         {
1900                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1901                                           $return . q{])}, "",
1902                                           q{get_bracketed},
1903                                           $tracelevel);
1904                 Parse::RecDescent::_trace(q{(consumed: [} .
1905                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
1906                                           Parse::RecDescent::_tracefirst($text),
1907                                           , q{get_bracketed},
1908                                           $tracelevel)
1909         }
1910         $_[1] = $text;
1911         return $return;
1912 }
1913
1914 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1915 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::labeled_duration
1916 {
1917         my $thisparser = $_[0];
1918         use vars q{$tracelevel};
1919         local $tracelevel = ($tracelevel||0)+1;
1920         $ERRORS = 0;
1921         my $thisrule = $thisparser->{"rules"}{"labeled_duration"};
1922         
1923         Parse::RecDescent::_trace(q{Trying rule: [labeled_duration]},
1924                                   Parse::RecDescent::_tracefirst($_[1]),
1925                                   q{labeled_duration},
1926                                   $tracelevel)
1927                                         if defined $::RD_TRACE;
1928
1929         
1930         my $err_at = @{$thisparser->{errors}};
1931
1932         my $score;
1933         my $score_return;
1934         my $_tok;
1935         my $return = undef;
1936         my $_matched=0;
1937         my $commit=0;
1938         my @item = ();
1939         my %item = ();
1940         my $repeating =  defined($_[2]) && $_[2];
1941         my $_noactions = defined($_[3]) && $_[3];
1942         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
1943         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
1944         my $text;
1945         my $lastsep="";
1946         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1947         $expectation->at($_[1]);
1948         
1949         my $thisline;
1950         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1951
1952         
1953
1954         while (!$_matched && !$commit)
1955         {
1956                 
1957                 Parse::RecDescent::_trace(q{Trying production: [ld_type ld_duration]},
1958                                           Parse::RecDescent::_tracefirst($_[1]),
1959                                           q{labeled_duration},
1960                                           $tracelevel)
1961                                                 if defined $::RD_TRACE;
1962                 my $thisprod = $thisrule->{"prods"}[0];
1963                 $text = $_[1];
1964                 my $_savetext;
1965                 @item = (q{labeled_duration});
1966                 %item = (__RULE__ => q{labeled_duration});
1967                 my $repcount = 0;
1968
1969
1970                 Parse::RecDescent::_trace(q{Trying subrule: [ld_type]},
1971                                   Parse::RecDescent::_tracefirst($text),
1972                                   q{labeled_duration},
1973                                   $tracelevel)
1974                                         if defined $::RD_TRACE;
1975                 if (1) { no strict qw{refs};
1976                 $expectation->is(q{})->at($text);
1977                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
1978                 {
1979                         
1980                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [ld_type]>>},
1981                                                   Parse::RecDescent::_tracefirst($text),
1982                                                   q{labeled_duration},
1983                                                   $tracelevel)
1984                                                         if defined $::RD_TRACE;
1985                         $expectation->failed();
1986                         last;
1987                 }
1988                 Parse::RecDescent::_trace(q{>>Matched subrule: [ld_type]<< (return value: [}
1989                                         . $_tok . q{]},
1990                                           
1991                                           Parse::RecDescent::_tracefirst($text),
1992                                           q{labeled_duration},
1993                                           $tracelevel)
1994                                                 if defined $::RD_TRACE;
1995                 $item{q{ld_type}} = $_tok;
1996                 push @item, $_tok;
1997                 
1998                 }
1999
2000                 Parse::RecDescent::_trace(q{Trying subrule: [ld_duration]},
2001                                   Parse::RecDescent::_tracefirst($text),
2002                                   q{labeled_duration},
2003                                   $tracelevel)
2004                                         if defined $::RD_TRACE;
2005                 if (1) { no strict qw{refs};
2006                 $expectation->is(q{ld_duration})->at($text);
2007                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_duration($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
2008                 {
2009                         
2010                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [ld_duration]>>},
2011                                                   Parse::RecDescent::_tracefirst($text),
2012                                                   q{labeled_duration},
2013                                                   $tracelevel)
2014                                                         if defined $::RD_TRACE;
2015                         $expectation->failed();
2016                         last;
2017                 }
2018                 Parse::RecDescent::_trace(q{>>Matched subrule: [ld_duration]<< (return value: [}
2019                                         . $_tok . q{]},
2020                                           
2021                                           Parse::RecDescent::_tracefirst($text),
2022                                           q{labeled_duration},
2023                                           $tracelevel)
2024                                                 if defined $::RD_TRACE;
2025                 $item{q{ld_duration}} = $_tok;
2026                 push @item, $_tok;
2027                 
2028                 }
2029
2030
2031                 Parse::RecDescent::_trace(q{>>Matched production: [ld_type ld_duration]<<},
2032                                           Parse::RecDescent::_tracefirst($text),
2033                                           q{labeled_duration},
2034                                           $tracelevel)
2035                                                 if defined $::RD_TRACE;
2036                 $_matched = 1;
2037                 last;
2038         }
2039
2040
2041         unless ( $_matched || defined($return) || defined($score) )
2042         {
2043                 
2044
2045                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
2046                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2047                                          Parse::RecDescent::_tracefirst($_[1]),
2048                                          q{labeled_duration},
2049                                          $tracelevel)
2050                                         if defined $::RD_TRACE;
2051                 return undef;
2052         }
2053         if (!defined($return) && defined($score))
2054         {
2055                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2056                                           q{labeled_duration},
2057                                           $tracelevel)
2058                                                 if defined $::RD_TRACE;
2059                 $return = $score_return;
2060         }
2061         splice @{$thisparser->{errors}}, $err_at;
2062         $return = $item[$#item] unless defined $return;
2063         if (defined $::RD_TRACE)
2064         {
2065                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2066                                           $return . q{])}, "",
2067                                           q{labeled_duration},
2068                                           $tracelevel);
2069                 Parse::RecDescent::_trace(q{(consumed: [} .
2070                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
2071                                           Parse::RecDescent::_tracefirst($text),
2072                                           , q{labeled_duration},
2073                                           $tracelevel)
2074         }
2075         $_[1] = $text;
2076         return $return;
2077 }
2078
2079 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2080 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_end
2081 {
2082         my $thisparser = $_[0];
2083         use vars q{$tracelevel};
2084         local $tracelevel = ($tracelevel||0)+1;
2085         $ERRORS = 0;
2086         my $thisrule = $thisparser->{"rules"}{"group_end"};
2087         
2088         Parse::RecDescent::_trace(q{Trying rule: [group_end]},
2089                                   Parse::RecDescent::_tracefirst($_[1]),
2090                                   q{group_end},
2091                                   $tracelevel)
2092                                         if defined $::RD_TRACE;
2093
2094         
2095         my $err_at = @{$thisparser->{errors}};
2096
2097         my $score;
2098         my $score_return;
2099         my $_tok;
2100         my $return = undef;
2101         my $_matched=0;
2102         my $commit=0;
2103         my @item = ();
2104         my %item = ();
2105         my $repeating =  defined($_[2]) && $_[2];
2106         my $_noactions = defined($_[3]) && $_[3];
2107         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
2108         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
2109         my $text;
2110         my $lastsep="";
2111         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2112         $expectation->at($_[1]);
2113         
2114         my $thisline;
2115         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2116
2117         
2118
2119         while (!$_matched && !$commit)
2120         {
2121                 
2122                 Parse::RecDescent::_trace(q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
2123                                           Parse::RecDescent::_tracefirst($_[1]),
2124                                           q{group_end},
2125                                           $tracelevel)
2126                                                 if defined $::RD_TRACE;
2127                 my $thisprod = $thisrule->{"prods"}[0];
2128                 $text = $_[1];
2129                 my $_savetext;
2130                 @item = (q{group_end});
2131                 %item = (__RULE__ => q{group_end});
2132                 my $repcount = 0;
2133
2134
2135                 Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
2136                                           q{group_end},
2137                                           $tracelevel)
2138                                                 if defined $::RD_TRACE;
2139                 $lastsep = "";
2140                 $expectation->is(q{})->at($text);
2141                 
2142
2143                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i)
2144                 {
2145                         
2146                         $expectation->failed();
2147                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
2148                                                   Parse::RecDescent::_tracefirst($text))
2149                                         if defined $::RD_TRACE;
2150
2151                         last;
2152                 }
2153                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2154                                                 . $& . q{])},
2155                                                   Parse::RecDescent::_tracefirst($text))
2156                                         if defined $::RD_TRACE;
2157                 push @item, $item{__PATTERN1__}=$&;
2158                 
2159
2160
2161                 Parse::RecDescent::_trace(q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
2162                                           Parse::RecDescent::_tracefirst($text),
2163                                           q{group_end},
2164                                           $tracelevel)
2165                                                 if defined $::RD_TRACE;
2166                 $_matched = 1;
2167                 last;
2168         }
2169
2170
2171         while (!$_matched && !$commit)
2172         {
2173                 
2174                 Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /FOLLOWING/i]},
2175                                           Parse::RecDescent::_tracefirst($_[1]),
2176                                           q{group_end},
2177                                           $tracelevel)
2178                                                 if defined $::RD_TRACE;
2179                 my $thisprod = $thisrule->{"prods"}[1];
2180                 $text = $_[1];
2181                 my $_savetext;
2182                 @item = (q{group_end});
2183                 %item = (__RULE__ => q{group_end});
2184                 my $repcount = 0;
2185
2186
2187                 Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
2188                                   Parse::RecDescent::_tracefirst($text),
2189                                   q{group_end},
2190                                   $tracelevel)
2191                                         if defined $::RD_TRACE;
2192                 if (1) { no strict qw{refs};
2193                 $expectation->is(q{})->at($text);
2194                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
2195                 {
2196                         
2197                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
2198                                                   Parse::RecDescent::_tracefirst($text),
2199                                                   q{group_end},
2200                                                   $tracelevel)
2201                                                         if defined $::RD_TRACE;
2202                         $expectation->failed();
2203                         last;
2204                 }
2205                 Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
2206                                         . $_tok . q{]},
2207                                           
2208                                           Parse::RecDescent::_tracefirst($text),
2209                                           q{group_end},
2210                                           $tracelevel)
2211                                                 if defined $::RD_TRACE;
2212                 $item{q{unsigned_constant}} = $_tok;
2213                 push @item, $_tok;
2214                 
2215                 }
2216
2217                 Parse::RecDescent::_trace(q{Trying terminal: [/FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
2218                                           q{group_end},
2219                                           $tracelevel)
2220                                                 if defined $::RD_TRACE;
2221                 $lastsep = "";
2222                 $expectation->is(q{/FOLLOWING/i})->at($text);
2223                 
2224
2225                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOLLOWING)//i)
2226                 {
2227                         
2228                         $expectation->failed();
2229                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
2230                                                   Parse::RecDescent::_tracefirst($text))
2231                                         if defined $::RD_TRACE;
2232
2233                         last;
2234                 }
2235                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2236                                                 . $& . q{])},
2237                                                   Parse::RecDescent::_tracefirst($text))
2238                                         if defined $::RD_TRACE;
2239                 push @item, $item{__PATTERN1__}=$&;
2240                 
2241
2242
2243                 Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /FOLLOWING/i]<<},
2244                                           Parse::RecDescent::_tracefirst($text),
2245                                           q{group_end},
2246                                           $tracelevel)
2247                                                 if defined $::RD_TRACE;
2248                 $_matched = 1;
2249                 last;
2250         }
2251
2252
2253         unless ( $_matched || defined($return) || defined($score) )
2254         {
2255                 
2256
2257                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
2258                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2259                                          Parse::RecDescent::_tracefirst($_[1]),
2260                                          q{group_end},
2261                                          $tracelevel)
2262                                         if defined $::RD_TRACE;
2263                 return undef;
2264         }
2265         if (!defined($return) && defined($score))
2266         {
2267                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2268                                           q{group_end},
2269                                           $tracelevel)
2270                                                 if defined $::RD_TRACE;
2271                 $return = $score_return;
2272         }
2273         splice @{$thisparser->{errors}}, $err_at;
2274         $return = $item[$#item] unless defined $return;
2275         if (defined $::RD_TRACE)
2276         {
2277                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2278                                           $return . q{])}, "",
2279                                           q{group_end},
2280                                           $tracelevel);
2281                 Parse::RecDescent::_trace(q{(consumed: [} .
2282                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
2283                                           Parse::RecDescent::_tracefirst($text),
2284                                           , q{group_end},
2285                                           $tracelevel)
2286         }
2287         $_[1] = $text;
2288         return $return;
2289 }
2290
2291 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2292 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::statement
2293 {
2294         my $thisparser = $_[0];
2295         use vars q{$tracelevel};
2296         local $tracelevel = ($tracelevel||0)+1;
2297         $ERRORS = 0;
2298         my $thisrule = $thisparser->{"rules"}{"statement"};
2299         
2300         Parse::RecDescent::_trace(q{Trying rule: [statement]},
2301                                   Parse::RecDescent::_tracefirst($_[1]),
2302                                   q{statement},
2303                                   $tracelevel)
2304                                         if defined $::RD_TRACE;
2305
2306         
2307         my $err_at = @{$thisparser->{errors}};
2308
2309         my $score;
2310         my $score_return;
2311         my $_tok;
2312         my $return = undef;
2313         my $_matched=0;
2314         my $commit=0;
2315         my @item = ();
2316         my %item = ();
2317         my $repeating =  defined($_[2]) && $_[2];
2318         my $_noactions = defined($_[3]) && $_[3];
2319         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
2320         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
2321         my $text;
2322         my $lastsep="";
2323         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2324         $expectation->at($_[1]);
2325         
2326         my $thisline;
2327         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2328
2329         
2330
2331         while (!$_matched && !$commit)
2332         {
2333                 
2334                 Parse::RecDescent::_trace(q{Trying production: [comment]},
2335                                           Parse::RecDescent::_tracefirst($_[1]),
2336                                           q{statement},
2337                                           $tracelevel)
2338                                                 if defined $::RD_TRACE;
2339                 my $thisprod = $thisrule->{"prods"}[0];
2340                 $text = $_[1];
2341                 my $_savetext;
2342                 @item = (q{statement});
2343                 %item = (__RULE__ => q{statement});
2344                 my $repcount = 0;
2345
2346
2347                 Parse::RecDescent::_trace(q{Trying subrule: [comment]},
2348                                   Parse::RecDescent::_tracefirst($text),
2349                                   q{statement},
2350                                   $tracelevel)
2351                                         if defined $::RD_TRACE;
2352                 if (1) { no strict qw{refs};
2353                 $expectation->is(q{})->at($text);
2354                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::comment($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
2355                 {
2356                         
2357                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [comment]>>},
2358                                                   Parse::RecDescent::_tracefirst($text),
2359                                                   q{statement},
2360                                                   $tracelevel)
2361                                                         if defined $::RD_TRACE;
2362                         $expectation->failed();
2363                         last;
2364                 }
2365                 Parse::RecDescent::_trace(q{>>Matched subrule: [comment]<< (return value: [}
2366                                         . $_tok . q{]},
2367                                           
2368                                           Parse::RecDescent::_tracefirst($text),
2369                                           q{statement},
2370                                           $tracelevel)
2371                                                 if defined $::RD_TRACE;
2372                 $item{q{comment}} = $_tok;
2373                 push @item, $_tok;
2374                 
2375                 }
2376
2377
2378                 Parse::RecDescent::_trace(q{>>Matched production: [comment]<<},
2379                                           Parse::RecDescent::_tracefirst($text),
2380                                           q{statement},
2381                                           $tracelevel)
2382                                                 if defined $::RD_TRACE;
2383                 $_matched = 1;
2384                 last;
2385         }
2386
2387
2388         while (!$_matched && !$commit)
2389         {
2390                 
2391                 Parse::RecDescent::_trace(q{Trying production: [create]},
2392                                           Parse::RecDescent::_tracefirst($_[1]),
2393                                           q{statement},
2394                                           $tracelevel)
2395                                                 if defined $::RD_TRACE;
2396                 my $thisprod = $thisrule->{"prods"}[1];
2397                 $text = $_[1];
2398                 my $_savetext;
2399                 @item = (q{statement});
2400                 %item = (__RULE__ => q{statement});
2401                 my $repcount = 0;
2402
2403
2404                 Parse::RecDescent::_trace(q{Trying subrule: [create]},
2405                                   Parse::RecDescent::_tracefirst($text),
2406                                   q{statement},
2407                                   $tracelevel)
2408                                         if defined $::RD_TRACE;
2409                 if (1) { no strict qw{refs};
2410                 $expectation->is(q{})->at($text);
2411                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::create($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
2412                 {
2413                         
2414                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [create]>>},
2415                                                   Parse::RecDescent::_tracefirst($text),
2416                                                   q{statement},
2417                                                   $tracelevel)
2418                                                         if defined $::RD_TRACE;
2419                         $expectation->failed();
2420                         last;
2421                 }
2422                 Parse::RecDescent::_trace(q{>>Matched subrule: [create]<< (return value: [}
2423                                         . $_tok . q{]},
2424                                           
2425                                           Parse::RecDescent::_tracefirst($text),
2426                                           q{statement},
2427                                           $tracelevel)
2428                                                 if defined $::RD_TRACE;
2429                 $item{q{create}} = $_tok;
2430                 push @item, $_tok;
2431                 
2432                 }
2433
2434
2435                 Parse::RecDescent::_trace(q{>>Matched production: [create]<<},
2436                                           Parse::RecDescent::_tracefirst($text),
2437                                           q{statement},
2438                                           $tracelevel)
2439                                                 if defined $::RD_TRACE;
2440                 $_matched = 1;
2441                 last;
2442         }
2443
2444
2445         while (!$_matched)
2446         {
2447                 
2448                 Parse::RecDescent::_trace(q{Trying production: [<error...>]},
2449                                           Parse::RecDescent::_tracefirst($_[1]),
2450                                           q{statement},
2451                                           $tracelevel)
2452                                                 if defined $::RD_TRACE;
2453                 my $thisprod = $thisrule->{"prods"}[2];
2454                 
2455                 my $_savetext;
2456                 @item = (q{statement});
2457                 %item = (__RULE__ => q{statement});
2458                 my $repcount = 0;
2459
2460
2461                 
2462
2463                 Parse::RecDescent::_trace(q{Trying directive: [<error...>]},
2464                                         Parse::RecDescent::_tracefirst($text),
2465                                           q{statement},
2466                                           $tracelevel)
2467                                                 if defined $::RD_TRACE; 
2468                 $_tok = do { if (1) { do {
2469                 my $rule = $item[0];
2470                    $rule =~ s/_/ /g;
2471                 #WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
2472                 push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
2473                 } unless  $_noactions; undef } else {0} };
2474                 if (defined($_tok))
2475                 {
2476                         Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
2477                                                 . $_tok . q{])},
2478                                                 Parse::RecDescent::_tracefirst($text))
2479                                                         if defined $::RD_TRACE;
2480                 }
2481                 else
2482                 {
2483                         Parse::RecDescent::_trace(q{<<Didn't match directive>>},
2484                                                 Parse::RecDescent::_tracefirst($text))
2485                                                         if defined $::RD_TRACE;
2486                 }
2487                 
2488                 last unless defined $_tok;
2489                 push @item, $item{__DIRECTIVE1__}=$_tok;
2490                 
2491
2492
2493                 Parse::RecDescent::_trace(q{>>Matched production: [<error...>]<<},
2494                                           Parse::RecDescent::_tracefirst($text),
2495                                           q{statement},
2496                                           $tracelevel)
2497                                                 if defined $::RD_TRACE;
2498                 $_matched = 1;
2499                 last;
2500         }
2501
2502
2503         unless ( $_matched || defined($return) || defined($score) )
2504         {
2505                 
2506
2507                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
2508                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2509                                          Parse::RecDescent::_tracefirst($_[1]),
2510                                          q{statement},
2511                                          $tracelevel)
2512                                         if defined $::RD_TRACE;
2513                 return undef;
2514         }
2515         if (!defined($return) && defined($score))
2516         {
2517                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2518                                           q{statement},
2519                                           $tracelevel)
2520                                                 if defined $::RD_TRACE;
2521                 $return = $score_return;
2522         }
2523         splice @{$thisparser->{errors}}, $err_at;
2524         $return = $item[$#item] unless defined $return;
2525         if (defined $::RD_TRACE)
2526         {
2527                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2528                                           $return . q{])}, "",
2529                                           q{statement},
2530                                           $tracelevel);
2531                 Parse::RecDescent::_trace(q{(consumed: [} .
2532                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
2533                                           Parse::RecDescent::_tracefirst($text),
2534                                           , q{statement},
2535                                           $tracelevel)
2536         }
2537         $_[1] = $text;
2538         return $return;
2539 }
2540
2541 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2542 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
2543 {
2544         my $thisparser = $_[0];
2545         use vars q{$tracelevel};
2546         local $tracelevel = ($tracelevel||0)+1;
2547         $ERRORS = 0;
2548         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause"};
2549         
2550         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]},
2551                                   Parse::RecDescent::_tracefirst($_[1]),
2552                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2553                                   $tracelevel)
2554                                         if defined $::RD_TRACE;
2555
2556         
2557         my $err_at = @{$thisparser->{errors}};
2558
2559         my $score;
2560         my $score_return;
2561         my $_tok;
2562         my $return = undef;
2563         my $_matched=0;
2564         my $commit=0;
2565         my @item = ();
2566         my %item = ();
2567         my $repeating =  defined($_[2]) && $_[2];
2568         my $_noactions = defined($_[3]) && $_[3];
2569         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
2570         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
2571         my $text;
2572         my $lastsep="";
2573         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2574         $expectation->at($_[1]);
2575         
2576         my $thisline;
2577         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2578
2579         
2580
2581         while (!$_matched && !$commit)
2582         {
2583                 
2584                 Parse::RecDescent::_trace(q{Trying production: [result_expression]},
2585                                           Parse::RecDescent::_tracefirst($_[1]),
2586                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2587                                           $tracelevel)
2588                                                 if defined $::RD_TRACE;
2589                 my $thisprod = $thisrule->{"prods"}[0];
2590                 $text = $_[1];
2591                 my $_savetext;
2592                 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2593                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2594                 my $repcount = 0;
2595
2596
2597                 Parse::RecDescent::_trace(q{Trying subrule: [result_expression]},
2598                                   Parse::RecDescent::_tracefirst($text),
2599                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2600                                   $tracelevel)
2601                                         if defined $::RD_TRACE;
2602                 if (1) { no strict qw{refs};
2603                 $expectation->is(q{})->at($text);
2604                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
2605                 {
2606                         
2607                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [result_expression]>>},
2608                                                   Parse::RecDescent::_tracefirst($text),
2609                                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2610                                                   $tracelevel)
2611                                                         if defined $::RD_TRACE;
2612                         $expectation->failed();
2613                         last;
2614                 }
2615                 Parse::RecDescent::_trace(q{>>Matched subrule: [result_expression]<< (return value: [}
2616                                         . $_tok . q{]},
2617                                           
2618                                           Parse::RecDescent::_tracefirst($text),
2619                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2620                                           $tracelevel)
2621                                                 if defined $::RD_TRACE;
2622                 $item{q{result_expression}} = $_tok;
2623                 push @item, $_tok;
2624                 
2625                 }
2626
2627
2628                 Parse::RecDescent::_trace(q{>>Matched production: [result_expression]<<},
2629                                           Parse::RecDescent::_tracefirst($text),
2630                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2631                                           $tracelevel)
2632                                                 if defined $::RD_TRACE;
2633                 $_matched = 1;
2634                 last;
2635         }
2636
2637
2638         while (!$_matched && !$commit)
2639         {
2640                 
2641                 Parse::RecDescent::_trace(q{Trying production: [/NULL/i]},
2642                                           Parse::RecDescent::_tracefirst($_[1]),
2643                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2644                                           $tracelevel)
2645                                                 if defined $::RD_TRACE;
2646                 my $thisprod = $thisrule->{"prods"}[1];
2647                 $text = $_[1];
2648                 my $_savetext;
2649                 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2650                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2651                 my $repcount = 0;
2652
2653
2654                 Parse::RecDescent::_trace(q{Trying terminal: [/NULL/i]}, Parse::RecDescent::_tracefirst($text),
2655                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2656                                           $tracelevel)
2657                                                 if defined $::RD_TRACE;
2658                 $lastsep = "";
2659                 $expectation->is(q{})->at($text);
2660                 
2661
2662                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULL)//i)
2663                 {
2664                         
2665                         $expectation->failed();
2666                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
2667                                                   Parse::RecDescent::_tracefirst($text))
2668                                         if defined $::RD_TRACE;
2669
2670                         last;
2671                 }
2672                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2673                                                 . $& . q{])},
2674                                                   Parse::RecDescent::_tracefirst($text))
2675                                         if defined $::RD_TRACE;
2676                 push @item, $item{__PATTERN1__}=$&;
2677                 
2678
2679
2680                 Parse::RecDescent::_trace(q{>>Matched production: [/NULL/i]<<},
2681                                           Parse::RecDescent::_tracefirst($text),
2682                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2683                                           $tracelevel)
2684                                                 if defined $::RD_TRACE;
2685                 $_matched = 1;
2686                 last;
2687         }
2688
2689
2690         unless ( $_matched || defined($return) || defined($score) )
2691         {
2692                 
2693
2694                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
2695                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2696                                          Parse::RecDescent::_tracefirst($_[1]),
2697                                          q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2698                                          $tracelevel)
2699                                         if defined $::RD_TRACE;
2700                 return undef;
2701         }
2702         if (!defined($return) && defined($score))
2703         {
2704                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2705                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2706                                           $tracelevel)
2707                                                 if defined $::RD_TRACE;
2708                 $return = $score_return;
2709         }
2710         splice @{$thisparser->{errors}}, $err_at;
2711         $return = $item[$#item] unless defined $return;
2712         if (defined $::RD_TRACE)
2713         {
2714                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2715                                           $return . q{])}, "",
2716                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2717                                           $tracelevel);
2718                 Parse::RecDescent::_trace(q{(consumed: [} .
2719                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
2720                                           Parse::RecDescent::_tracefirst($text),
2721                                           , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2722                                           $tracelevel)
2723         }
2724         $_[1] = $text;
2725         return $return;
2726 }
2727
2728 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2729 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_case_expression
2730 {
2731         my $thisparser = $_[0];
2732         use vars q{$tracelevel};
2733         local $tracelevel = ($tracelevel||0)+1;
2734         $ERRORS = 0;
2735         my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_case_expression"};
2736         
2737         Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_case_expression]},
2738                                   Parse::RecDescent::_tracefirst($_[1]),
2739                                   q{_alternation_2_of_production_1_of_rule_case_expression},
2740                                   $tracelevel)
2741                                         if defined $::RD_TRACE;
2742
2743         
2744         my $err_at = @{$thisparser->{errors}};
2745
2746         my $score;
2747         my $score_return;
2748         my $_tok;
2749         my $return = undef;
2750         my $_matched=0;
2751         my $commit=0;
2752         my @item = ();
2753         my %item = ();
2754         my $repeating =  defined($_[2]) && $_[2];
2755         my $_noactions = defined($_[3]) && $_[3];
2756         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
2757         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
2758         my $text;
2759         my $lastsep="";
2760         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2761         $expectation->at($_[1]);
2762         
2763         my $thisline;
2764         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2765
2766         
2767
2768         while (!$_matched && !$commit)
2769         {
2770                 
2771                 Parse::RecDescent::_trace(q{Trying production: [/ELSE\\s+NULL/i]},
2772                                           Parse::RecDescent::_tracefirst($_[1]),
2773                                           q{_alternation_2_of_production_1_of_rule_case_expression},
2774                                           $tracelevel)
2775                                                 if defined $::RD_TRACE;
2776                 my $thisprod = $thisrule->{"prods"}[0];
2777                 $text = $_[1];
2778                 my $_savetext;
2779                 @item = (q{_alternation_2_of_production_1_of_rule_case_expression});
2780                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_case_expression});
2781                 my $repcount = 0;
2782
2783
2784                 Parse::RecDescent::_trace(q{Trying terminal: [/ELSE\\s+NULL/i]}, Parse::RecDescent::_tracefirst($text),
2785                                           q{_alternation_2_of_production_1_of_rule_case_expression},
2786                                           $tracelevel)
2787                                                 if defined $::RD_TRACE;
2788                 $lastsep = "";
2789                 $expectation->is(q{})->at($text);
2790                 
2791
2792                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ELSE\s+NULL)//i)
2793                 {
2794                         
2795                         $expectation->failed();
2796                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
2797                                                   Parse::RecDescent::_tracefirst($text))
2798                                         if defined $::RD_TRACE;
2799
2800                         last;
2801                 }
2802                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2803                                                 . $& . q{])},
2804                                                   Parse::RecDescent::_tracefirst($text))
2805                                         if defined $::RD_TRACE;
2806                 push @item, $item{__PATTERN1__}=$&;
2807                 
2808
2809
2810                 Parse::RecDescent::_trace(q{>>Matched production: [/ELSE\\s+NULL/i]<<},
2811                                           Parse::RecDescent::_tracefirst($text),
2812                                           q{_alternation_2_of_production_1_of_rule_case_expression},
2813                                           $tracelevel)
2814                                                 if defined $::RD_TRACE;
2815                 $_matched = 1;
2816                 last;
2817         }
2818
2819
2820         while (!$_matched && !$commit)
2821         {
2822                 
2823                 Parse::RecDescent::_trace(q{Trying production: [/ELSE/i result_expression]},
2824                                           Parse::RecDescent::_tracefirst($_[1]),
2825                                           q{_alternation_2_of_production_1_of_rule_case_expression},
2826                                           $tracelevel)
2827                                                 if defined $::RD_TRACE;
2828                 my $thisprod = $thisrule->{"prods"}[1];
2829                 $text = $_[1];
2830                 my $_savetext;
2831                 @item = (q{_alternation_2_of_production_1_of_rule_case_expression});
2832                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_case_expression});
2833                 my $repcount = 0;
2834
2835
2836                 Parse::RecDescent::_trace(q{Trying terminal: [/ELSE/i]}, Parse::RecDescent::_tracefirst($text),
2837                                           q{_alternation_2_of_production_1_of_rule_case_expression},
2838                                           $tracelevel)
2839                                                 if defined $::RD_TRACE;
2840                 $lastsep = "";
2841                 $expectation->is(q{})->at($text);
2842                 
2843
2844                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ELSE)//i)
2845                 {
2846                         
2847                         $expectation->failed();
2848                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
2849                                                   Parse::RecDescent::_tracefirst($text))
2850                                         if defined $::RD_TRACE;
2851
2852                         last;
2853                 }
2854                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2855                                                 . $& . q{])},
2856                                                   Parse::RecDescent::_tracefirst($text))
2857                                         if defined $::RD_TRACE;
2858                 push @item, $item{__PATTERN1__}=$&;
2859                 
2860
2861                 Parse::RecDescent::_trace(q{Trying subrule: [result_expression]},
2862                                   Parse::RecDescent::_tracefirst($text),
2863                                   q{_alternation_2_of_production_1_of_rule_case_expression},
2864                                   $tracelevel)
2865                                         if defined $::RD_TRACE;
2866                 if (1) { no strict qw{refs};
2867                 $expectation->is(q{result_expression})->at($text);
2868                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
2869                 {
2870                         
2871                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [result_expression]>>},
2872                                                   Parse::RecDescent::_tracefirst($text),
2873                                                   q{_alternation_2_of_production_1_of_rule_case_expression},
2874                                                   $tracelevel)
2875                                                         if defined $::RD_TRACE;
2876                         $expectation->failed();
2877                         last;
2878                 }
2879                 Parse::RecDescent::_trace(q{>>Matched subrule: [result_expression]<< (return value: [}
2880                                         . $_tok . q{]},
2881                                           
2882                                           Parse::RecDescent::_tracefirst($text),
2883                                           q{_alternation_2_of_production_1_of_rule_case_expression},
2884                                           $tracelevel)
2885                                                 if defined $::RD_TRACE;
2886                 $item{q{result_expression}} = $_tok;
2887                 push @item, $_tok;
2888                 
2889                 }
2890
2891
2892                 Parse::RecDescent::_trace(q{>>Matched production: [/ELSE/i result_expression]<<},
2893                                           Parse::RecDescent::_tracefirst($text),
2894                                           q{_alternation_2_of_production_1_of_rule_case_expression},
2895                                           $tracelevel)
2896                                                 if defined $::RD_TRACE;
2897                 $_matched = 1;
2898                 last;
2899         }
2900
2901
2902         unless ( $_matched || defined($return) || defined($score) )
2903         {
2904                 
2905
2906                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
2907                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2908                                          Parse::RecDescent::_tracefirst($_[1]),
2909                                          q{_alternation_2_of_production_1_of_rule_case_expression},
2910                                          $tracelevel)
2911                                         if defined $::RD_TRACE;
2912                 return undef;
2913         }
2914         if (!defined($return) && defined($score))
2915         {
2916                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2917                                           q{_alternation_2_of_production_1_of_rule_case_expression},
2918                                           $tracelevel)
2919                                                 if defined $::RD_TRACE;
2920                 $return = $score_return;
2921         }
2922         splice @{$thisparser->{errors}}, $err_at;
2923         $return = $item[$#item] unless defined $return;
2924         if (defined $::RD_TRACE)
2925         {
2926                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2927                                           $return . q{])}, "",
2928                                           q{_alternation_2_of_production_1_of_rule_case_expression},
2929                                           $tracelevel);
2930                 Parse::RecDescent::_trace(q{(consumed: [} .
2931                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
2932                                           Parse::RecDescent::_tracefirst($text),
2933                                           , q{_alternation_2_of_production_1_of_rule_case_expression},
2934                                           $tracelevel)
2935         }
2936         $_[1] = $text;
2937         return $return;
2938 }
2939
2940 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2941 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subject_expression
2942 {
2943         my $thisparser = $_[0];
2944         use vars q{$tracelevel};
2945         local $tracelevel = ($tracelevel||0)+1;
2946         $ERRORS = 0;
2947         my $thisrule = $thisparser->{"rules"}{"subject_expression"};
2948         
2949         Parse::RecDescent::_trace(q{Trying rule: [subject_expression]},
2950                                   Parse::RecDescent::_tracefirst($_[1]),
2951                                   q{subject_expression},
2952                                   $tracelevel)
2953                                         if defined $::RD_TRACE;
2954
2955         
2956         my $err_at = @{$thisparser->{errors}};
2957
2958         my $score;
2959         my $score_return;
2960         my $_tok;
2961         my $return = undef;
2962         my $_matched=0;
2963         my $commit=0;
2964         my @item = ();
2965         my %item = ();
2966         my $repeating =  defined($_[2]) && $_[2];
2967         my $_noactions = defined($_[3]) && $_[3];
2968         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
2969         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
2970         my $text;
2971         my $lastsep="";
2972         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2973         $expectation->at($_[1]);
2974         
2975         my $thisline;
2976         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2977
2978         
2979
2980         while (!$_matched && !$commit)
2981         {
2982                 
2983                 Parse::RecDescent::_trace(q{Trying production: [expression]},
2984                                           Parse::RecDescent::_tracefirst($_[1]),
2985                                           q{subject_expression},
2986                                           $tracelevel)
2987                                                 if defined $::RD_TRACE;
2988                 my $thisprod = $thisrule->{"prods"}[0];
2989                 $text = $_[1];
2990                 my $_savetext;
2991                 @item = (q{subject_expression});
2992                 %item = (__RULE__ => q{subject_expression});
2993                 my $repcount = 0;
2994
2995
2996                 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
2997                                   Parse::RecDescent::_tracefirst($text),
2998                                   q{subject_expression},
2999                                   $tracelevel)
3000                                         if defined $::RD_TRACE;
3001                 if (1) { no strict qw{refs};
3002                 $expectation->is(q{})->at($text);
3003                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
3004                 {
3005                         
3006                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
3007                                                   Parse::RecDescent::_tracefirst($text),
3008                                                   q{subject_expression},
3009                                                   $tracelevel)
3010                                                         if defined $::RD_TRACE;
3011                         $expectation->failed();
3012                         last;
3013                 }
3014                 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
3015                                         . $_tok . q{]},
3016                                           
3017                                           Parse::RecDescent::_tracefirst($text),
3018                                           q{subject_expression},
3019                                           $tracelevel)
3020                                                 if defined $::RD_TRACE;
3021                 $item{q{expression}} = $_tok;
3022                 push @item, $_tok;
3023                 
3024                 }
3025
3026                 Parse::RecDescent::_trace(q{Trying action},
3027                                           Parse::RecDescent::_tracefirst($text),
3028                                           q{subject_expression},
3029                                           $tracelevel)
3030                                                 if defined $::RD_TRACE;
3031                 
3032
3033                 $_tok = ($_noactions) ? 0 : do { # with static result type that is a used-defined struct type 
3034 };
3035                 unless (defined $_tok)
3036                 {
3037                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3038                                         if defined $::RD_TRACE;
3039                         last;
3040                 }
3041                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3042                                           . $_tok . q{])},
3043                                           Parse::RecDescent::_tracefirst($text))
3044                                                 if defined $::RD_TRACE;
3045                 push @item, $_tok;
3046                 $item{__ACTION1__}=$_tok;
3047                 
3048
3049
3050                 Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
3051                                           Parse::RecDescent::_tracefirst($text),
3052                                           q{subject_expression},
3053                                           $tracelevel)
3054                                                 if defined $::RD_TRACE;
3055                 $_matched = 1;
3056                 last;
3057         }
3058
3059
3060         unless ( $_matched || defined($return) || defined($score) )
3061         {
3062                 
3063
3064                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
3065                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
3066                                          Parse::RecDescent::_tracefirst($_[1]),
3067                                          q{subject_expression},
3068                                          $tracelevel)
3069                                         if defined $::RD_TRACE;
3070                 return undef;
3071         }
3072         if (!defined($return) && defined($score))
3073         {
3074                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3075                                           q{subject_expression},
3076                                           $tracelevel)
3077                                                 if defined $::RD_TRACE;
3078                 $return = $score_return;
3079         }
3080         splice @{$thisparser->{errors}}, $err_at;
3081         $return = $item[$#item] unless defined $return;
3082         if (defined $::RD_TRACE)
3083         {
3084                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3085                                           $return . q{])}, "",
3086                                           q{subject_expression},
3087                                           $tracelevel);
3088                 Parse::RecDescent::_trace(q{(consumed: [} .
3089                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
3090                                           Parse::RecDescent::_tracefirst($text),
3091                                           , q{subject_expression},
3092                                           $tracelevel)
3093         }
3094         $_[1] = $text;
3095         return $return;
3096 }
3097
3098 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3099 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_desc_option
3100 {
3101         my $thisparser = $_[0];
3102         use vars q{$tracelevel};
3103         local $tracelevel = ($tracelevel||0)+1;
3104         $ERRORS = 0;
3105         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_desc_option"};
3106         
3107         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_desc_option]},
3108                                   Parse::RecDescent::_tracefirst($_[1]),
3109                                   q{_alternation_1_of_production_1_of_rule_desc_option},
3110                                   $tracelevel)
3111                                         if defined $::RD_TRACE;
3112
3113         
3114         my $err_at = @{$thisparser->{errors}};
3115
3116         my $score;
3117         my $score_return;
3118         my $_tok;
3119         my $return = undef;
3120         my $_matched=0;
3121         my $commit=0;
3122         my @item = ();
3123         my %item = ();
3124         my $repeating =  defined($_[2]) && $_[2];
3125         my $_noactions = defined($_[3]) && $_[3];
3126         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
3127         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
3128         my $text;
3129         my $lastsep="";
3130         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3131         $expectation->at($_[1]);
3132         
3133         my $thisline;
3134         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3135
3136         
3137
3138         while (!$_matched && !$commit)
3139         {
3140                 
3141                 Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+FIRST/i]},
3142                                           Parse::RecDescent::_tracefirst($_[1]),
3143                                           q{_alternation_1_of_production_1_of_rule_desc_option},
3144                                           $tracelevel)
3145                                                 if defined $::RD_TRACE;
3146                 my $thisprod = $thisrule->{"prods"}[0];
3147                 $text = $_[1];
3148                 my $_savetext;
3149                 @item = (q{_alternation_1_of_production_1_of_rule_desc_option});
3150                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_desc_option});
3151                 my $repcount = 0;
3152
3153
3154                 Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+FIRST/i]}, Parse::RecDescent::_tracefirst($text),
3155                                           q{_alternation_1_of_production_1_of_rule_desc_option},
3156                                           $tracelevel)
3157                                                 if defined $::RD_TRACE;
3158                 $lastsep = "";
3159                 $expectation->is(q{})->at($text);
3160                 
3161
3162                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLS\s+FIRST)//i)
3163                 {
3164                         
3165                         $expectation->failed();
3166                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
3167                                                   Parse::RecDescent::_tracefirst($text))
3168                                         if defined $::RD_TRACE;
3169
3170                         last;
3171                 }
3172                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3173                                                 . $& . q{])},
3174                                                   Parse::RecDescent::_tracefirst($text))
3175                                         if defined $::RD_TRACE;
3176                 push @item, $item{__PATTERN1__}=$&;
3177                 
3178
3179
3180                 Parse::RecDescent::_trace(q{>>Matched production: [/NULLS\\s+FIRST/i]<<},
3181                                           Parse::RecDescent::_tracefirst($text),
3182                                           q{_alternation_1_of_production_1_of_rule_desc_option},
3183                                           $tracelevel)
3184                                                 if defined $::RD_TRACE;
3185                 $_matched = 1;
3186                 last;
3187         }
3188
3189
3190         while (!$_matched && !$commit)
3191         {
3192                 
3193                 Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+LAST/i]},
3194                                           Parse::RecDescent::_tracefirst($_[1]),
3195                                           q{_alternation_1_of_production_1_of_rule_desc_option},
3196                                           $tracelevel)
3197                                                 if defined $::RD_TRACE;
3198                 my $thisprod = $thisrule->{"prods"}[1];
3199                 $text = $_[1];
3200                 my $_savetext;
3201                 @item = (q{_alternation_1_of_production_1_of_rule_desc_option});
3202                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_desc_option});
3203                 my $repcount = 0;
3204
3205
3206                 Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+LAST/i]}, Parse::RecDescent::_tracefirst($text),
3207                                           q{_alternation_1_of_production_1_of_rule_desc_option},
3208                                           $tracelevel)
3209                                                 if defined $::RD_TRACE;
3210                 $lastsep = "";
3211                 $expectation->is(q{})->at($text);
3212                 
3213
3214                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLS\s+LAST)//i)
3215                 {
3216                         
3217                         $expectation->failed();
3218                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
3219                                                   Parse::RecDescent::_tracefirst($text))
3220                                         if defined $::RD_TRACE;
3221
3222                         last;
3223                 }
3224                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3225                                                 . $& . q{])},
3226                                                   Parse::RecDescent::_tracefirst($text))
3227                                         if defined $::RD_TRACE;
3228                 push @item, $item{__PATTERN1__}=$&;
3229                 
3230
3231
3232                 Parse::RecDescent::_trace(q{>>Matched production: [/NULLS\\s+LAST/i]<<},
3233                                           Parse::RecDescent::_tracefirst($text),
3234                                           q{_alternation_1_of_production_1_of_rule_desc_option},
3235                                           $tracelevel)
3236                                                 if defined $::RD_TRACE;
3237                 $_matched = 1;
3238                 last;
3239         }
3240
3241
3242         unless ( $_matched || defined($return) || defined($score) )
3243         {
3244                 
3245
3246                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
3247                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
3248                                          Parse::RecDescent::_tracefirst($_[1]),
3249                                          q{_alternation_1_of_production_1_of_rule_desc_option},
3250                                          $tracelevel)
3251                                         if defined $::RD_TRACE;
3252                 return undef;
3253         }
3254         if (!defined($return) && defined($score))
3255         {
3256                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3257                                           q{_alternation_1_of_production_1_of_rule_desc_option},
3258                                           $tracelevel)
3259                                                 if defined $::RD_TRACE;
3260                 $return = $score_return;
3261         }
3262         splice @{$thisparser->{errors}}, $err_at;
3263         $return = $item[$#item] unless defined $return;
3264         if (defined $::RD_TRACE)
3265         {
3266                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3267                                           $return . q{])}, "",
3268                                           q{_alternation_1_of_production_1_of_rule_desc_option},
3269                                           $tracelevel);
3270                 Parse::RecDescent::_trace(q{(consumed: [} .
3271                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
3272                                           Parse::RecDescent::_tracefirst($text),
3273                                           , q{_alternation_1_of_production_1_of_rule_desc_option},
3274                                           $tracelevel)
3275         }
3276         $_[1] = $text;
3277         return $return;
3278 }
3279
3280 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3281 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::view_name
3282 {
3283         my $thisparser = $_[0];
3284         use vars q{$tracelevel};
3285         local $tracelevel = ($tracelevel||0)+1;
3286         $ERRORS = 0;
3287         my $thisrule = $thisparser->{"rules"}{"view_name"};
3288         
3289         Parse::RecDescent::_trace(q{Trying rule: [view_name]},
3290                                   Parse::RecDescent::_tracefirst($_[1]),
3291                                   q{view_name},
3292                                   $tracelevel)
3293                                         if defined $::RD_TRACE;
3294
3295         
3296         my $err_at = @{$thisparser->{errors}};
3297
3298         my $score;
3299         my $score_return;
3300         my $_tok;
3301         my $return = undef;
3302         my $_matched=0;
3303         my $commit=0;
3304         my @item = ();
3305         my %item = ();
3306         my $repeating =  defined($_[2]) && $_[2];
3307         my $_noactions = defined($_[3]) && $_[3];
3308         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
3309         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
3310         my $text;
3311         my $lastsep="";
3312         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3313         $expectation->at($_[1]);
3314         
3315         my $thisline;
3316         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3317
3318         
3319
3320         while (!$_matched && !$commit)
3321         {
3322                 
3323                 Parse::RecDescent::_trace(q{Trying production: [SCHEMA '.' NAME]},
3324                                           Parse::RecDescent::_tracefirst($_[1]),
3325                                           q{view_name},
3326                                           $tracelevel)
3327                                                 if defined $::RD_TRACE;
3328                 my $thisprod = $thisrule->{"prods"}[0];
3329                 $text = $_[1];
3330                 my $_savetext;
3331                 @item = (q{view_name});
3332                 %item = (__RULE__ => q{view_name});
3333                 my $repcount = 0;
3334
3335
3336                 Parse::RecDescent::_trace(q{Trying subrule: [SCHEMA]},
3337                                   Parse::RecDescent::_tracefirst($text),
3338                                   q{view_name},
3339                                   $tracelevel)
3340                                         if defined $::RD_TRACE;
3341                 if (1) { no strict qw{refs};
3342                 $expectation->is(q{})->at($text);
3343                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
3344                 {
3345                         
3346                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [SCHEMA]>>},
3347                                                   Parse::RecDescent::_tracefirst($text),
3348                                                   q{view_name},
3349                                                   $tracelevel)
3350                                                         if defined $::RD_TRACE;
3351                         $expectation->failed();
3352                         last;
3353                 }
3354                 Parse::RecDescent::_trace(q{>>Matched subrule: [SCHEMA]<< (return value: [}
3355                                         . $_tok . q{]},
3356                                           
3357                                           Parse::RecDescent::_tracefirst($text),
3358                                           q{view_name},
3359                                           $tracelevel)
3360                                                 if defined $::RD_TRACE;
3361                 $item{q{SCHEMA}} = $_tok;
3362                 push @item, $_tok;
3363                 
3364                 }
3365
3366                 Parse::RecDescent::_trace(q{Trying terminal: ['.']},
3367                                           Parse::RecDescent::_tracefirst($text),
3368                                           q{view_name},
3369                                           $tracelevel)
3370                                                 if defined $::RD_TRACE;
3371                 $lastsep = "";
3372                 $expectation->is(q{'.'})->at($text);
3373                 
3374
3375                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\.//)
3376                 {
3377                         
3378                         $expectation->failed();
3379                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
3380                                                   Parse::RecDescent::_tracefirst($text))
3381                                                         if defined $::RD_TRACE;
3382                         last;
3383                 }
3384                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3385                                                 . $& . q{])},
3386                                                   Parse::RecDescent::_tracefirst($text))
3387                                                         if defined $::RD_TRACE;
3388                 push @item, $item{__STRING1__}=$&;
3389                 
3390
3391                 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
3392                                   Parse::RecDescent::_tracefirst($text),
3393                                   q{view_name},
3394                                   $tracelevel)
3395                                         if defined $::RD_TRACE;
3396                 if (1) { no strict qw{refs};
3397                 $expectation->is(q{NAME})->at($text);
3398                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
3399                 {
3400                         
3401                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
3402                                                   Parse::RecDescent::_tracefirst($text),
3403                                                   q{view_name},
3404                                                   $tracelevel)
3405                                                         if defined $::RD_TRACE;
3406                         $expectation->failed();
3407                         last;
3408                 }
3409                 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
3410                                         . $_tok . q{]},
3411                                           
3412                                           Parse::RecDescent::_tracefirst($text),
3413                                           q{view_name},
3414                                           $tracelevel)
3415                                                 if defined $::RD_TRACE;
3416                 $item{q{NAME}} = $_tok;
3417                 push @item, $_tok;
3418                 
3419                 }
3420
3421                 Parse::RecDescent::_trace(q{Trying action},
3422                                           Parse::RecDescent::_tracefirst($text),
3423                                           q{view_name},
3424                                           $tracelevel)
3425                                                 if defined $::RD_TRACE;
3426                 
3427
3428                 $_tok = ($_noactions) ? 0 : do { $return = { schema => $item[1], name => $item[3] } };
3429                 unless (defined $_tok)
3430                 {
3431                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3432                                         if defined $::RD_TRACE;
3433                         last;
3434                 }
3435                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3436                                           . $_tok . q{])},
3437                                           Parse::RecDescent::_tracefirst($text))
3438                                                 if defined $::RD_TRACE;
3439                 push @item, $_tok;
3440                 $item{__ACTION1__}=$_tok;
3441                 
3442
3443
3444                 Parse::RecDescent::_trace(q{>>Matched production: [SCHEMA '.' NAME]<<},
3445                                           Parse::RecDescent::_tracefirst($text),
3446                                           q{view_name},
3447                                           $tracelevel)
3448                                                 if defined $::RD_TRACE;
3449                 $_matched = 1;
3450                 last;
3451         }
3452
3453
3454         while (!$_matched && !$commit)
3455         {
3456                 
3457                 Parse::RecDescent::_trace(q{Trying production: [NAME]},
3458                                           Parse::RecDescent::_tracefirst($_[1]),
3459                                           q{view_name},
3460                                           $tracelevel)
3461                                                 if defined $::RD_TRACE;
3462                 my $thisprod = $thisrule->{"prods"}[1];
3463                 $text = $_[1];
3464                 my $_savetext;
3465                 @item = (q{view_name});
3466                 %item = (__RULE__ => q{view_name});
3467                 my $repcount = 0;
3468
3469
3470                 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
3471                                   Parse::RecDescent::_tracefirst($text),
3472                                   q{view_name},
3473                                   $tracelevel)
3474                                         if defined $::RD_TRACE;
3475                 if (1) { no strict qw{refs};
3476                 $expectation->is(q{})->at($text);
3477                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
3478                 {
3479                         
3480                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
3481                                                   Parse::RecDescent::_tracefirst($text),
3482                                                   q{view_name},
3483                                                   $tracelevel)
3484                                                         if defined $::RD_TRACE;
3485                         $expectation->failed();
3486                         last;
3487                 }
3488                 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
3489                                         . $_tok . q{]},
3490                                           
3491                                           Parse::RecDescent::_tracefirst($text),
3492                                           q{view_name},
3493                                           $tracelevel)
3494                                                 if defined $::RD_TRACE;
3495                 $item{q{NAME}} = $_tok;
3496                 push @item, $_tok;
3497                 
3498                 }
3499
3500                 Parse::RecDescent::_trace(q{Trying action},
3501                                           Parse::RecDescent::_tracefirst($text),
3502                                           q{view_name},
3503                                           $tracelevel)
3504                                                 if defined $::RD_TRACE;
3505                 
3506
3507                 $_tok = ($_noactions) ? 0 : do { $return = { name => $item[1] } };
3508                 unless (defined $_tok)
3509                 {
3510                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3511                                         if defined $::RD_TRACE;
3512                         last;
3513                 }
3514                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3515                                           . $_tok . q{])},
3516                                           Parse::RecDescent::_tracefirst($text))
3517                                                 if defined $::RD_TRACE;
3518                 push @item, $_tok;
3519                 $item{__ACTION1__}=$_tok;
3520                 
3521
3522
3523                 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
3524                                           Parse::RecDescent::_tracefirst($text),
3525                                           q{view_name},
3526                                           $tracelevel)
3527                                                 if defined $::RD_TRACE;
3528                 $_matched = 1;
3529                 last;
3530         }
3531
3532
3533         unless ( $_matched || defined($return) || defined($score) )
3534         {
3535                 
3536
3537                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
3538                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
3539                                          Parse::RecDescent::_tracefirst($_[1]),
3540                                          q{view_name},
3541                                          $tracelevel)
3542                                         if defined $::RD_TRACE;
3543                 return undef;
3544         }
3545         if (!defined($return) && defined($score))
3546         {
3547                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3548                                           q{view_name},
3549                                           $tracelevel)
3550                                                 if defined $::RD_TRACE;
3551                 $return = $score_return;
3552         }
3553         splice @{$thisparser->{errors}}, $err_at;
3554         $return = $item[$#item] unless defined $return;
3555         if (defined $::RD_TRACE)
3556         {
3557                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3558                                           $return . q{])}, "",
3559                                           q{view_name},
3560                                           $tracelevel);
3561                 Parse::RecDescent::_trace(q{(consumed: [} .
3562                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
3563                                           Parse::RecDescent::_tracefirst($text),
3564                                           , q{view_name},
3565                                           $tracelevel)
3566         }
3567         $_[1] = $text;
3568         return $return;
3569 }
3570
3571 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3572 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cond
3573 {
3574         my $thisparser = $_[0];
3575         use vars q{$tracelevel};
3576         local $tracelevel = ($tracelevel||0)+1;
3577         $ERRORS = 0;
3578         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_cond"};
3579         
3580         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_cond]},
3581                                   Parse::RecDescent::_tracefirst($_[1]),
3582                                   q{_alternation_1_of_production_1_of_rule_cond},
3583                                   $tracelevel)
3584                                         if defined $::RD_TRACE;
3585
3586         
3587         my $err_at = @{$thisparser->{errors}};
3588
3589         my $score;
3590         my $score_return;
3591         my $_tok;
3592         my $return = undef;
3593         my $_matched=0;
3594         my $commit=0;
3595         my @item = ();
3596         my %item = ();
3597         my $repeating =  defined($_[2]) && $_[2];
3598         my $_noactions = defined($_[3]) && $_[3];
3599         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
3600         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
3601         my $text;
3602         my $lastsep="";
3603         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3604         $expectation->at($_[1]);
3605         
3606         my $thisline;
3607         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3608
3609         
3610
3611         while (!$_matched && !$commit)
3612         {
3613                 
3614                 Parse::RecDescent::_trace(q{Trying production: [/AND/i]},
3615                                           Parse::RecDescent::_tracefirst($_[1]),
3616                                           q{_alternation_1_of_production_1_of_rule_cond},
3617                                           $tracelevel)
3618                                                 if defined $::RD_TRACE;
3619                 my $thisprod = $thisrule->{"prods"}[0];
3620                 $text = $_[1];
3621                 my $_savetext;
3622                 @item = (q{_alternation_1_of_production_1_of_rule_cond});
3623                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cond});
3624                 my $repcount = 0;
3625
3626
3627                 Parse::RecDescent::_trace(q{Trying terminal: [/AND/i]}, Parse::RecDescent::_tracefirst($text),
3628                                           q{_alternation_1_of_production_1_of_rule_cond},
3629                                           $tracelevel)
3630                                                 if defined $::RD_TRACE;
3631                 $lastsep = "";
3632                 $expectation->is(q{})->at($text);
3633                 
3634
3635                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AND)//i)
3636                 {
3637                         
3638                         $expectation->failed();
3639                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
3640                                                   Parse::RecDescent::_tracefirst($text))
3641                                         if defined $::RD_TRACE;
3642
3643                         last;
3644                 }
3645                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3646                                                 . $& . q{])},
3647                                                   Parse::RecDescent::_tracefirst($text))
3648                                         if defined $::RD_TRACE;
3649                 push @item, $item{__PATTERN1__}=$&;
3650                 
3651
3652
3653                 Parse::RecDescent::_trace(q{>>Matched production: [/AND/i]<<},
3654                                           Parse::RecDescent::_tracefirst($text),
3655                                           q{_alternation_1_of_production_1_of_rule_cond},
3656                                           $tracelevel)
3657                                                 if defined $::RD_TRACE;
3658                 $_matched = 1;
3659                 last;
3660         }
3661
3662
3663         while (!$_matched && !$commit)
3664         {
3665                 
3666                 Parse::RecDescent::_trace(q{Trying production: [/OR/i]},
3667                                           Parse::RecDescent::_tracefirst($_[1]),
3668                                           q{_alternation_1_of_production_1_of_rule_cond},
3669                                           $tracelevel)
3670                                                 if defined $::RD_TRACE;
3671                 my $thisprod = $thisrule->{"prods"}[1];
3672                 $text = $_[1];
3673                 my $_savetext;
3674                 @item = (q{_alternation_1_of_production_1_of_rule_cond});
3675                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cond});
3676                 my $repcount = 0;
3677
3678
3679                 Parse::RecDescent::_trace(q{Trying terminal: [/OR/i]}, Parse::RecDescent::_tracefirst($text),
3680                                           q{_alternation_1_of_production_1_of_rule_cond},
3681                                           $tracelevel)
3682                                                 if defined $::RD_TRACE;
3683                 $lastsep = "";
3684                 $expectation->is(q{})->at($text);
3685                 
3686
3687                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OR)//i)
3688                 {
3689                         
3690                         $expectation->failed();
3691                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
3692                                                   Parse::RecDescent::_tracefirst($text))
3693                                         if defined $::RD_TRACE;
3694
3695                         last;
3696                 }
3697                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3698                                                 . $& . q{])},
3699                                                   Parse::RecDescent::_tracefirst($text))
3700                                         if defined $::RD_TRACE;
3701                 push @item, $item{__PATTERN1__}=$&;
3702                 
3703
3704
3705                 Parse::RecDescent::_trace(q{>>Matched production: [/OR/i]<<},
3706                                           Parse::RecDescent::_tracefirst($text),
3707                                           q{_alternation_1_of_production_1_of_rule_cond},
3708                                           $tracelevel)
3709                                                 if defined $::RD_TRACE;
3710                 $_matched = 1;
3711                 last;
3712         }
3713
3714
3715         unless ( $_matched || defined($return) || defined($score) )
3716         {
3717                 
3718
3719                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
3720                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
3721                                          Parse::RecDescent::_tracefirst($_[1]),
3722                                          q{_alternation_1_of_production_1_of_rule_cond},
3723                                          $tracelevel)
3724                                         if defined $::RD_TRACE;
3725                 return undef;
3726         }
3727         if (!defined($return) && defined($score))
3728         {
3729                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3730                                           q{_alternation_1_of_production_1_of_rule_cond},
3731                                           $tracelevel)
3732                                                 if defined $::RD_TRACE;
3733                 $return = $score_return;
3734         }
3735         splice @{$thisparser->{errors}}, $err_at;
3736         $return = $item[$#item] unless defined $return;
3737         if (defined $::RD_TRACE)
3738         {
3739                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3740                                           $return . q{])}, "",
3741                                           q{_alternation_1_of_production_1_of_rule_cond},
3742                                           $tracelevel);
3743                 Parse::RecDescent::_trace(q{(consumed: [} .
3744                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
3745                                           Parse::RecDescent::_tracefirst($text),
3746                                           , q{_alternation_1_of_production_1_of_rule_cond},
3747                                           $tracelevel)
3748         }
3749         $_[1] = $text;
3750         return $return;
3751 }
3752
3753 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3754 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numbering_function
3755 {
3756         my $thisparser = $_[0];
3757         use vars q{$tracelevel};
3758         local $tracelevel = ($tracelevel||0)+1;
3759         $ERRORS = 0;
3760         my $thisrule = $thisparser->{"rules"}{"numbering_function"};
3761         
3762         Parse::RecDescent::_trace(q{Trying rule: [numbering_function]},
3763                                   Parse::RecDescent::_tracefirst($_[1]),
3764                                   q{numbering_function},
3765                                   $tracelevel)
3766                                         if defined $::RD_TRACE;
3767
3768         
3769         my $err_at = @{$thisparser->{errors}};
3770
3771         my $score;
3772         my $score_return;
3773         my $_tok;
3774         my $return = undef;
3775         my $_matched=0;
3776         my $commit=0;
3777         my @item = ();
3778         my %item = ();
3779         my $repeating =  defined($_[2]) && $_[2];
3780         my $_noactions = defined($_[3]) && $_[3];
3781         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
3782         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
3783         my $text;
3784         my $lastsep="";
3785         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3786         $expectation->at($_[1]);
3787         
3788         my $thisline;
3789         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3790
3791         
3792
3793         while (!$_matched && !$commit)
3794         {
3795                 
3796                 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 ')']},
3797                                           Parse::RecDescent::_tracefirst($_[1]),
3798                                           q{numbering_function},
3799                                           $tracelevel)
3800                                                 if defined $::RD_TRACE;
3801                 my $thisprod = $thisrule->{"prods"}[0];
3802                 $text = $_[1];
3803                 my $_savetext;
3804                 @item = (q{numbering_function});
3805                 %item = (__RULE__ => q{numbering_function});
3806                 my $repcount = 0;
3807
3808
3809                 Parse::RecDescent::_trace(q{Trying terminal: [/ROW_NUMBER|ROWNUMBER/i]}, Parse::RecDescent::_tracefirst($text),
3810                                           q{numbering_function},
3811                                           $tracelevel)
3812                                                 if defined $::RD_TRACE;
3813                 $lastsep = "";
3814                 $expectation->is(q{})->at($text);
3815                 
3816
3817                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ROW_NUMBER|ROWNUMBER)//i)
3818                 {
3819                         
3820                         $expectation->failed();
3821                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
3822                                                   Parse::RecDescent::_tracefirst($text))
3823                                         if defined $::RD_TRACE;
3824
3825                         last;
3826                 }
3827                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3828                                                 . $& . q{])},
3829                                                   Parse::RecDescent::_tracefirst($text))
3830                                         if defined $::RD_TRACE;
3831                 push @item, $item{__PATTERN1__}=$&;
3832                 
3833
3834                 Parse::RecDescent::_trace(q{Trying terminal: ['()']},
3835                                           Parse::RecDescent::_tracefirst($text),
3836                                           q{numbering_function},
3837                                           $tracelevel)
3838                                                 if defined $::RD_TRACE;
3839                 $lastsep = "";
3840                 $expectation->is(q{'()'})->at($text);
3841                 
3842
3843                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(\)//)
3844                 {
3845                         
3846                         $expectation->failed();
3847                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
3848                                                   Parse::RecDescent::_tracefirst($text))
3849                                                         if defined $::RD_TRACE;
3850                         last;
3851                 }
3852                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3853                                                 . $& . q{])},
3854                                                   Parse::RecDescent::_tracefirst($text))
3855                                                         if defined $::RD_TRACE;
3856                 push @item, $item{__STRING1__}=$&;
3857                 
3858
3859                 Parse::RecDescent::_trace(q{Trying terminal: [/OVER/i]}, Parse::RecDescent::_tracefirst($text),
3860                                           q{numbering_function},
3861                                           $tracelevel)
3862                                                 if defined $::RD_TRACE;
3863                 $lastsep = "";
3864                 $expectation->is(q{/OVER/i})->at($text);
3865                 
3866
3867                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OVER)//i)
3868                 {
3869                         
3870                         $expectation->failed();
3871                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
3872                                                   Parse::RecDescent::_tracefirst($text))
3873                                         if defined $::RD_TRACE;
3874
3875                         last;
3876                 }
3877                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3878                                                 . $& . q{])},
3879                                                   Parse::RecDescent::_tracefirst($text))
3880                                         if defined $::RD_TRACE;
3881                 push @item, $item{__PATTERN2__}=$&;
3882                 
3883
3884                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
3885                                           Parse::RecDescent::_tracefirst($text),
3886                                           q{numbering_function},
3887                                           $tracelevel)
3888                                                 if defined $::RD_TRACE;
3889                 $lastsep = "";
3890                 $expectation->is(q{'('})->at($text);
3891                 
3892
3893                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
3894                 {
3895                         
3896                         $expectation->failed();
3897                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
3898                                                   Parse::RecDescent::_tracefirst($text))
3899                                                         if defined $::RD_TRACE;
3900                         last;
3901                 }
3902                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3903                                                 . $& . q{])},
3904                                                   Parse::RecDescent::_tracefirst($text))
3905                                                         if defined $::RD_TRACE;
3906                 push @item, $item{__STRING2__}=$&;
3907                 
3908
3909                 Parse::RecDescent::_trace(q{Trying repeated subrule: [window_partition_clause]},
3910                                   Parse::RecDescent::_tracefirst($text),
3911                                   q{numbering_function},
3912                                   $tracelevel)
3913                                         if defined $::RD_TRACE;
3914                 $expectation->is(q{window_partition_clause})->at($text);
3915                 
3916                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause, 0, 1, $_noactions,$expectation,undef))) 
3917                 {
3918                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [window_partition_clause]>>},
3919                                                   Parse::RecDescent::_tracefirst($text),
3920                                                   q{numbering_function},
3921                                                   $tracelevel)
3922                                                         if defined $::RD_TRACE;
3923                         last;
3924                 }
3925                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [window_partition_clause]<< (}
3926                                         . @$_tok . q{ times)},
3927                                           
3928                                           Parse::RecDescent::_tracefirst($text),
3929                                           q{numbering_function},
3930                                           $tracelevel)
3931                                                 if defined $::RD_TRACE;
3932                 $item{q{window_partition_clause(?)}} = $_tok;
3933                 push @item, $_tok;
3934                 
3935
3936
3937                 Parse::RecDescent::_trace(q{Trying repeated subrule: [window_order_clause]},
3938                                   Parse::RecDescent::_tracefirst($text),
3939                                   q{numbering_function},
3940                                   $tracelevel)
3941                                         if defined $::RD_TRACE;
3942                 $expectation->is(q{window_order_clause})->at($text);
3943                 
3944                 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))) 
3945                 {
3946                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [window_order_clause]>>},
3947                                                   Parse::RecDescent::_tracefirst($text),
3948                                                   q{numbering_function},
3949                                                   $tracelevel)
3950                                                         if defined $::RD_TRACE;
3951                         last;
3952                 }
3953                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_numbering_function]<< (}
3954                                         . @$_tok . q{ times)},
3955                                           
3956                                           Parse::RecDescent::_tracefirst($text),
3957                                           q{numbering_function},
3958                                           $tracelevel)
3959                                                 if defined $::RD_TRACE;
3960                 $item{q{_alternation_1_of_production_1_of_rule_numbering_function(?)}} = $_tok;
3961                 push @item, $_tok;
3962                 
3963
3964
3965                 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]},
3966                                   Parse::RecDescent::_tracefirst($text),
3967                                   q{numbering_function},
3968                                   $tracelevel)
3969                                         if defined $::RD_TRACE;
3970                 $expectation->is(q{/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause})->at($text);
3971                 
3972                 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))) 
3973                 {
3974                         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]>>},
3975                                                   Parse::RecDescent::_tracefirst($text),
3976                                                   q{numbering_function},
3977                                                   $tracelevel)
3978                                                         if defined $::RD_TRACE;
3979                         last;
3980                 }
3981                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_numbering_function]<< (}
3982                                         . @$_tok . q{ times)},
3983                                           
3984                                           Parse::RecDescent::_tracefirst($text),
3985                                           q{numbering_function},
3986                                           $tracelevel)
3987                                                 if defined $::RD_TRACE;
3988                 $item{q{_alternation_2_of_production_1_of_rule_numbering_function(?)}} = $_tok;
3989                 push @item, $_tok;
3990                 
3991
3992
3993                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
3994                                           Parse::RecDescent::_tracefirst($text),
3995                                           q{numbering_function},
3996                                           $tracelevel)
3997                                                 if defined $::RD_TRACE;
3998                 $lastsep = "";
3999                 $expectation->is(q{')'})->at($text);
4000                 
4001
4002                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
4003                 {
4004                         
4005                         $expectation->failed();
4006                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
4007                                                   Parse::RecDescent::_tracefirst($text))
4008                                                         if defined $::RD_TRACE;
4009                         last;
4010                 }
4011                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4012                                                 . $& . q{])},
4013                                                   Parse::RecDescent::_tracefirst($text))
4014                                                         if defined $::RD_TRACE;
4015                 push @item, $item{__STRING3__}=$&;
4016                 
4017
4018
4019                 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 ')']<<},
4020                                           Parse::RecDescent::_tracefirst($text),
4021                                           q{numbering_function},
4022                                           $tracelevel)
4023                                                 if defined $::RD_TRACE;
4024                 $_matched = 1;
4025                 last;
4026         }
4027
4028
4029         unless ( $_matched || defined($return) || defined($score) )
4030         {
4031                 
4032
4033                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
4034                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
4035                                          Parse::RecDescent::_tracefirst($_[1]),
4036                                          q{numbering_function},
4037                                          $tracelevel)
4038                                         if defined $::RD_TRACE;
4039                 return undef;
4040         }
4041         if (!defined($return) && defined($score))
4042         {
4043                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4044                                           q{numbering_function},
4045                                           $tracelevel)
4046                                                 if defined $::RD_TRACE;
4047                 $return = $score_return;
4048         }
4049         splice @{$thisparser->{errors}}, $err_at;
4050         $return = $item[$#item] unless defined $return;
4051         if (defined $::RD_TRACE)
4052         {
4053                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4054                                           $return . q{])}, "",
4055                                           q{numbering_function},
4056                                           $tracelevel);
4057                 Parse::RecDescent::_trace(q{(consumed: [} .
4058                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
4059                                           Parse::RecDescent::_tracefirst($text),
4060                                           , q{numbering_function},
4061                                           $tracelevel)
4062         }
4063         $_[1] = $text;
4064         return $return;
4065 }
4066
4067 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4068 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_aggregation_group_clause
4069 {
4070         my $thisparser = $_[0];
4071         use vars q{$tracelevel};
4072         local $tracelevel = ($tracelevel||0)+1;
4073         $ERRORS = 0;
4074         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_window_aggregation_group_clause"};
4075         
4076         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]},
4077                                   Parse::RecDescent::_tracefirst($_[1]),
4078                                   q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4079                                   $tracelevel)
4080                                         if defined $::RD_TRACE;
4081
4082         
4083         my $err_at = @{$thisparser->{errors}};
4084
4085         my $score;
4086         my $score_return;
4087         my $_tok;
4088         my $return = undef;
4089         my $_matched=0;
4090         my $commit=0;
4091         my @item = ();
4092         my %item = ();
4093         my $repeating =  defined($_[2]) && $_[2];
4094         my $_noactions = defined($_[3]) && $_[3];
4095         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
4096         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
4097         my $text;
4098         my $lastsep="";
4099         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4100         $expectation->at($_[1]);
4101         
4102         my $thisline;
4103         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4104
4105         
4106
4107         while (!$_matched && !$commit)
4108         {
4109                 
4110                 Parse::RecDescent::_trace(q{Trying production: [/ROWS/i]},
4111                                           Parse::RecDescent::_tracefirst($_[1]),
4112                                           q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4113                                           $tracelevel)
4114                                                 if defined $::RD_TRACE;
4115                 my $thisprod = $thisrule->{"prods"}[0];
4116                 $text = $_[1];
4117                 my $_savetext;
4118                 @item = (q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
4119                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
4120                 my $repcount = 0;
4121
4122
4123                 Parse::RecDescent::_trace(q{Trying terminal: [/ROWS/i]}, Parse::RecDescent::_tracefirst($text),
4124                                           q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4125                                           $tracelevel)
4126                                                 if defined $::RD_TRACE;
4127                 $lastsep = "";
4128                 $expectation->is(q{})->at($text);
4129                 
4130
4131                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ROWS)//i)
4132                 {
4133                         
4134                         $expectation->failed();
4135                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4136                                                   Parse::RecDescent::_tracefirst($text))
4137                                         if defined $::RD_TRACE;
4138
4139                         last;
4140                 }
4141                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4142                                                 . $& . q{])},
4143                                                   Parse::RecDescent::_tracefirst($text))
4144                                         if defined $::RD_TRACE;
4145                 push @item, $item{__PATTERN1__}=$&;
4146                 
4147
4148
4149                 Parse::RecDescent::_trace(q{>>Matched production: [/ROWS/i]<<},
4150                                           Parse::RecDescent::_tracefirst($text),
4151                                           q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4152                                           $tracelevel)
4153                                                 if defined $::RD_TRACE;
4154                 $_matched = 1;
4155                 last;
4156         }
4157
4158
4159         while (!$_matched && !$commit)
4160         {
4161                 
4162                 Parse::RecDescent::_trace(q{Trying production: [/RANGE/i]},
4163                                           Parse::RecDescent::_tracefirst($_[1]),
4164                                           q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4165                                           $tracelevel)
4166                                                 if defined $::RD_TRACE;
4167                 my $thisprod = $thisrule->{"prods"}[1];
4168                 $text = $_[1];
4169                 my $_savetext;
4170                 @item = (q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
4171                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
4172                 my $repcount = 0;
4173
4174
4175                 Parse::RecDescent::_trace(q{Trying terminal: [/RANGE/i]}, Parse::RecDescent::_tracefirst($text),
4176                                           q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4177                                           $tracelevel)
4178                                                 if defined $::RD_TRACE;
4179                 $lastsep = "";
4180                 $expectation->is(q{})->at($text);
4181                 
4182
4183                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RANGE)//i)
4184                 {
4185                         
4186                         $expectation->failed();
4187                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4188                                                   Parse::RecDescent::_tracefirst($text))
4189                                         if defined $::RD_TRACE;
4190
4191                         last;
4192                 }
4193                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4194                                                 . $& . q{])},
4195                                                   Parse::RecDescent::_tracefirst($text))
4196                                         if defined $::RD_TRACE;
4197                 push @item, $item{__PATTERN1__}=$&;
4198                 
4199
4200
4201                 Parse::RecDescent::_trace(q{>>Matched production: [/RANGE/i]<<},
4202                                           Parse::RecDescent::_tracefirst($text),
4203                                           q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4204                                           $tracelevel)
4205                                                 if defined $::RD_TRACE;
4206                 $_matched = 1;
4207                 last;
4208         }
4209
4210
4211         unless ( $_matched || defined($return) || defined($score) )
4212         {
4213                 
4214
4215                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
4216                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
4217                                          Parse::RecDescent::_tracefirst($_[1]),
4218                                          q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4219                                          $tracelevel)
4220                                         if defined $::RD_TRACE;
4221                 return undef;
4222         }
4223         if (!defined($return) && defined($score))
4224         {
4225                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4226                                           q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4227                                           $tracelevel)
4228                                                 if defined $::RD_TRACE;
4229                 $return = $score_return;
4230         }
4231         splice @{$thisparser->{errors}}, $err_at;
4232         $return = $item[$#item] unless defined $return;
4233         if (defined $::RD_TRACE)
4234         {
4235                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4236                                           $return . q{])}, "",
4237                                           q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4238                                           $tracelevel);
4239                 Parse::RecDescent::_trace(q{(consumed: [} .
4240                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
4241                                           Parse::RecDescent::_tracefirst($text),
4242                                           , q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4243                                           $tracelevel)
4244         }
4245         $_[1] = $text;
4246         return $return;
4247 }
4248
4249 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4250 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound1
4251 {
4252         my $thisparser = $_[0];
4253         use vars q{$tracelevel};
4254         local $tracelevel = ($tracelevel||0)+1;
4255         $ERRORS = 0;
4256         my $thisrule = $thisparser->{"rules"}{"group_bound1"};
4257         
4258         Parse::RecDescent::_trace(q{Trying rule: [group_bound1]},
4259                                   Parse::RecDescent::_tracefirst($_[1]),
4260                                   q{group_bound1},
4261                                   $tracelevel)
4262                                         if defined $::RD_TRACE;
4263
4264         
4265         my $err_at = @{$thisparser->{errors}};
4266
4267         my $score;
4268         my $score_return;
4269         my $_tok;
4270         my $return = undef;
4271         my $_matched=0;
4272         my $commit=0;
4273         my @item = ();
4274         my %item = ();
4275         my $repeating =  defined($_[2]) && $_[2];
4276         my $_noactions = defined($_[3]) && $_[3];
4277         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
4278         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
4279         my $text;
4280         my $lastsep="";
4281         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4282         $expectation->at($_[1]);
4283         
4284         my $thisline;
4285         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4286
4287         
4288
4289         while (!$_matched && !$commit)
4290         {
4291                 
4292                 Parse::RecDescent::_trace(q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
4293                                           Parse::RecDescent::_tracefirst($_[1]),
4294                                           q{group_bound1},
4295                                           $tracelevel)
4296                                                 if defined $::RD_TRACE;
4297                 my $thisprod = $thisrule->{"prods"}[0];
4298                 $text = $_[1];
4299                 my $_savetext;
4300                 @item = (q{group_bound1});
4301                 %item = (__RULE__ => q{group_bound1});
4302                 my $repcount = 0;
4303
4304
4305                 Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
4306                                           q{group_bound1},
4307                                           $tracelevel)
4308                                                 if defined $::RD_TRACE;
4309                 $lastsep = "";
4310                 $expectation->is(q{})->at($text);
4311                 
4312
4313                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i)
4314                 {
4315                         
4316                         $expectation->failed();
4317                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4318                                                   Parse::RecDescent::_tracefirst($text))
4319                                         if defined $::RD_TRACE;
4320
4321                         last;
4322                 }
4323                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4324                                                 . $& . q{])},
4325                                                   Parse::RecDescent::_tracefirst($text))
4326                                         if defined $::RD_TRACE;
4327                 push @item, $item{__PATTERN1__}=$&;
4328                 
4329
4330
4331                 Parse::RecDescent::_trace(q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
4332                                           Parse::RecDescent::_tracefirst($text),
4333                                           q{group_bound1},
4334                                           $tracelevel)
4335                                                 if defined $::RD_TRACE;
4336                 $_matched = 1;
4337                 last;
4338         }
4339
4340
4341         while (!$_matched && !$commit)
4342         {
4343                 
4344                 Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /PRECEDING/i]},
4345                                           Parse::RecDescent::_tracefirst($_[1]),
4346                                           q{group_bound1},
4347                                           $tracelevel)
4348                                                 if defined $::RD_TRACE;
4349                 my $thisprod = $thisrule->{"prods"}[1];
4350                 $text = $_[1];
4351                 my $_savetext;
4352                 @item = (q{group_bound1});
4353                 %item = (__RULE__ => q{group_bound1});
4354                 my $repcount = 0;
4355
4356
4357                 Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
4358                                   Parse::RecDescent::_tracefirst($text),
4359                                   q{group_bound1},
4360                                   $tracelevel)
4361                                         if defined $::RD_TRACE;
4362                 if (1) { no strict qw{refs};
4363                 $expectation->is(q{})->at($text);
4364                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
4365                 {
4366                         
4367                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
4368                                                   Parse::RecDescent::_tracefirst($text),
4369                                                   q{group_bound1},
4370                                                   $tracelevel)
4371                                                         if defined $::RD_TRACE;
4372                         $expectation->failed();
4373                         last;
4374                 }
4375                 Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
4376                                         . $_tok . q{]},
4377                                           
4378                                           Parse::RecDescent::_tracefirst($text),
4379                                           q{group_bound1},
4380                                           $tracelevel)
4381                                                 if defined $::RD_TRACE;
4382                 $item{q{unsigned_constant}} = $_tok;
4383                 push @item, $_tok;
4384                 
4385                 }
4386
4387                 Parse::RecDescent::_trace(q{Trying terminal: [/PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
4388                                           q{group_bound1},
4389                                           $tracelevel)
4390                                                 if defined $::RD_TRACE;
4391                 $lastsep = "";
4392                 $expectation->is(q{/PRECEDING/i})->at($text);
4393                 
4394
4395                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PRECEDING)//i)
4396                 {
4397                         
4398                         $expectation->failed();
4399                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4400                                                   Parse::RecDescent::_tracefirst($text))
4401                                         if defined $::RD_TRACE;
4402
4403                         last;
4404                 }
4405                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4406                                                 . $& . q{])},
4407                                                   Parse::RecDescent::_tracefirst($text))
4408                                         if defined $::RD_TRACE;
4409                 push @item, $item{__PATTERN1__}=$&;
4410                 
4411
4412
4413                 Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /PRECEDING/i]<<},
4414                                           Parse::RecDescent::_tracefirst($text),
4415                                           q{group_bound1},
4416                                           $tracelevel)
4417                                                 if defined $::RD_TRACE;
4418                 $_matched = 1;
4419                 last;
4420         }
4421
4422
4423         while (!$_matched && !$commit)
4424         {
4425                 
4426                 Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /FOLLOWING/i]},
4427                                           Parse::RecDescent::_tracefirst($_[1]),
4428                                           q{group_bound1},
4429                                           $tracelevel)
4430                                                 if defined $::RD_TRACE;
4431                 my $thisprod = $thisrule->{"prods"}[2];
4432                 $text = $_[1];
4433                 my $_savetext;
4434                 @item = (q{group_bound1});
4435                 %item = (__RULE__ => q{group_bound1});
4436                 my $repcount = 0;
4437
4438
4439                 Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
4440                                   Parse::RecDescent::_tracefirst($text),
4441                                   q{group_bound1},
4442                                   $tracelevel)
4443                                         if defined $::RD_TRACE;
4444                 if (1) { no strict qw{refs};
4445                 $expectation->is(q{})->at($text);
4446                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
4447                 {
4448                         
4449                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
4450                                                   Parse::RecDescent::_tracefirst($text),
4451                                                   q{group_bound1},
4452                                                   $tracelevel)
4453                                                         if defined $::RD_TRACE;
4454                         $expectation->failed();
4455                         last;
4456                 }
4457                 Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
4458                                         . $_tok . q{]},
4459                                           
4460                                           Parse::RecDescent::_tracefirst($text),
4461                                           q{group_bound1},
4462                                           $tracelevel)
4463                                                 if defined $::RD_TRACE;
4464                 $item{q{unsigned_constant}} = $_tok;
4465                 push @item, $_tok;
4466                 
4467                 }
4468
4469                 Parse::RecDescent::_trace(q{Trying terminal: [/FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
4470                                           q{group_bound1},
4471                                           $tracelevel)
4472                                                 if defined $::RD_TRACE;
4473                 $lastsep = "";
4474                 $expectation->is(q{/FOLLOWING/i})->at($text);
4475                 
4476
4477                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOLLOWING)//i)
4478                 {
4479                         
4480                         $expectation->failed();
4481                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4482                                                   Parse::RecDescent::_tracefirst($text))
4483                                         if defined $::RD_TRACE;
4484
4485                         last;
4486                 }
4487                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4488                                                 . $& . q{])},
4489                                                   Parse::RecDescent::_tracefirst($text))
4490                                         if defined $::RD_TRACE;
4491                 push @item, $item{__PATTERN1__}=$&;
4492                 
4493
4494
4495                 Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /FOLLOWING/i]<<},
4496                                           Parse::RecDescent::_tracefirst($text),
4497                                           q{group_bound1},
4498                                           $tracelevel)
4499                                                 if defined $::RD_TRACE;
4500                 $_matched = 1;
4501                 last;
4502         }
4503
4504
4505         while (!$_matched && !$commit)
4506         {
4507                 
4508                 Parse::RecDescent::_trace(q{Trying production: [/CURRENT\\s+ROW/i]},
4509                                           Parse::RecDescent::_tracefirst($_[1]),
4510                                           q{group_bound1},
4511                                           $tracelevel)
4512                                                 if defined $::RD_TRACE;
4513                 my $thisprod = $thisrule->{"prods"}[3];
4514                 $text = $_[1];
4515                 my $_savetext;
4516                 @item = (q{group_bound1});
4517                 %item = (__RULE__ => q{group_bound1});
4518                 my $repcount = 0;
4519
4520
4521                 Parse::RecDescent::_trace(q{Trying terminal: [/CURRENT\\s+ROW/i]}, Parse::RecDescent::_tracefirst($text),
4522                                           q{group_bound1},
4523                                           $tracelevel)
4524                                                 if defined $::RD_TRACE;
4525                 $lastsep = "";
4526                 $expectation->is(q{})->at($text);
4527                 
4528
4529                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CURRENT\s+ROW)//i)
4530                 {
4531                         
4532                         $expectation->failed();
4533                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4534                                                   Parse::RecDescent::_tracefirst($text))
4535                                         if defined $::RD_TRACE;
4536
4537                         last;
4538                 }
4539                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4540                                                 . $& . q{])},
4541                                                   Parse::RecDescent::_tracefirst($text))
4542                                         if defined $::RD_TRACE;
4543                 push @item, $item{__PATTERN1__}=$&;
4544                 
4545
4546
4547                 Parse::RecDescent::_trace(q{>>Matched production: [/CURRENT\\s+ROW/i]<<},
4548                                           Parse::RecDescent::_tracefirst($text),
4549                                           q{group_bound1},
4550                                           $tracelevel)
4551                                                 if defined $::RD_TRACE;
4552                 $_matched = 1;
4553                 last;
4554         }
4555
4556
4557         unless ( $_matched || defined($return) || defined($score) )
4558         {
4559                 
4560
4561                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
4562                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
4563                                          Parse::RecDescent::_tracefirst($_[1]),
4564                                          q{group_bound1},
4565                                          $tracelevel)
4566                                         if defined $::RD_TRACE;
4567                 return undef;
4568         }
4569         if (!defined($return) && defined($score))
4570         {
4571                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4572                                           q{group_bound1},
4573                                           $tracelevel)
4574                                                 if defined $::RD_TRACE;
4575                 $return = $score_return;
4576         }
4577         splice @{$thisparser->{errors}}, $err_at;
4578         $return = $item[$#item] unless defined $return;
4579         if (defined $::RD_TRACE)
4580         {
4581                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4582                                           $return . q{])}, "",
4583                                           q{group_bound1},
4584                                           $tracelevel);
4585                 Parse::RecDescent::_trace(q{(consumed: [} .
4586                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
4587                                           Parse::RecDescent::_tracefirst($text),
4588                                           , q{group_bound1},
4589                                           $tracelevel)
4590         }
4591         $_[1] = $text;
4592         return $return;
4593 }
4594
4595 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4596 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OLAP_function
4597 {
4598         my $thisparser = $_[0];
4599         use vars q{$tracelevel};
4600         local $tracelevel = ($tracelevel||0)+1;
4601         $ERRORS = 0;
4602         my $thisrule = $thisparser->{"rules"}{"OLAP_function"};
4603         
4604         Parse::RecDescent::_trace(q{Trying rule: [OLAP_function]},
4605                                   Parse::RecDescent::_tracefirst($_[1]),
4606                                   q{OLAP_function},
4607                                   $tracelevel)
4608                                         if defined $::RD_TRACE;
4609
4610         
4611         my $err_at = @{$thisparser->{errors}};
4612
4613         my $score;
4614         my $score_return;
4615         my $_tok;
4616         my $return = undef;
4617         my $_matched=0;
4618         my $commit=0;
4619         my @item = ();
4620         my %item = ();
4621         my $repeating =  defined($_[2]) && $_[2];
4622         my $_noactions = defined($_[3]) && $_[3];
4623         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
4624         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
4625         my $text;
4626         my $lastsep="";
4627         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4628         $expectation->at($_[1]);
4629         
4630         my $thisline;
4631         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4632
4633         
4634
4635         while (!$_matched && !$commit)
4636         {
4637                 
4638                 Parse::RecDescent::_trace(q{Trying production: [ranking_function]},
4639                                           Parse::RecDescent::_tracefirst($_[1]),
4640                                           q{OLAP_function},
4641                                           $tracelevel)
4642                                                 if defined $::RD_TRACE;
4643                 my $thisprod = $thisrule->{"prods"}[0];
4644                 $text = $_[1];
4645                 my $_savetext;
4646                 @item = (q{OLAP_function});
4647                 %item = (__RULE__ => q{OLAP_function});
4648                 my $repcount = 0;
4649
4650
4651                 Parse::RecDescent::_trace(q{Trying subrule: [ranking_function]},
4652                                   Parse::RecDescent::_tracefirst($text),
4653                                   q{OLAP_function},
4654                                   $tracelevel)
4655                                         if defined $::RD_TRACE;
4656                 if (1) { no strict qw{refs};
4657                 $expectation->is(q{})->at($text);
4658                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ranking_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
4659                 {
4660                         
4661                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [ranking_function]>>},
4662                                                   Parse::RecDescent::_tracefirst($text),
4663                                                   q{OLAP_function},
4664                                                   $tracelevel)
4665                                                         if defined $::RD_TRACE;
4666                         $expectation->failed();
4667                         last;
4668                 }
4669                 Parse::RecDescent::_trace(q{>>Matched subrule: [ranking_function]<< (return value: [}
4670                                         . $_tok . q{]},
4671                                           
4672                                           Parse::RecDescent::_tracefirst($text),
4673                                           q{OLAP_function},
4674                                           $tracelevel)
4675                                                 if defined $::RD_TRACE;
4676                 $item{q{ranking_function}} = $_tok;
4677                 push @item, $_tok;
4678                 
4679                 }
4680
4681
4682                 Parse::RecDescent::_trace(q{>>Matched production: [ranking_function]<<},
4683                                           Parse::RecDescent::_tracefirst($text),
4684                                           q{OLAP_function},
4685                                           $tracelevel)
4686                                                 if defined $::RD_TRACE;
4687                 $_matched = 1;
4688                 last;
4689         }
4690
4691
4692         while (!$_matched && !$commit)
4693         {
4694                 
4695                 Parse::RecDescent::_trace(q{Trying production: [numbering_function]},
4696                                           Parse::RecDescent::_tracefirst($_[1]),
4697                                           q{OLAP_function},
4698                                           $tracelevel)
4699                                                 if defined $::RD_TRACE;
4700                 my $thisprod = $thisrule->{"prods"}[1];
4701                 $text = $_[1];
4702                 my $_savetext;
4703                 @item = (q{OLAP_function});
4704                 %item = (__RULE__ => q{OLAP_function});
4705                 my $repcount = 0;
4706
4707
4708                 Parse::RecDescent::_trace(q{Trying subrule: [numbering_function]},
4709                                   Parse::RecDescent::_tracefirst($text),
4710                                   q{OLAP_function},
4711                                   $tracelevel)
4712                                         if defined $::RD_TRACE;
4713                 if (1) { no strict qw{refs};
4714                 $expectation->is(q{})->at($text);
4715                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numbering_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
4716                 {
4717                         
4718                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [numbering_function]>>},
4719                                                   Parse::RecDescent::_tracefirst($text),
4720                                                   q{OLAP_function},
4721                                                   $tracelevel)
4722                                                         if defined $::RD_TRACE;
4723                         $expectation->failed();
4724                         last;
4725                 }
4726                 Parse::RecDescent::_trace(q{>>Matched subrule: [numbering_function]<< (return value: [}
4727                                         . $_tok . q{]},
4728                                           
4729                                           Parse::RecDescent::_tracefirst($text),
4730                                           q{OLAP_function},
4731                                           $tracelevel)
4732                                                 if defined $::RD_TRACE;
4733                 $item{q{numbering_function}} = $_tok;
4734                 push @item, $_tok;
4735                 
4736                 }
4737
4738
4739                 Parse::RecDescent::_trace(q{>>Matched production: [numbering_function]<<},
4740                                           Parse::RecDescent::_tracefirst($text),
4741                                           q{OLAP_function},
4742                                           $tracelevel)
4743                                                 if defined $::RD_TRACE;
4744                 $_matched = 1;
4745                 last;
4746         }
4747
4748
4749         while (!$_matched && !$commit)
4750         {
4751                 
4752                 Parse::RecDescent::_trace(q{Trying production: [aggregation_function]},
4753                                           Parse::RecDescent::_tracefirst($_[1]),
4754                                           q{OLAP_function},
4755                                           $tracelevel)
4756                                                 if defined $::RD_TRACE;
4757                 my $thisprod = $thisrule->{"prods"}[2];
4758                 $text = $_[1];
4759                 my $_savetext;
4760                 @item = (q{OLAP_function});
4761                 %item = (__RULE__ => q{OLAP_function});
4762                 my $repcount = 0;
4763
4764
4765                 Parse::RecDescent::_trace(q{Trying subrule: [aggregation_function]},
4766                                   Parse::RecDescent::_tracefirst($text),
4767                                   q{OLAP_function},
4768                                   $tracelevel)
4769                                         if defined $::RD_TRACE;
4770                 if (1) { no strict qw{refs};
4771                 $expectation->is(q{})->at($text);
4772                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::aggregation_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
4773                 {
4774                         
4775                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [aggregation_function]>>},
4776                                                   Parse::RecDescent::_tracefirst($text),
4777                                                   q{OLAP_function},
4778                                                   $tracelevel)
4779                                                         if defined $::RD_TRACE;
4780                         $expectation->failed();
4781                         last;
4782                 }
4783                 Parse::RecDescent::_trace(q{>>Matched subrule: [aggregation_function]<< (return value: [}
4784                                         . $_tok . q{]},
4785                                           
4786                                           Parse::RecDescent::_tracefirst($text),
4787                                           q{OLAP_function},
4788                                           $tracelevel)
4789                                                 if defined $::RD_TRACE;
4790                 $item{q{aggregation_function}} = $_tok;
4791                 push @item, $_tok;
4792                 
4793                 }
4794
4795
4796                 Parse::RecDescent::_trace(q{>>Matched production: [aggregation_function]<<},
4797                                           Parse::RecDescent::_tracefirst($text),
4798                                           q{OLAP_function},
4799                                           $tracelevel)
4800                                                 if defined $::RD_TRACE;
4801                 $_matched = 1;
4802                 last;
4803         }
4804
4805
4806         unless ( $_matched || defined($return) || defined($score) )
4807         {
4808                 
4809
4810                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
4811                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
4812                                          Parse::RecDescent::_tracefirst($_[1]),
4813                                          q{OLAP_function},
4814                                          $tracelevel)
4815                                         if defined $::RD_TRACE;
4816                 return undef;
4817         }
4818         if (!defined($return) && defined($score))
4819         {
4820                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4821                                           q{OLAP_function},
4822                                           $tracelevel)
4823                                                 if defined $::RD_TRACE;
4824                 $return = $score_return;
4825         }
4826         splice @{$thisparser->{errors}}, $err_at;
4827         $return = $item[$#item] unless defined $return;
4828         if (defined $::RD_TRACE)
4829         {
4830                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4831                                           $return . q{])}, "",
4832                                           q{OLAP_function},
4833                                           $tracelevel);
4834                 Parse::RecDescent::_trace(q{(consumed: [} .
4835                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
4836                                           Parse::RecDescent::_tracefirst($text),
4837                                           , q{OLAP_function},
4838                                           $tracelevel)
4839         }
4840         $_[1] = $text;
4841         return $return;
4842 }
4843
4844 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4845 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_30_of_rule_sysibm_function
4846 {
4847         my $thisparser = $_[0];
4848         use vars q{$tracelevel};
4849         local $tracelevel = ($tracelevel||0)+1;
4850         $ERRORS = 0;
4851         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_30_of_rule_sysibm_function"};
4852         
4853         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_30_of_rule_sysibm_function]},
4854                                   Parse::RecDescent::_tracefirst($_[1]),
4855                                   q{_alternation_1_of_production_30_of_rule_sysibm_function},
4856                                   $tracelevel)
4857                                         if defined $::RD_TRACE;
4858
4859         
4860         my $err_at = @{$thisparser->{errors}};
4861
4862         my $score;
4863         my $score_return;
4864         my $_tok;
4865         my $return = undef;
4866         my $_matched=0;
4867         my $commit=0;
4868         my @item = ();
4869         my %item = ();
4870         my $repeating =  defined($_[2]) && $_[2];
4871         my $_noactions = defined($_[3]) && $_[3];
4872         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
4873         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
4874         my $text;
4875         my $lastsep="";
4876         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4877         $expectation->at($_[1]);
4878         
4879         my $thisline;
4880         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4881
4882         
4883
4884         while (!$_matched && !$commit)
4885         {
4886                 
4887                 Parse::RecDescent::_trace(q{Trying production: [/DOUBLE/i]},
4888                                           Parse::RecDescent::_tracefirst($_[1]),
4889                                           q{_alternation_1_of_production_30_of_rule_sysibm_function},
4890                                           $tracelevel)
4891                                                 if defined $::RD_TRACE;
4892                 my $thisprod = $thisrule->{"prods"}[0];
4893                 $text = $_[1];
4894                 my $_savetext;
4895                 @item = (q{_alternation_1_of_production_30_of_rule_sysibm_function});
4896                 %item = (__RULE__ => q{_alternation_1_of_production_30_of_rule_sysibm_function});
4897                 my $repcount = 0;
4898
4899
4900                 Parse::RecDescent::_trace(q{Trying terminal: [/DOUBLE/i]}, Parse::RecDescent::_tracefirst($text),
4901                                           q{_alternation_1_of_production_30_of_rule_sysibm_function},
4902                                           $tracelevel)
4903                                                 if defined $::RD_TRACE;
4904                 $lastsep = "";
4905                 $expectation->is(q{})->at($text);
4906                 
4907
4908                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DOUBLE)//i)
4909                 {
4910                         
4911                         $expectation->failed();
4912                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4913                                                   Parse::RecDescent::_tracefirst($text))
4914                                         if defined $::RD_TRACE;
4915
4916                         last;
4917                 }
4918                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4919                                                 . $& . q{])},
4920                                                   Parse::RecDescent::_tracefirst($text))
4921                                         if defined $::RD_TRACE;
4922                 push @item, $item{__PATTERN1__}=$&;
4923                 
4924
4925
4926                 Parse::RecDescent::_trace(q{>>Matched production: [/DOUBLE/i]<<},
4927                                           Parse::RecDescent::_tracefirst($text),
4928                                           q{_alternation_1_of_production_30_of_rule_sysibm_function},
4929                                           $tracelevel)
4930                                                 if defined $::RD_TRACE;
4931                 $_matched = 1;
4932                 last;
4933         }
4934
4935
4936         while (!$_matched && !$commit)
4937         {
4938                 
4939                 Parse::RecDescent::_trace(q{Trying production: [/DOUBLE_PRECISION/i]},
4940                                           Parse::RecDescent::_tracefirst($_[1]),
4941                                           q{_alternation_1_of_production_30_of_rule_sysibm_function},
4942                                           $tracelevel)
4943                                                 if defined $::RD_TRACE;
4944                 my $thisprod = $thisrule->{"prods"}[1];
4945                 $text = $_[1];
4946                 my $_savetext;
4947                 @item = (q{_alternation_1_of_production_30_of_rule_sysibm_function});
4948                 %item = (__RULE__ => q{_alternation_1_of_production_30_of_rule_sysibm_function});
4949                 my $repcount = 0;
4950
4951
4952                 Parse::RecDescent::_trace(q{Trying terminal: [/DOUBLE_PRECISION/i]}, Parse::RecDescent::_tracefirst($text),
4953                                           q{_alternation_1_of_production_30_of_rule_sysibm_function},
4954                                           $tracelevel)
4955                                                 if defined $::RD_TRACE;
4956                 $lastsep = "";
4957                 $expectation->is(q{})->at($text);
4958                 
4959
4960                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DOUBLE_PRECISION)//i)
4961                 {
4962                         
4963                         $expectation->failed();
4964                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4965                                                   Parse::RecDescent::_tracefirst($text))
4966                                         if defined $::RD_TRACE;
4967
4968                         last;
4969                 }
4970                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4971                                                 . $& . q{])},
4972                                                   Parse::RecDescent::_tracefirst($text))
4973                                         if defined $::RD_TRACE;
4974                 push @item, $item{__PATTERN1__}=$&;
4975                 
4976
4977
4978                 Parse::RecDescent::_trace(q{>>Matched production: [/DOUBLE_PRECISION/i]<<},
4979                                           Parse::RecDescent::_tracefirst($text),
4980                                           q{_alternation_1_of_production_30_of_rule_sysibm_function},
4981                                           $tracelevel)
4982                                                 if defined $::RD_TRACE;
4983                 $_matched = 1;
4984                 last;
4985         }
4986
4987
4988         unless ( $_matched || defined($return) || defined($score) )
4989         {
4990                 
4991
4992                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
4993                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
4994                                          Parse::RecDescent::_tracefirst($_[1]),
4995                                          q{_alternation_1_of_production_30_of_rule_sysibm_function},
4996                                          $tracelevel)
4997                                         if defined $::RD_TRACE;
4998                 return undef;
4999         }
5000         if (!defined($return) && defined($score))
5001         {
5002                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5003                                           q{_alternation_1_of_production_30_of_rule_sysibm_function},
5004                                           $tracelevel)
5005                                                 if defined $::RD_TRACE;
5006                 $return = $score_return;
5007         }
5008         splice @{$thisparser->{errors}}, $err_at;
5009         $return = $item[$#item] unless defined $return;
5010         if (defined $::RD_TRACE)
5011         {
5012                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5013                                           $return . q{])}, "",
5014                                           q{_alternation_1_of_production_30_of_rule_sysibm_function},
5015                                           $tracelevel);
5016                 Parse::RecDescent::_trace(q{(consumed: [} .
5017                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
5018                                           Parse::RecDescent::_tracefirst($text),
5019                                           , q{_alternation_1_of_production_30_of_rule_sysibm_function},
5020                                           $tracelevel)
5021         }
5022         $_[1] = $text;
5023         return $return;
5024 }
5025
5026 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5027 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::FULL
5028 {
5029         my $thisparser = $_[0];
5030         use vars q{$tracelevel};
5031         local $tracelevel = ($tracelevel||0)+1;
5032         $ERRORS = 0;
5033         my $thisrule = $thisparser->{"rules"}{"FULL"};
5034         
5035         Parse::RecDescent::_trace(q{Trying rule: [FULL]},
5036                                   Parse::RecDescent::_tracefirst($_[1]),
5037                                   q{FULL},
5038                                   $tracelevel)
5039                                         if defined $::RD_TRACE;
5040
5041         
5042         my $err_at = @{$thisparser->{errors}};
5043
5044         my $score;
5045         my $score_return;
5046         my $_tok;
5047         my $return = undef;
5048         my $_matched=0;
5049         my $commit=0;
5050         my @item = ();
5051         my %item = ();
5052         my $repeating =  defined($_[2]) && $_[2];
5053         my $_noactions = defined($_[3]) && $_[3];
5054         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
5055         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
5056         my $text;
5057         my $lastsep="";
5058         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5059         $expectation->at($_[1]);
5060         
5061         my $thisline;
5062         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5063
5064         
5065
5066         while (!$_matched && !$commit)
5067         {
5068                 
5069                 Parse::RecDescent::_trace(q{Trying production: [/full/i]},
5070                                           Parse::RecDescent::_tracefirst($_[1]),
5071                                           q{FULL},
5072                                           $tracelevel)
5073                                                 if defined $::RD_TRACE;
5074                 my $thisprod = $thisrule->{"prods"}[0];
5075                 $text = $_[1];
5076                 my $_savetext;
5077                 @item = (q{FULL});
5078                 %item = (__RULE__ => q{FULL});
5079                 my $repcount = 0;
5080
5081
5082                 Parse::RecDescent::_trace(q{Trying terminal: [/full/i]}, Parse::RecDescent::_tracefirst($text),
5083                                           q{FULL},
5084                                           $tracelevel)
5085                                                 if defined $::RD_TRACE;
5086                 $lastsep = "";
5087                 $expectation->is(q{})->at($text);
5088                 
5089
5090                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:full)//i)
5091                 {
5092                         
5093                         $expectation->failed();
5094                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5095                                                   Parse::RecDescent::_tracefirst($text))
5096                                         if defined $::RD_TRACE;
5097
5098                         last;
5099                 }
5100                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5101                                                 . $& . q{])},
5102                                                   Parse::RecDescent::_tracefirst($text))
5103                                         if defined $::RD_TRACE;
5104                 push @item, $item{__PATTERN1__}=$&;
5105                 
5106
5107
5108                 Parse::RecDescent::_trace(q{>>Matched production: [/full/i]<<},
5109                                           Parse::RecDescent::_tracefirst($text),
5110                                           q{FULL},
5111                                           $tracelevel)
5112                                                 if defined $::RD_TRACE;
5113                 $_matched = 1;
5114                 last;
5115         }
5116
5117
5118         unless ( $_matched || defined($return) || defined($score) )
5119         {
5120                 
5121
5122                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
5123                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
5124                                          Parse::RecDescent::_tracefirst($_[1]),
5125                                          q{FULL},
5126                                          $tracelevel)
5127                                         if defined $::RD_TRACE;
5128                 return undef;
5129         }
5130         if (!defined($return) && defined($score))
5131         {
5132                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5133                                           q{FULL},
5134                                           $tracelevel)
5135                                                 if defined $::RD_TRACE;
5136                 $return = $score_return;
5137         }
5138         splice @{$thisparser->{errors}}, $err_at;
5139         $return = $item[$#item] unless defined $return;
5140         if (defined $::RD_TRACE)
5141         {
5142                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5143                                           $return . q{])}, "",
5144                                           q{FULL},
5145                                           $tracelevel);
5146                 Parse::RecDescent::_trace(q{(consumed: [} .
5147                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
5148                                           Parse::RecDescent::_tracefirst($text),
5149                                           , q{FULL},
5150                                           $tracelevel)
5151         }
5152         $_[1] = $text;
5153         return $return;
5154 }
5155
5156 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5157 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cast_specification
5158 {
5159         my $thisparser = $_[0];
5160         use vars q{$tracelevel};
5161         local $tracelevel = ($tracelevel||0)+1;
5162         $ERRORS = 0;
5163         my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_cast_specification"};
5164         
5165         Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_cast_specification]},
5166                                   Parse::RecDescent::_tracefirst($_[1]),
5167                                   q{_alternation_2_of_production_1_of_rule_cast_specification},
5168                                   $tracelevel)
5169                                         if defined $::RD_TRACE;
5170
5171         
5172         my $err_at = @{$thisparser->{errors}};
5173
5174         my $score;
5175         my $score_return;
5176         my $_tok;
5177         my $return = undef;
5178         my $_matched=0;
5179         my $commit=0;
5180         my @item = ();
5181         my %item = ();
5182         my $repeating =  defined($_[2]) && $_[2];
5183         my $_noactions = defined($_[3]) && $_[3];
5184         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
5185         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
5186         my $text;
5187         my $lastsep="";
5188         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5189         $expectation->at($_[1]);
5190         
5191         my $thisline;
5192         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5193
5194         
5195
5196         while (!$_matched && !$commit)
5197         {
5198                 
5199                 Parse::RecDescent::_trace(q{Trying production: [/SCOPE/ typed_table_name, or typed_view_name]},
5200                                           Parse::RecDescent::_tracefirst($_[1]),
5201                                           q{_alternation_2_of_production_1_of_rule_cast_specification},
5202                                           $tracelevel)
5203                                                 if defined $::RD_TRACE;
5204                 my $thisprod = $thisrule->{"prods"}[0];
5205                 $text = $_[1];
5206                 my $_savetext;
5207                 @item = (q{_alternation_2_of_production_1_of_rule_cast_specification});
5208                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cast_specification});
5209                 my $repcount = 0;
5210
5211
5212                 Parse::RecDescent::_trace(q{Trying terminal: [/SCOPE/]}, Parse::RecDescent::_tracefirst($text),
5213                                           q{_alternation_2_of_production_1_of_rule_cast_specification},
5214                                           $tracelevel)
5215                                                 if defined $::RD_TRACE;
5216                 $lastsep = "";
5217                 $expectation->is(q{})->at($text);
5218                 
5219
5220                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SCOPE)//)
5221                 {
5222                         
5223                         $expectation->failed();
5224                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5225                                                   Parse::RecDescent::_tracefirst($text))
5226                                         if defined $::RD_TRACE;
5227
5228                         last;
5229                 }
5230                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5231                                                 . $& . q{])},
5232                                                   Parse::RecDescent::_tracefirst($text))
5233                                         if defined $::RD_TRACE;
5234                 push @item, $item{__PATTERN1__}=$&;
5235                 
5236
5237                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]},
5238                                   Parse::RecDescent::_tracefirst($text),
5239                                   q{_alternation_2_of_production_1_of_rule_cast_specification},
5240                                   $tracelevel)
5241                                         if defined $::RD_TRACE;
5242                 if (1) { no strict qw{refs};
5243                 $expectation->is(q{typed_table_name, or typed_view_name})->at($text);
5244                 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 })))
5245                 {
5246                         
5247                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]>>},
5248                                                   Parse::RecDescent::_tracefirst($text),
5249                                                   q{_alternation_2_of_production_1_of_rule_cast_specification},
5250                                                   $tracelevel)
5251                                                         if defined $::RD_TRACE;
5252                         $expectation->failed();
5253                         last;
5254                 }
5255                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]<< (return value: [}
5256                                         . $_tok . q{]},
5257                                           
5258                                           Parse::RecDescent::_tracefirst($text),
5259                                           q{_alternation_2_of_production_1_of_rule_cast_specification},
5260                                           $tracelevel)
5261                                                 if defined $::RD_TRACE;
5262                 $item{q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification}} = $_tok;
5263                 push @item, $_tok;
5264                 
5265                 }
5266
5267
5268                 Parse::RecDescent::_trace(q{>>Matched production: [/SCOPE/ typed_table_name, or typed_view_name]<<},
5269                                           Parse::RecDescent::_tracefirst($text),
5270                                           q{_alternation_2_of_production_1_of_rule_cast_specification},
5271                                           $tracelevel)
5272                                                 if defined $::RD_TRACE;
5273                 $_matched = 1;
5274                 last;
5275         }
5276
5277
5278         unless ( $_matched || defined($return) || defined($score) )
5279         {
5280                 
5281
5282                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
5283                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
5284                                          Parse::RecDescent::_tracefirst($_[1]),
5285                                          q{_alternation_2_of_production_1_of_rule_cast_specification},
5286                                          $tracelevel)
5287                                         if defined $::RD_TRACE;
5288                 return undef;
5289         }
5290         if (!defined($return) && defined($score))
5291         {
5292                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5293                                           q{_alternation_2_of_production_1_of_rule_cast_specification},
5294                                           $tracelevel)
5295                                                 if defined $::RD_TRACE;
5296                 $return = $score_return;
5297         }
5298         splice @{$thisparser->{errors}}, $err_at;
5299         $return = $item[$#item] unless defined $return;
5300         if (defined $::RD_TRACE)
5301         {
5302                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5303                                           $return . q{])}, "",
5304                                           q{_alternation_2_of_production_1_of_rule_cast_specification},
5305                                           $tracelevel);
5306                 Parse::RecDescent::_trace(q{(consumed: [} .
5307                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
5308                                           Parse::RecDescent::_tracefirst($text),
5309                                           , q{_alternation_2_of_production_1_of_rule_cast_specification},
5310                                           $tracelevel)
5311         }
5312         $_[1] = $text;
5313         return $return;
5314 }
5315
5316 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5317 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::case_expression
5318 {
5319         my $thisparser = $_[0];
5320         use vars q{$tracelevel};
5321         local $tracelevel = ($tracelevel||0)+1;
5322         $ERRORS = 0;
5323         my $thisrule = $thisparser->{"rules"}{"case_expression"};
5324         
5325         Parse::RecDescent::_trace(q{Trying rule: [case_expression]},
5326                                   Parse::RecDescent::_tracefirst($_[1]),
5327                                   q{case_expression},
5328                                   $tracelevel)
5329                                         if defined $::RD_TRACE;
5330
5331         
5332         my $err_at = @{$thisparser->{errors}};
5333
5334         my $score;
5335         my $score_return;
5336         my $_tok;
5337         my $return = undef;
5338         my $_matched=0;
5339         my $commit=0;
5340         my @item = ();
5341         my %item = ();
5342         my $repeating =  defined($_[2]) && $_[2];
5343         my $_noactions = defined($_[3]) && $_[3];
5344         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
5345         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
5346         my $text;
5347         my $lastsep="";
5348         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5349         $expectation->at($_[1]);
5350         
5351         my $thisline;
5352         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5353
5354         
5355
5356         while (!$_matched && !$commit)
5357         {
5358                 
5359                 Parse::RecDescent::_trace(q{Trying production: [/CASE/i searched_when_clause, or simple_when_clause /ELSE\\s+NULL/i, or /ELSE/i /END/i]},
5360                                           Parse::RecDescent::_tracefirst($_[1]),
5361                                           q{case_expression},
5362                                           $tracelevel)
5363                                                 if defined $::RD_TRACE;
5364                 my $thisprod = $thisrule->{"prods"}[0];
5365                 $text = $_[1];
5366                 my $_savetext;
5367                 @item = (q{case_expression});
5368                 %item = (__RULE__ => q{case_expression});
5369                 my $repcount = 0;
5370
5371
5372                 Parse::RecDescent::_trace(q{Trying terminal: [/CASE/i]}, Parse::RecDescent::_tracefirst($text),
5373                                           q{case_expression},
5374                                           $tracelevel)
5375                                                 if defined $::RD_TRACE;
5376                 $lastsep = "";
5377                 $expectation->is(q{})->at($text);
5378                 
5379
5380                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CASE)//i)
5381                 {
5382                         
5383                         $expectation->failed();
5384                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5385                                                   Parse::RecDescent::_tracefirst($text))
5386                                         if defined $::RD_TRACE;
5387
5388                         last;
5389                 }
5390                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5391                                                 . $& . q{])},
5392                                                   Parse::RecDescent::_tracefirst($text))
5393                                         if defined $::RD_TRACE;
5394                 push @item, $item{__PATTERN1__}=$&;
5395                 
5396
5397                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_case_expression]},
5398                                   Parse::RecDescent::_tracefirst($text),
5399                                   q{case_expression},
5400                                   $tracelevel)
5401                                         if defined $::RD_TRACE;
5402                 if (1) { no strict qw{refs};
5403                 $expectation->is(q{searched_when_clause, or simple_when_clause})->at($text);
5404                 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 })))
5405                 {
5406                         
5407                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_case_expression]>>},
5408                                                   Parse::RecDescent::_tracefirst($text),
5409                                                   q{case_expression},
5410                                                   $tracelevel)
5411                                                         if defined $::RD_TRACE;
5412                         $expectation->failed();
5413                         last;
5414                 }
5415                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_case_expression]<< (return value: [}
5416                                         . $_tok . q{]},
5417                                           
5418                                           Parse::RecDescent::_tracefirst($text),
5419                                           q{case_expression},
5420                                           $tracelevel)
5421                                                 if defined $::RD_TRACE;
5422                 $item{q{_alternation_1_of_production_1_of_rule_case_expression}} = $_tok;
5423                 push @item, $_tok;
5424                 
5425                 }
5426
5427                 Parse::RecDescent::_trace(q{Trying repeated subrule: [/ELSE\\s+NULL/i, or /ELSE/i]},
5428                                   Parse::RecDescent::_tracefirst($text),
5429                                   q{case_expression},
5430                                   $tracelevel)
5431                                         if defined $::RD_TRACE;
5432                 $expectation->is(q{/ELSE\\s+NULL/i, or /ELSE/i})->at($text);
5433                 
5434                 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))) 
5435                 {
5436                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/ELSE\\s+NULL/i, or /ELSE/i]>>},
5437                                                   Parse::RecDescent::_tracefirst($text),
5438                                                   q{case_expression},
5439                                                   $tracelevel)
5440                                                         if defined $::RD_TRACE;
5441                         last;
5442                 }
5443                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_case_expression]<< (}
5444                                         . @$_tok . q{ times)},
5445                                           
5446                                           Parse::RecDescent::_tracefirst($text),
5447                                           q{case_expression},
5448                                           $tracelevel)
5449                                                 if defined $::RD_TRACE;
5450                 $item{q{_alternation_2_of_production_1_of_rule_case_expression(?)}} = $_tok;
5451                 push @item, $_tok;
5452                 
5453
5454
5455                 Parse::RecDescent::_trace(q{Trying terminal: [/END/i]}, Parse::RecDescent::_tracefirst($text),
5456                                           q{case_expression},
5457                                           $tracelevel)
5458                                                 if defined $::RD_TRACE;
5459                 $lastsep = "";
5460                 $expectation->is(q{/END/i})->at($text);
5461                 
5462
5463                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:END)//i)
5464                 {
5465                         
5466                         $expectation->failed();
5467                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5468                                                   Parse::RecDescent::_tracefirst($text))
5469                                         if defined $::RD_TRACE;
5470
5471                         last;
5472                 }
5473                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5474                                                 . $& . q{])},
5475                                                   Parse::RecDescent::_tracefirst($text))
5476                                         if defined $::RD_TRACE;
5477                 push @item, $item{__PATTERN2__}=$&;
5478                 
5479
5480
5481                 Parse::RecDescent::_trace(q{>>Matched production: [/CASE/i searched_when_clause, or simple_when_clause /ELSE\\s+NULL/i, or /ELSE/i /END/i]<<},
5482                                           Parse::RecDescent::_tracefirst($text),
5483                                           q{case_expression},
5484                                           $tracelevel)
5485                                                 if defined $::RD_TRACE;
5486                 $_matched = 1;
5487                 last;
5488         }
5489
5490
5491         unless ( $_matched || defined($return) || defined($score) )
5492         {
5493                 
5494
5495                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
5496                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
5497                                          Parse::RecDescent::_tracefirst($_[1]),
5498                                          q{case_expression},
5499                                          $tracelevel)
5500                                         if defined $::RD_TRACE;
5501                 return undef;
5502         }
5503         if (!defined($return) && defined($score))
5504         {
5505                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5506                                           q{case_expression},
5507                                           $tracelevel)
5508                                                 if defined $::RD_TRACE;
5509                 $return = $score_return;
5510         }
5511         splice @{$thisparser->{errors}}, $err_at;
5512         $return = $item[$#item] unless defined $return;
5513         if (defined $::RD_TRACE)
5514         {
5515                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5516                                           $return . q{])}, "",
5517                                           q{case_expression},
5518                                           $tracelevel);
5519                 Parse::RecDescent::_trace(q{(consumed: [} .
5520                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
5521                                           Parse::RecDescent::_tracefirst($text),
5522                                           , q{case_expression},
5523                                           $tracelevel)
5524         }
5525         $_[1] = $text;
5526         return $return;
5527 }
5528
5529 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5530 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::operator
5531 {
5532         my $thisparser = $_[0];
5533         use vars q{$tracelevel};
5534         local $tracelevel = ($tracelevel||0)+1;
5535         $ERRORS = 0;
5536         my $thisrule = $thisparser->{"rules"}{"operator"};
5537         
5538         Parse::RecDescent::_trace(q{Trying rule: [operator]},
5539                                   Parse::RecDescent::_tracefirst($_[1]),
5540                                   q{operator},
5541                                   $tracelevel)
5542                                         if defined $::RD_TRACE;
5543
5544         
5545         my $err_at = @{$thisparser->{errors}};
5546
5547         my $score;
5548         my $score_return;
5549         my $_tok;
5550         my $return = undef;
5551         my $_matched=0;
5552         my $commit=0;
5553         my @item = ();
5554         my %item = ();
5555         my $repeating =  defined($_[2]) && $_[2];
5556         my $_noactions = defined($_[3]) && $_[3];
5557         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
5558         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
5559         my $text;
5560         my $lastsep="";
5561         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5562         $expectation->at($_[1]);
5563         
5564         my $thisline;
5565         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5566
5567         
5568
5569         while (!$_matched && !$commit)
5570         {
5571                 
5572                 Parse::RecDescent::_trace(q{Trying production: [/CONCAT/i, or '||']},
5573                                           Parse::RecDescent::_tracefirst($_[1]),
5574                                           q{operator},
5575                                           $tracelevel)
5576                                                 if defined $::RD_TRACE;
5577                 my $thisprod = $thisrule->{"prods"}[0];
5578                 $text = $_[1];
5579                 my $_savetext;
5580                 @item = (q{operator});
5581                 %item = (__RULE__ => q{operator});
5582                 my $repcount = 0;
5583
5584
5585                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_operator]},
5586                                   Parse::RecDescent::_tracefirst($text),
5587                                   q{operator},
5588                                   $tracelevel)
5589                                         if defined $::RD_TRACE;
5590                 if (1) { no strict qw{refs};
5591                 $expectation->is(q{})->at($text);
5592                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_operator($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
5593                 {
5594                         
5595                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_operator]>>},
5596                                                   Parse::RecDescent::_tracefirst($text),
5597                                                   q{operator},
5598                                                   $tracelevel)
5599                                                         if defined $::RD_TRACE;
5600                         $expectation->failed();
5601                         last;
5602                 }
5603                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_operator]<< (return value: [}
5604                                         . $_tok . q{]},
5605                                           
5606                                           Parse::RecDescent::_tracefirst($text),
5607                                           q{operator},
5608                                           $tracelevel)
5609                                                 if defined $::RD_TRACE;
5610                 $item{q{_alternation_1_of_production_1_of_rule_operator}} = $_tok;
5611                 push @item, $_tok;
5612                 
5613                 }
5614
5615
5616                 Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/i, or '||']<<},
5617                                           Parse::RecDescent::_tracefirst($text),
5618                                           q{operator},
5619                                           $tracelevel)
5620                                                 if defined $::RD_TRACE;
5621                 $_matched = 1;
5622                 last;
5623         }
5624
5625
5626         while (!$_matched && !$commit)
5627         {
5628                 
5629                 Parse::RecDescent::_trace(q{Trying production: ['/']},
5630                                           Parse::RecDescent::_tracefirst($_[1]),
5631                                           q{operator},
5632                                           $tracelevel)
5633                                                 if defined $::RD_TRACE;
5634                 my $thisprod = $thisrule->{"prods"}[1];
5635                 $text = $_[1];
5636                 my $_savetext;
5637                 @item = (q{operator});
5638                 %item = (__RULE__ => q{operator});
5639                 my $repcount = 0;
5640
5641
5642                 Parse::RecDescent::_trace(q{Trying terminal: ['/']},
5643                                           Parse::RecDescent::_tracefirst($text),
5644                                           q{operator},
5645                                           $tracelevel)
5646                                                 if defined $::RD_TRACE;
5647                 $lastsep = "";
5648                 $expectation->is(q{})->at($text);
5649                 
5650
5651                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\///)
5652                 {
5653                         
5654                         $expectation->failed();
5655                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
5656                                                   Parse::RecDescent::_tracefirst($text))
5657                                                         if defined $::RD_TRACE;
5658                         last;
5659                 }
5660                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5661                                                 . $& . q{])},
5662                                                   Parse::RecDescent::_tracefirst($text))
5663                                                         if defined $::RD_TRACE;
5664                 push @item, $item{__STRING1__}=$&;
5665                 
5666
5667
5668                 Parse::RecDescent::_trace(q{>>Matched production: ['/']<<},
5669                                           Parse::RecDescent::_tracefirst($text),
5670                                           q{operator},
5671                                           $tracelevel)
5672                                                 if defined $::RD_TRACE;
5673                 $_matched = 1;
5674                 last;
5675         }
5676
5677
5678         while (!$_matched && !$commit)
5679         {
5680                 
5681                 Parse::RecDescent::_trace(q{Trying production: ['*']},
5682                                           Parse::RecDescent::_tracefirst($_[1]),
5683                                           q{operator},
5684                                           $tracelevel)
5685                                                 if defined $::RD_TRACE;
5686                 my $thisprod = $thisrule->{"prods"}[2];
5687                 $text = $_[1];
5688                 my $_savetext;
5689                 @item = (q{operator});
5690                 %item = (__RULE__ => q{operator});
5691                 my $repcount = 0;
5692
5693
5694                 Parse::RecDescent::_trace(q{Trying terminal: ['*']},
5695                                           Parse::RecDescent::_tracefirst($text),
5696                                           q{operator},
5697                                           $tracelevel)
5698                                                 if defined $::RD_TRACE;
5699                 $lastsep = "";
5700                 $expectation->is(q{})->at($text);
5701                 
5702
5703                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\*//)
5704                 {
5705                         
5706                         $expectation->failed();
5707                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
5708                                                   Parse::RecDescent::_tracefirst($text))
5709                                                         if defined $::RD_TRACE;
5710                         last;
5711                 }
5712                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5713                                                 . $& . q{])},
5714                                                   Parse::RecDescent::_tracefirst($text))
5715                                                         if defined $::RD_TRACE;
5716                 push @item, $item{__STRING1__}=$&;
5717                 
5718
5719
5720                 Parse::RecDescent::_trace(q{>>Matched production: ['*']<<},
5721                                           Parse::RecDescent::_tracefirst($text),
5722                                           q{operator},
5723                                           $tracelevel)
5724                                                 if defined $::RD_TRACE;
5725                 $_matched = 1;
5726                 last;
5727         }
5728
5729
5730         while (!$_matched && !$commit)
5731         {
5732                 
5733                 Parse::RecDescent::_trace(q{Trying production: ['+']},
5734                                           Parse::RecDescent::_tracefirst($_[1]),
5735                                           q{operator},
5736                                           $tracelevel)
5737                                                 if defined $::RD_TRACE;
5738                 my $thisprod = $thisrule->{"prods"}[3];
5739                 $text = $_[1];
5740                 my $_savetext;
5741                 @item = (q{operator});
5742                 %item = (__RULE__ => q{operator});
5743                 my $repcount = 0;
5744
5745
5746                 Parse::RecDescent::_trace(q{Trying terminal: ['+']},
5747                                           Parse::RecDescent::_tracefirst($text),
5748                                           q{operator},
5749                                           $tracelevel)
5750                                                 if defined $::RD_TRACE;
5751                 $lastsep = "";
5752                 $expectation->is(q{})->at($text);
5753                 
5754
5755                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\+//)
5756                 {
5757                         
5758                         $expectation->failed();
5759                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
5760                                                   Parse::RecDescent::_tracefirst($text))
5761                                                         if defined $::RD_TRACE;
5762                         last;
5763                 }
5764                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5765                                                 . $& . q{])},
5766                                                   Parse::RecDescent::_tracefirst($text))
5767                                                         if defined $::RD_TRACE;
5768                 push @item, $item{__STRING1__}=$&;
5769                 
5770
5771
5772                 Parse::RecDescent::_trace(q{>>Matched production: ['+']<<},
5773                                           Parse::RecDescent::_tracefirst($text),
5774                                           q{operator},
5775                                           $tracelevel)
5776                                                 if defined $::RD_TRACE;
5777                 $_matched = 1;
5778                 last;
5779         }
5780
5781
5782         while (!$_matched && !$commit)
5783         {
5784                 
5785                 Parse::RecDescent::_trace(q{Trying production: ['-']},
5786                                           Parse::RecDescent::_tracefirst($_[1]),
5787                                           q{operator},
5788                                           $tracelevel)
5789                                                 if defined $::RD_TRACE;
5790                 my $thisprod = $thisrule->{"prods"}[4];
5791                 $text = $_[1];
5792                 my $_savetext;
5793                 @item = (q{operator});
5794                 %item = (__RULE__ => q{operator});
5795                 my $repcount = 0;
5796
5797
5798                 Parse::RecDescent::_trace(q{Trying terminal: ['-']},
5799                                           Parse::RecDescent::_tracefirst($text),
5800                                           q{operator},
5801                                           $tracelevel)
5802                                                 if defined $::RD_TRACE;
5803                 $lastsep = "";
5804                 $expectation->is(q{})->at($text);
5805                 
5806
5807                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\-//)
5808                 {
5809                         
5810                         $expectation->failed();
5811                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
5812                                                   Parse::RecDescent::_tracefirst($text))
5813                                                         if defined $::RD_TRACE;
5814                         last;
5815                 }
5816                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5817                                                 . $& . q{])},
5818                                                   Parse::RecDescent::_tracefirst($text))
5819                                                         if defined $::RD_TRACE;
5820                 push @item, $item{__STRING1__}=$&;
5821                 
5822
5823
5824                 Parse::RecDescent::_trace(q{>>Matched production: ['-']<<},
5825                                           Parse::RecDescent::_tracefirst($text),
5826                                           q{operator},
5827                                           $tracelevel)
5828                                                 if defined $::RD_TRACE;
5829                 $_matched = 1;
5830                 last;
5831         }
5832
5833
5834         unless ( $_matched || defined($return) || defined($score) )
5835         {
5836                 
5837
5838                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
5839                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
5840                                          Parse::RecDescent::_tracefirst($_[1]),
5841                                          q{operator},
5842                                          $tracelevel)
5843                                         if defined $::RD_TRACE;
5844                 return undef;
5845         }
5846         if (!defined($return) && defined($score))
5847         {
5848                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5849                                           q{operator},
5850                                           $tracelevel)
5851                                                 if defined $::RD_TRACE;
5852                 $return = $score_return;
5853         }
5854         splice @{$thisparser->{errors}}, $err_at;
5855         $return = $item[$#item] unless defined $return;
5856         if (defined $::RD_TRACE)
5857         {
5858                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5859                                           $return . q{])}, "",
5860                                           q{operator},
5861                                           $tracelevel);
5862                 Parse::RecDescent::_trace(q{(consumed: [} .
5863                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
5864                                           Parse::RecDescent::_tracefirst($text),
5865                                           , q{operator},
5866                                           $tracelevel)
5867         }
5868         $_[1] = $text;
5869         return $return;
5870 }
5871
5872 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5873 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_type
5874 {
5875         my $thisparser = $_[0];
5876         use vars q{$tracelevel};
5877         local $tracelevel = ($tracelevel||0)+1;
5878         $ERRORS = 0;
5879         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_2_of_rule_type"};
5880         
5881         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_2_of_rule_type]},
5882                                   Parse::RecDescent::_tracefirst($_[1]),
5883                                   q{_alternation_1_of_production_2_of_rule_type},
5884                                   $tracelevel)
5885                                         if defined $::RD_TRACE;
5886
5887         
5888         my $err_at = @{$thisparser->{errors}};
5889
5890         my $score;
5891         my $score_return;
5892         my $_tok;
5893         my $return = undef;
5894         my $_matched=0;
5895         my $commit=0;
5896         my @item = ();
5897         my %item = ();
5898         my $repeating =  defined($_[2]) && $_[2];
5899         my $_noactions = defined($_[3]) && $_[3];
5900         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
5901         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
5902         my $text;
5903         my $lastsep="";
5904         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5905         $expectation->at($_[1]);
5906         
5907         my $thisline;
5908         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5909
5910         
5911
5912         while (!$_matched && !$commit)
5913         {
5914                 
5915                 Parse::RecDescent::_trace(q{Trying production: [/INSERT/i]},
5916                                           Parse::RecDescent::_tracefirst($_[1]),
5917                                           q{_alternation_1_of_production_2_of_rule_type},
5918                                           $tracelevel)
5919                                                 if defined $::RD_TRACE;
5920                 my $thisprod = $thisrule->{"prods"}[0];
5921                 $text = $_[1];
5922                 my $_savetext;
5923                 @item = (q{_alternation_1_of_production_2_of_rule_type});
5924                 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
5925                 my $repcount = 0;
5926
5927
5928                 Parse::RecDescent::_trace(q{Trying terminal: [/INSERT/i]}, Parse::RecDescent::_tracefirst($text),
5929                                           q{_alternation_1_of_production_2_of_rule_type},
5930                                           $tracelevel)
5931                                                 if defined $::RD_TRACE;
5932                 $lastsep = "";
5933                 $expectation->is(q{})->at($text);
5934                 
5935
5936                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:INSERT)//i)
5937                 {
5938                         
5939                         $expectation->failed();
5940                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5941                                                   Parse::RecDescent::_tracefirst($text))
5942                                         if defined $::RD_TRACE;
5943
5944                         last;
5945                 }
5946                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5947                                                 . $& . q{])},
5948                                                   Parse::RecDescent::_tracefirst($text))
5949                                         if defined $::RD_TRACE;
5950                 push @item, $item{__PATTERN1__}=$&;
5951                 
5952
5953
5954                 Parse::RecDescent::_trace(q{>>Matched production: [/INSERT/i]<<},
5955                                           Parse::RecDescent::_tracefirst($text),
5956                                           q{_alternation_1_of_production_2_of_rule_type},
5957                                           $tracelevel)
5958                                                 if defined $::RD_TRACE;
5959                 $_matched = 1;
5960                 last;
5961         }
5962
5963
5964         while (!$_matched && !$commit)
5965         {
5966                 
5967                 Parse::RecDescent::_trace(q{Trying production: [/DELETE/i]},
5968                                           Parse::RecDescent::_tracefirst($_[1]),
5969                                           q{_alternation_1_of_production_2_of_rule_type},
5970                                           $tracelevel)
5971                                                 if defined $::RD_TRACE;
5972                 my $thisprod = $thisrule->{"prods"}[1];
5973                 $text = $_[1];
5974                 my $_savetext;
5975                 @item = (q{_alternation_1_of_production_2_of_rule_type});
5976                 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
5977                 my $repcount = 0;
5978
5979
5980                 Parse::RecDescent::_trace(q{Trying terminal: [/DELETE/i]}, Parse::RecDescent::_tracefirst($text),
5981                                           q{_alternation_1_of_production_2_of_rule_type},
5982                                           $tracelevel)
5983                                                 if defined $::RD_TRACE;
5984                 $lastsep = "";
5985                 $expectation->is(q{})->at($text);
5986                 
5987
5988                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DELETE)//i)
5989                 {
5990                         
5991                         $expectation->failed();
5992                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5993                                                   Parse::RecDescent::_tracefirst($text))
5994                                         if defined $::RD_TRACE;
5995
5996                         last;
5997                 }
5998                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5999                                                 . $& . q{])},
6000                                                   Parse::RecDescent::_tracefirst($text))
6001                                         if defined $::RD_TRACE;
6002                 push @item, $item{__PATTERN1__}=$&;
6003                 
6004
6005
6006                 Parse::RecDescent::_trace(q{>>Matched production: [/DELETE/i]<<},
6007                                           Parse::RecDescent::_tracefirst($text),
6008                                           q{_alternation_1_of_production_2_of_rule_type},
6009                                           $tracelevel)
6010                                                 if defined $::RD_TRACE;
6011                 $_matched = 1;
6012                 last;
6013         }
6014
6015
6016         while (!$_matched && !$commit)
6017         {
6018                 
6019                 Parse::RecDescent::_trace(q{Trying production: [/UPDATE/i]},
6020                                           Parse::RecDescent::_tracefirst($_[1]),
6021                                           q{_alternation_1_of_production_2_of_rule_type},
6022                                           $tracelevel)
6023                                                 if defined $::RD_TRACE;
6024                 my $thisprod = $thisrule->{"prods"}[2];
6025                 $text = $_[1];
6026                 my $_savetext;
6027                 @item = (q{_alternation_1_of_production_2_of_rule_type});
6028                 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
6029                 my $repcount = 0;
6030
6031
6032                 Parse::RecDescent::_trace(q{Trying terminal: [/UPDATE/i]}, Parse::RecDescent::_tracefirst($text),
6033                                           q{_alternation_1_of_production_2_of_rule_type},
6034                                           $tracelevel)
6035                                                 if defined $::RD_TRACE;
6036                 $lastsep = "";
6037                 $expectation->is(q{})->at($text);
6038                 
6039
6040                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UPDATE)//i)
6041                 {
6042                         
6043                         $expectation->failed();
6044                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6045                                                   Parse::RecDescent::_tracefirst($text))
6046                                         if defined $::RD_TRACE;
6047
6048                         last;
6049                 }
6050                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6051                                                 . $& . q{])},
6052                                                   Parse::RecDescent::_tracefirst($text))
6053                                         if defined $::RD_TRACE;
6054                 push @item, $item{__PATTERN1__}=$&;
6055                 
6056
6057
6058                 Parse::RecDescent::_trace(q{>>Matched production: [/UPDATE/i]<<},
6059                                           Parse::RecDescent::_tracefirst($text),
6060                                           q{_alternation_1_of_production_2_of_rule_type},
6061                                           $tracelevel)
6062                                                 if defined $::RD_TRACE;
6063                 $_matched = 1;
6064                 last;
6065         }
6066
6067
6068         unless ( $_matched || defined($return) || defined($score) )
6069         {
6070                 
6071
6072                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
6073                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
6074                                          Parse::RecDescent::_tracefirst($_[1]),
6075                                          q{_alternation_1_of_production_2_of_rule_type},
6076                                          $tracelevel)
6077                                         if defined $::RD_TRACE;
6078                 return undef;
6079         }
6080         if (!defined($return) && defined($score))
6081         {
6082                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6083                                           q{_alternation_1_of_production_2_of_rule_type},
6084                                           $tracelevel)
6085                                                 if defined $::RD_TRACE;
6086                 $return = $score_return;
6087         }
6088         splice @{$thisparser->{errors}}, $err_at;
6089         $return = $item[$#item] unless defined $return;
6090         if (defined $::RD_TRACE)
6091         {
6092                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6093                                           $return . q{])}, "",
6094                                           q{_alternation_1_of_production_2_of_rule_type},
6095                                           $tracelevel);
6096                 Parse::RecDescent::_trace(q{(consumed: [} .
6097                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
6098                                           Parse::RecDescent::_tracefirst($text),
6099                                           , q{_alternation_1_of_production_2_of_rule_type},
6100                                           $tracelevel)
6101         }
6102         $_[1] = $text;
6103         return $return;
6104 }
6105
6106 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6107 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_8_of_rule_sysibm_function
6108 {
6109         my $thisparser = $_[0];
6110         use vars q{$tracelevel};
6111         local $tracelevel = ($tracelevel||0)+1;
6112         $ERRORS = 0;
6113         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_8_of_rule_sysibm_function"};
6114         
6115         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_8_of_rule_sysibm_function]},
6116                                   Parse::RecDescent::_tracefirst($_[1]),
6117                                   q{_alternation_1_of_production_8_of_rule_sysibm_function},
6118                                   $tracelevel)
6119                                         if defined $::RD_TRACE;
6120
6121         
6122         my $err_at = @{$thisparser->{errors}};
6123
6124         my $score;
6125         my $score_return;
6126         my $_tok;
6127         my $return = undef;
6128         my $_matched=0;
6129         my $commit=0;
6130         my @item = ();
6131         my %item = ();
6132         my $repeating =  defined($_[2]) && $_[2];
6133         my $_noactions = defined($_[3]) && $_[3];
6134         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
6135         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
6136         my $text;
6137         my $lastsep="";
6138         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6139         $expectation->at($_[1]);
6140         
6141         my $thisline;
6142         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6143
6144         
6145
6146         while (!$_matched && !$commit)
6147         {
6148                 
6149                 Parse::RecDescent::_trace(q{Trying production: [/CONCAT/]},
6150                                           Parse::RecDescent::_tracefirst($_[1]),
6151                                           q{_alternation_1_of_production_8_of_rule_sysibm_function},
6152                                           $tracelevel)
6153                                                 if defined $::RD_TRACE;
6154                 my $thisprod = $thisrule->{"prods"}[0];
6155                 $text = $_[1];
6156                 my $_savetext;
6157                 @item = (q{_alternation_1_of_production_8_of_rule_sysibm_function});
6158                 %item = (__RULE__ => q{_alternation_1_of_production_8_of_rule_sysibm_function});
6159                 my $repcount = 0;
6160
6161
6162                 Parse::RecDescent::_trace(q{Trying terminal: [/CONCAT/]}, Parse::RecDescent::_tracefirst($text),
6163                                           q{_alternation_1_of_production_8_of_rule_sysibm_function},
6164                                           $tracelevel)
6165                                                 if defined $::RD_TRACE;
6166                 $lastsep = "";
6167                 $expectation->is(q{})->at($text);
6168                 
6169
6170                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CONCAT)//)
6171                 {
6172                         
6173                         $expectation->failed();
6174                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6175                                                   Parse::RecDescent::_tracefirst($text))
6176                                         if defined $::RD_TRACE;
6177
6178                         last;
6179                 }
6180                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6181                                                 . $& . q{])},
6182                                                   Parse::RecDescent::_tracefirst($text))
6183                                         if defined $::RD_TRACE;
6184                 push @item, $item{__PATTERN1__}=$&;
6185                 
6186
6187
6188                 Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/]<<},
6189                                           Parse::RecDescent::_tracefirst($text),
6190                                           q{_alternation_1_of_production_8_of_rule_sysibm_function},
6191                                           $tracelevel)
6192                                                 if defined $::RD_TRACE;
6193                 $_matched = 1;
6194                 last;
6195         }
6196
6197
6198         while (!$_matched && !$commit)
6199         {
6200                 
6201                 Parse::RecDescent::_trace(q{Trying production: ['||']},
6202                                           Parse::RecDescent::_tracefirst($_[1]),
6203                                           q{_alternation_1_of_production_8_of_rule_sysibm_function},
6204                                           $tracelevel)
6205                                                 if defined $::RD_TRACE;
6206                 my $thisprod = $thisrule->{"prods"}[1];
6207                 $text = $_[1];
6208                 my $_savetext;
6209                 @item = (q{_alternation_1_of_production_8_of_rule_sysibm_function});
6210                 %item = (__RULE__ => q{_alternation_1_of_production_8_of_rule_sysibm_function});
6211                 my $repcount = 0;
6212
6213
6214                 Parse::RecDescent::_trace(q{Trying terminal: ['||']},
6215                                           Parse::RecDescent::_tracefirst($text),
6216                                           q{_alternation_1_of_production_8_of_rule_sysibm_function},
6217                                           $tracelevel)
6218                                                 if defined $::RD_TRACE;
6219                 $lastsep = "";
6220                 $expectation->is(q{})->at($text);
6221                 
6222
6223                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\|\|//)
6224                 {
6225                         
6226                         $expectation->failed();
6227                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
6228                                                   Parse::RecDescent::_tracefirst($text))
6229                                                         if defined $::RD_TRACE;
6230                         last;
6231                 }
6232                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6233                                                 . $& . q{])},
6234                                                   Parse::RecDescent::_tracefirst($text))
6235                                                         if defined $::RD_TRACE;
6236                 push @item, $item{__STRING1__}=$&;
6237                 
6238
6239
6240                 Parse::RecDescent::_trace(q{>>Matched production: ['||']<<},
6241                                           Parse::RecDescent::_tracefirst($text),
6242                                           q{_alternation_1_of_production_8_of_rule_sysibm_function},
6243                                           $tracelevel)
6244                                                 if defined $::RD_TRACE;
6245                 $_matched = 1;
6246                 last;
6247         }
6248
6249
6250         unless ( $_matched || defined($return) || defined($score) )
6251         {
6252                 
6253
6254                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
6255                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
6256                                          Parse::RecDescent::_tracefirst($_[1]),
6257                                          q{_alternation_1_of_production_8_of_rule_sysibm_function},
6258                                          $tracelevel)
6259                                         if defined $::RD_TRACE;
6260                 return undef;
6261         }
6262         if (!defined($return) && defined($score))
6263         {
6264                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6265                                           q{_alternation_1_of_production_8_of_rule_sysibm_function},
6266                                           $tracelevel)
6267                                                 if defined $::RD_TRACE;
6268                 $return = $score_return;
6269         }
6270         splice @{$thisparser->{errors}}, $err_at;
6271         $return = $item[$#item] unless defined $return;
6272         if (defined $::RD_TRACE)
6273         {
6274                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6275                                           $return . q{])}, "",
6276                                           q{_alternation_1_of_production_8_of_rule_sysibm_function},
6277                                           $tracelevel);
6278                 Parse::RecDescent::_trace(q{(consumed: [} .
6279                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
6280                                           Parse::RecDescent::_tracefirst($text),
6281                                           , q{_alternation_1_of_production_8_of_rule_sysibm_function},
6282                                           $tracelevel)
6283         }
6284         $_[1] = $text;
6285         return $return;
6286 }
6287
6288 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6289 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_reference
6290 {
6291         my $thisparser = $_[0];
6292         use vars q{$tracelevel};
6293         local $tracelevel = ($tracelevel||0)+1;
6294         $ERRORS = 0;
6295         my $thisrule = $thisparser->{"rules"}{"sequence_reference"};
6296         
6297         Parse::RecDescent::_trace(q{Trying rule: [sequence_reference]},
6298                                   Parse::RecDescent::_tracefirst($_[1]),
6299                                   q{sequence_reference},
6300                                   $tracelevel)
6301                                         if defined $::RD_TRACE;
6302
6303         
6304         my $err_at = @{$thisparser->{errors}};
6305
6306         my $score;
6307         my $score_return;
6308         my $_tok;
6309         my $return = undef;
6310         my $_matched=0;
6311         my $commit=0;
6312         my @item = ();
6313         my %item = ();
6314         my $repeating =  defined($_[2]) && $_[2];
6315         my $_noactions = defined($_[3]) && $_[3];
6316         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
6317         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
6318         my $text;
6319         my $lastsep="";
6320         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6321         $expectation->at($_[1]);
6322         
6323         my $thisline;
6324         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6325
6326         
6327
6328         while (!$_matched && !$commit)
6329         {
6330                 
6331                 Parse::RecDescent::_trace(q{Trying production: [nextval_expression]},
6332                                           Parse::RecDescent::_tracefirst($_[1]),
6333                                           q{sequence_reference},
6334                                           $tracelevel)
6335                                                 if defined $::RD_TRACE;
6336                 my $thisprod = $thisrule->{"prods"}[0];
6337                 $text = $_[1];
6338                 my $_savetext;
6339                 @item = (q{sequence_reference});
6340                 %item = (__RULE__ => q{sequence_reference});
6341                 my $repcount = 0;
6342
6343
6344                 Parse::RecDescent::_trace(q{Trying subrule: [nextval_expression]},
6345                                   Parse::RecDescent::_tracefirst($text),
6346                                   q{sequence_reference},
6347                                   $tracelevel)
6348                                         if defined $::RD_TRACE;
6349                 if (1) { no strict qw{refs};
6350                 $expectation->is(q{})->at($text);
6351                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::nextval_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
6352                 {
6353                         
6354                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [nextval_expression]>>},
6355                                                   Parse::RecDescent::_tracefirst($text),
6356                                                   q{sequence_reference},
6357                                                   $tracelevel)
6358                                                         if defined $::RD_TRACE;
6359                         $expectation->failed();
6360                         last;
6361                 }
6362                 Parse::RecDescent::_trace(q{>>Matched subrule: [nextval_expression]<< (return value: [}
6363                                         . $_tok . q{]},
6364                                           
6365                                           Parse::RecDescent::_tracefirst($text),
6366                                           q{sequence_reference},
6367                                           $tracelevel)
6368                                                 if defined $::RD_TRACE;
6369                 $item{q{nextval_expression}} = $_tok;
6370                 push @item, $_tok;
6371                 
6372                 }
6373
6374
6375                 Parse::RecDescent::_trace(q{>>Matched production: [nextval_expression]<<},
6376                                           Parse::RecDescent::_tracefirst($text),
6377                                           q{sequence_reference},
6378                                           $tracelevel)
6379                                                 if defined $::RD_TRACE;
6380                 $_matched = 1;
6381                 last;
6382         }
6383
6384
6385         while (!$_matched && !$commit)
6386         {
6387                 
6388                 Parse::RecDescent::_trace(q{Trying production: [prevval_expression]},
6389                                           Parse::RecDescent::_tracefirst($_[1]),
6390                                           q{sequence_reference},
6391                                           $tracelevel)
6392                                                 if defined $::RD_TRACE;
6393                 my $thisprod = $thisrule->{"prods"}[1];
6394                 $text = $_[1];
6395                 my $_savetext;
6396                 @item = (q{sequence_reference});
6397                 %item = (__RULE__ => q{sequence_reference});
6398                 my $repcount = 0;
6399
6400
6401                 Parse::RecDescent::_trace(q{Trying subrule: [prevval_expression]},
6402                                   Parse::RecDescent::_tracefirst($text),
6403                                   q{sequence_reference},
6404                                   $tracelevel)
6405                                         if defined $::RD_TRACE;
6406                 if (1) { no strict qw{refs};
6407                 $expectation->is(q{})->at($text);
6408                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::prevval_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
6409                 {
6410                         
6411                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [prevval_expression]>>},
6412                                                   Parse::RecDescent::_tracefirst($text),
6413                                                   q{sequence_reference},
6414                                                   $tracelevel)
6415                                                         if defined $::RD_TRACE;
6416                         $expectation->failed();
6417                         last;
6418                 }
6419                 Parse::RecDescent::_trace(q{>>Matched subrule: [prevval_expression]<< (return value: [}
6420                                         . $_tok . q{]},
6421                                           
6422                                           Parse::RecDescent::_tracefirst($text),
6423                                           q{sequence_reference},
6424                                           $tracelevel)
6425                                                 if defined $::RD_TRACE;
6426                 $item{q{prevval_expression}} = $_tok;
6427                 push @item, $_tok;
6428                 
6429                 }
6430
6431
6432                 Parse::RecDescent::_trace(q{>>Matched production: [prevval_expression]<<},
6433                                           Parse::RecDescent::_tracefirst($text),
6434                                           q{sequence_reference},
6435                                           $tracelevel)
6436                                                 if defined $::RD_TRACE;
6437                 $_matched = 1;
6438                 last;
6439         }
6440
6441
6442         unless ( $_matched || defined($return) || defined($score) )
6443         {
6444                 
6445
6446                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
6447                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
6448                                          Parse::RecDescent::_tracefirst($_[1]),
6449                                          q{sequence_reference},
6450                                          $tracelevel)
6451                                         if defined $::RD_TRACE;
6452                 return undef;
6453         }
6454         if (!defined($return) && defined($score))
6455         {
6456                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6457                                           q{sequence_reference},
6458                                           $tracelevel)
6459                                                 if defined $::RD_TRACE;
6460                 $return = $score_return;
6461         }
6462         splice @{$thisparser->{errors}}, $err_at;
6463         $return = $item[$#item] unless defined $return;
6464         if (defined $::RD_TRACE)
6465         {
6466                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6467                                           $return . q{])}, "",
6468                                           q{sequence_reference},
6469                                           $tracelevel);
6470                 Parse::RecDescent::_trace(q{(consumed: [} .
6471                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
6472                                           Parse::RecDescent::_tracefirst($text),
6473                                           , q{sequence_reference},
6474                                           $tracelevel)
6475         }
6476         $_[1] = $text;
6477         return $return;
6478 }
6479
6480 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6481 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysibm_function
6482 {
6483         my $thisparser = $_[0];
6484         use vars q{$tracelevel};
6485         local $tracelevel = ($tracelevel||0)+1;
6486         $ERRORS = 0;
6487         my $thisrule = $thisparser->{"rules"}{"sysibm_function"};
6488         
6489         Parse::RecDescent::_trace(q{Trying rule: [sysibm_function]},
6490                                   Parse::RecDescent::_tracefirst($_[1]),
6491                                   q{sysibm_function},
6492                                   $tracelevel)
6493                                         if defined $::RD_TRACE;
6494
6495         
6496         my $err_at = @{$thisparser->{errors}};
6497
6498         my $score;
6499         my $score_return;
6500         my $_tok;
6501         my $return = undef;
6502         my $_matched=0;
6503         my $commit=0;
6504         my @item = ();
6505         my %item = ();
6506         my $repeating =  defined($_[2]) && $_[2];
6507         my $_noactions = defined($_[3]) && $_[3];
6508         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
6509         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
6510         my $text;
6511         my $lastsep="";
6512         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6513         $expectation->at($_[1]);
6514         
6515         my $thisline;
6516         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6517
6518         
6519
6520         while (!$_matched && !$commit)
6521         {
6522                 
6523                 Parse::RecDescent::_trace(q{Trying production: [/ABS/i, or /ABSVAL/i]},
6524                                           Parse::RecDescent::_tracefirst($_[1]),
6525                                           q{sysibm_function},
6526                                           $tracelevel)
6527                                                 if defined $::RD_TRACE;
6528                 my $thisprod = $thisrule->{"prods"}[0];
6529                 $text = $_[1];
6530                 my $_savetext;
6531                 @item = (q{sysibm_function});
6532                 %item = (__RULE__ => q{sysibm_function});
6533                 my $repcount = 0;
6534
6535
6536                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_sysibm_function]},
6537                                   Parse::RecDescent::_tracefirst($text),
6538                                   q{sysibm_function},
6539                                   $tracelevel)
6540                                         if defined $::RD_TRACE;
6541                 if (1) { no strict qw{refs};
6542                 $expectation->is(q{})->at($text);
6543                 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 })))
6544                 {
6545                         
6546                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_sysibm_function]>>},
6547                                                   Parse::RecDescent::_tracefirst($text),
6548                                                   q{sysibm_function},
6549                                                   $tracelevel)
6550                                                         if defined $::RD_TRACE;
6551                         $expectation->failed();
6552                         last;
6553                 }
6554                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_sysibm_function]<< (return value: [}
6555                                         . $_tok . q{]},
6556                                           
6557                                           Parse::RecDescent::_tracefirst($text),
6558                                           q{sysibm_function},
6559                                           $tracelevel)
6560                                                 if defined $::RD_TRACE;
6561                 $item{q{_alternation_1_of_production_1_of_rule_sysibm_function}} = $_tok;
6562                 push @item, $_tok;
6563                 
6564                 }
6565
6566
6567                 Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i, or /ABSVAL/i]<<},
6568                                           Parse::RecDescent::_tracefirst($text),
6569                                           q{sysibm_function},
6570                                           $tracelevel)
6571                                                 if defined $::RD_TRACE;
6572                 $_matched = 1;
6573                 last;
6574         }
6575
6576
6577         while (!$_matched && !$commit)
6578         {
6579                 
6580                 Parse::RecDescent::_trace(q{Trying production: [/AVG/i]},
6581                                           Parse::RecDescent::_tracefirst($_[1]),
6582                                           q{sysibm_function},
6583                                           $tracelevel)
6584                                                 if defined $::RD_TRACE;
6585                 my $thisprod = $thisrule->{"prods"}[1];
6586                 $text = $_[1];
6587                 my $_savetext;
6588                 @item = (q{sysibm_function});
6589                 %item = (__RULE__ => q{sysibm_function});
6590                 my $repcount = 0;
6591
6592
6593                 Parse::RecDescent::_trace(q{Trying terminal: [/AVG/i]}, Parse::RecDescent::_tracefirst($text),
6594                                           q{sysibm_function},
6595                                           $tracelevel)
6596                                                 if defined $::RD_TRACE;
6597                 $lastsep = "";
6598                 $expectation->is(q{})->at($text);
6599                 
6600
6601                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AVG)//i)
6602                 {
6603                         
6604                         $expectation->failed();
6605                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6606                                                   Parse::RecDescent::_tracefirst($text))
6607                                         if defined $::RD_TRACE;
6608
6609                         last;
6610                 }
6611                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6612                                                 . $& . q{])},
6613                                                   Parse::RecDescent::_tracefirst($text))
6614                                         if defined $::RD_TRACE;
6615                 push @item, $item{__PATTERN1__}=$&;
6616                 
6617
6618
6619                 Parse::RecDescent::_trace(q{>>Matched production: [/AVG/i]<<},
6620                                           Parse::RecDescent::_tracefirst($text),
6621                                           q{sysibm_function},
6622                                           $tracelevel)
6623                                                 if defined $::RD_TRACE;
6624                 $_matched = 1;
6625                 last;
6626         }
6627
6628
6629         while (!$_matched && !$commit)
6630         {
6631                 
6632                 Parse::RecDescent::_trace(q{Trying production: [/BIGINT/i]},
6633                                           Parse::RecDescent::_tracefirst($_[1]),
6634                                           q{sysibm_function},
6635                                           $tracelevel)
6636                                                 if defined $::RD_TRACE;
6637                 my $thisprod = $thisrule->{"prods"}[2];
6638                 $text = $_[1];
6639                 my $_savetext;
6640                 @item = (q{sysibm_function});
6641                 %item = (__RULE__ => q{sysibm_function});
6642                 my $repcount = 0;
6643
6644
6645                 Parse::RecDescent::_trace(q{Trying terminal: [/BIGINT/i]}, Parse::RecDescent::_tracefirst($text),
6646                                           q{sysibm_function},
6647                                           $tracelevel)
6648                                                 if defined $::RD_TRACE;
6649                 $lastsep = "";
6650                 $expectation->is(q{})->at($text);
6651                 
6652
6653                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:BIGINT)//i)
6654                 {
6655                         
6656                         $expectation->failed();
6657                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6658                                                   Parse::RecDescent::_tracefirst($text))
6659                                         if defined $::RD_TRACE;
6660
6661                         last;
6662                 }
6663                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6664                                                 . $& . q{])},
6665                                                   Parse::RecDescent::_tracefirst($text))
6666                                         if defined $::RD_TRACE;
6667                 push @item, $item{__PATTERN1__}=$&;
6668                 
6669
6670
6671                 Parse::RecDescent::_trace(q{>>Matched production: [/BIGINT/i]<<},
6672                                           Parse::RecDescent::_tracefirst($text),
6673                                           q{sysibm_function},
6674                                           $tracelevel)
6675                                                 if defined $::RD_TRACE;
6676                 $_matched = 1;
6677                 last;
6678         }
6679
6680
6681         while (!$_matched && !$commit)
6682         {
6683                 
6684                 Parse::RecDescent::_trace(q{Trying production: [/BLOB/i]},
6685                                           Parse::RecDescent::_tracefirst($_[1]),
6686                                           q{sysibm_function},
6687                                           $tracelevel)
6688                                                 if defined $::RD_TRACE;
6689                 my $thisprod = $thisrule->{"prods"}[3];
6690                 $text = $_[1];
6691                 my $_savetext;
6692                 @item = (q{sysibm_function});
6693                 %item = (__RULE__ => q{sysibm_function});
6694                 my $repcount = 0;
6695
6696
6697                 Parse::RecDescent::_trace(q{Trying terminal: [/BLOB/i]}, Parse::RecDescent::_tracefirst($text),
6698                                           q{sysibm_function},
6699                                           $tracelevel)
6700                                                 if defined $::RD_TRACE;
6701                 $lastsep = "";
6702                 $expectation->is(q{})->at($text);
6703                 
6704
6705                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:BLOB)//i)
6706                 {
6707                         
6708                         $expectation->failed();
6709                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6710                                                   Parse::RecDescent::_tracefirst($text))
6711                                         if defined $::RD_TRACE;
6712
6713                         last;
6714                 }
6715                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6716                                                 . $& . q{])},
6717                                                   Parse::RecDescent::_tracefirst($text))
6718                                         if defined $::RD_TRACE;
6719                 push @item, $item{__PATTERN1__}=$&;
6720                 
6721
6722
6723                 Parse::RecDescent::_trace(q{>>Matched production: [/BLOB/i]<<},
6724                                           Parse::RecDescent::_tracefirst($text),
6725                                           q{sysibm_function},
6726                                           $tracelevel)
6727                                                 if defined $::RD_TRACE;
6728                 $_matched = 1;
6729                 last;
6730         }
6731
6732
6733         while (!$_matched && !$commit)
6734         {
6735                 
6736                 Parse::RecDescent::_trace(q{Trying production: [/CHAR/i]},
6737                                           Parse::RecDescent::_tracefirst($_[1]),
6738                                           q{sysibm_function},
6739                                           $tracelevel)
6740                                                 if defined $::RD_TRACE;
6741                 my $thisprod = $thisrule->{"prods"}[4];
6742                 $text = $_[1];
6743                 my $_savetext;
6744                 @item = (q{sysibm_function});
6745                 %item = (__RULE__ => q{sysibm_function});
6746                 my $repcount = 0;
6747
6748
6749                 Parse::RecDescent::_trace(q{Trying terminal: [/CHAR/i]}, Parse::RecDescent::_tracefirst($text),
6750                                           q{sysibm_function},
6751                                           $tracelevel)
6752                                                 if defined $::RD_TRACE;
6753                 $lastsep = "";
6754                 $expectation->is(q{})->at($text);
6755                 
6756
6757                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CHAR)//i)
6758                 {
6759                         
6760                         $expectation->failed();
6761                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6762                                                   Parse::RecDescent::_tracefirst($text))
6763                                         if defined $::RD_TRACE;
6764
6765                         last;
6766                 }
6767                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6768                                                 . $& . q{])},
6769                                                   Parse::RecDescent::_tracefirst($text))
6770                                         if defined $::RD_TRACE;
6771                 push @item, $item{__PATTERN1__}=$&;
6772                 
6773
6774
6775                 Parse::RecDescent::_trace(q{>>Matched production: [/CHAR/i]<<},
6776                                           Parse::RecDescent::_tracefirst($text),
6777                                           q{sysibm_function},
6778                                           $tracelevel)
6779                                                 if defined $::RD_TRACE;
6780                 $_matched = 1;
6781                 last;
6782         }
6783
6784
6785         while (!$_matched && !$commit)
6786         {
6787                 
6788                 Parse::RecDescent::_trace(q{Trying production: [/CLOB/i]},
6789                                           Parse::RecDescent::_tracefirst($_[1]),
6790                                           q{sysibm_function},
6791                                           $tracelevel)
6792                                                 if defined $::RD_TRACE;
6793                 my $thisprod = $thisrule->{"prods"}[5];
6794                 $text = $_[1];
6795                 my $_savetext;
6796                 @item = (q{sysibm_function});
6797                 %item = (__RULE__ => q{sysibm_function});
6798                 my $repcount = 0;
6799
6800
6801                 Parse::RecDescent::_trace(q{Trying terminal: [/CLOB/i]}, Parse::RecDescent::_tracefirst($text),
6802                                           q{sysibm_function},
6803                                           $tracelevel)
6804                                                 if defined $::RD_TRACE;
6805                 $lastsep = "";
6806                 $expectation->is(q{})->at($text);
6807                 
6808
6809                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CLOB)//i)
6810                 {
6811                         
6812                         $expectation->failed();
6813                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6814                                                   Parse::RecDescent::_tracefirst($text))
6815                                         if defined $::RD_TRACE;
6816
6817                         last;
6818                 }
6819                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6820                                                 . $& . q{])},
6821                                                   Parse::RecDescent::_tracefirst($text))
6822                                         if defined $::RD_TRACE;
6823                 push @item, $item{__PATTERN1__}=$&;
6824                 
6825
6826
6827                 Parse::RecDescent::_trace(q{>>Matched production: [/CLOB/i]<<},
6828                                           Parse::RecDescent::_tracefirst($text),
6829                                           q{sysibm_function},
6830                                           $tracelevel)
6831                                                 if defined $::RD_TRACE;
6832                 $_matched = 1;
6833                 last;
6834         }
6835
6836
6837         while (!$_matched && !$commit)
6838         {
6839                 
6840                 Parse::RecDescent::_trace(q{Trying production: [/COALESCE/i]},
6841                                           Parse::RecDescent::_tracefirst($_[1]),
6842                                           q{sysibm_function},
6843                                           $tracelevel)
6844                                                 if defined $::RD_TRACE;
6845                 my $thisprod = $thisrule->{"prods"}[6];
6846                 $text = $_[1];
6847                 my $_savetext;
6848                 @item = (q{sysibm_function});
6849                 %item = (__RULE__ => q{sysibm_function});
6850                 my $repcount = 0;
6851
6852
6853                 Parse::RecDescent::_trace(q{Trying terminal: [/COALESCE/i]}, Parse::RecDescent::_tracefirst($text),
6854                                           q{sysibm_function},
6855                                           $tracelevel)
6856                                                 if defined $::RD_TRACE;
6857                 $lastsep = "";
6858                 $expectation->is(q{})->at($text);
6859                 
6860
6861                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COALESCE)//i)
6862                 {
6863                         
6864                         $expectation->failed();
6865                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6866                                                   Parse::RecDescent::_tracefirst($text))
6867                                         if defined $::RD_TRACE;
6868
6869                         last;
6870                 }
6871                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6872                                                 . $& . q{])},
6873                                                   Parse::RecDescent::_tracefirst($text))
6874                                         if defined $::RD_TRACE;
6875                 push @item, $item{__PATTERN1__}=$&;
6876                 
6877
6878
6879                 Parse::RecDescent::_trace(q{>>Matched production: [/COALESCE/i]<<},
6880                                           Parse::RecDescent::_tracefirst($text),
6881                                           q{sysibm_function},
6882                                           $tracelevel)
6883                                                 if defined $::RD_TRACE;
6884                 $_matched = 1;
6885                 last;
6886         }
6887
6888
6889         while (!$_matched && !$commit)
6890         {
6891                 
6892                 Parse::RecDescent::_trace(q{Trying production: [/CONCAT/, or '||']},
6893                                           Parse::RecDescent::_tracefirst($_[1]),
6894                                           q{sysibm_function},
6895                                           $tracelevel)
6896                                                 if defined $::RD_TRACE;
6897                 my $thisprod = $thisrule->{"prods"}[7];
6898                 $text = $_[1];
6899                 my $_savetext;
6900                 @item = (q{sysibm_function});
6901                 %item = (__RULE__ => q{sysibm_function});
6902                 my $repcount = 0;
6903
6904
6905                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_8_of_rule_sysibm_function]},
6906                                   Parse::RecDescent::_tracefirst($text),
6907                                   q{sysibm_function},
6908                                   $tracelevel)
6909                                         if defined $::RD_TRACE;
6910                 if (1) { no strict qw{refs};
6911                 $expectation->is(q{})->at($text);
6912                 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 })))
6913                 {
6914                         
6915                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_8_of_rule_sysibm_function]>>},
6916                                                   Parse::RecDescent::_tracefirst($text),
6917                                                   q{sysibm_function},
6918                                                   $tracelevel)
6919                                                         if defined $::RD_TRACE;
6920                         $expectation->failed();
6921                         last;
6922                 }
6923                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_8_of_rule_sysibm_function]<< (return value: [}
6924                                         . $_tok . q{]},
6925                                           
6926                                           Parse::RecDescent::_tracefirst($text),
6927                                           q{sysibm_function},
6928                                           $tracelevel)
6929                                                 if defined $::RD_TRACE;
6930                 $item{q{_alternation_1_of_production_8_of_rule_sysibm_function}} = $_tok;
6931                 push @item, $_tok;
6932                 
6933                 }
6934
6935
6936                 Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/, or '||']<<},
6937                                           Parse::RecDescent::_tracefirst($text),
6938                                           q{sysibm_function},
6939                                           $tracelevel)
6940                                                 if defined $::RD_TRACE;
6941                 $_matched = 1;
6942                 last;
6943         }
6944
6945
6946         while (!$_matched && !$commit)
6947         {
6948                 
6949                 Parse::RecDescent::_trace(q{Trying production: [/CORRELATION/i, or /CORR/]},
6950                                           Parse::RecDescent::_tracefirst($_[1]),
6951                                           q{sysibm_function},
6952                                           $tracelevel)
6953                                                 if defined $::RD_TRACE;
6954                 my $thisprod = $thisrule->{"prods"}[8];
6955                 $text = $_[1];
6956                 my $_savetext;
6957                 @item = (q{sysibm_function});
6958                 %item = (__RULE__ => q{sysibm_function});
6959                 my $repcount = 0;
6960
6961
6962                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_9_of_rule_sysibm_function]},
6963                                   Parse::RecDescent::_tracefirst($text),
6964                                   q{sysibm_function},
6965                                   $tracelevel)
6966                                         if defined $::RD_TRACE;
6967                 if (1) { no strict qw{refs};
6968                 $expectation->is(q{})->at($text);
6969                 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 })))
6970                 {
6971                         
6972                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_9_of_rule_sysibm_function]>>},
6973                                                   Parse::RecDescent::_tracefirst($text),
6974                                                   q{sysibm_function},
6975                                                   $tracelevel)
6976                                                         if defined $::RD_TRACE;
6977                         $expectation->failed();
6978                         last;
6979                 }
6980                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_9_of_rule_sysibm_function]<< (return value: [}
6981                                         . $_tok . q{]},
6982                                           
6983                                           Parse::RecDescent::_tracefirst($text),
6984                                           q{sysibm_function},
6985                                           $tracelevel)
6986                                                 if defined $::RD_TRACE;
6987                 $item{q{_alternation_1_of_production_9_of_rule_sysibm_function}} = $_tok;
6988                 push @item, $_tok;
6989                 
6990                 }
6991
6992
6993                 Parse::RecDescent::_trace(q{>>Matched production: [/CORRELATION/i, or /CORR/]<<},
6994                                           Parse::RecDescent::_tracefirst($text),
6995                                           q{sysibm_function},
6996                                           $tracelevel)
6997                                                 if defined $::RD_TRACE;
6998                 $_matched = 1;
6999                 last;
7000         }
7001
7002
7003         while (!$_matched && !$commit)
7004         {
7005                 
7006                 Parse::RecDescent::_trace(q{Trying production: [/COUNT/i]},
7007                                           Parse::RecDescent::_tracefirst($_[1]),
7008                                           q{sysibm_function},
7009                                           $tracelevel)
7010                                                 if defined $::RD_TRACE;
7011                 my $thisprod = $thisrule->{"prods"}[9];
7012                 $text = $_[1];
7013                 my $_savetext;
7014                 @item = (q{sysibm_function});
7015                 %item = (__RULE__ => q{sysibm_function});
7016                 my $repcount = 0;
7017
7018
7019                 Parse::RecDescent::_trace(q{Trying terminal: [/COUNT/i]}, Parse::RecDescent::_tracefirst($text),
7020                                           q{sysibm_function},
7021                                           $tracelevel)
7022                                                 if defined $::RD_TRACE;
7023                 $lastsep = "";
7024                 $expectation->is(q{})->at($text);
7025                 
7026
7027                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COUNT)//i)
7028                 {
7029                         
7030                         $expectation->failed();
7031                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7032                                                   Parse::RecDescent::_tracefirst($text))
7033                                         if defined $::RD_TRACE;
7034
7035                         last;
7036                 }
7037                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7038                                                 . $& . q{])},
7039                                                   Parse::RecDescent::_tracefirst($text))
7040                                         if defined $::RD_TRACE;
7041                 push @item, $item{__PATTERN1__}=$&;
7042                 
7043
7044
7045                 Parse::RecDescent::_trace(q{>>Matched production: [/COUNT/i]<<},
7046                                           Parse::RecDescent::_tracefirst($text),
7047                                           q{sysibm_function},
7048                                           $tracelevel)
7049                                                 if defined $::RD_TRACE;
7050                 $_matched = 1;
7051                 last;
7052         }
7053
7054
7055         while (!$_matched && !$commit)
7056         {
7057                 
7058                 Parse::RecDescent::_trace(q{Trying production: [/COUNT_BIG/i]},
7059                                           Parse::RecDescent::_tracefirst($_[1]),
7060                                           q{sysibm_function},
7061                                           $tracelevel)
7062                                                 if defined $::RD_TRACE;
7063                 my $thisprod = $thisrule->{"prods"}[10];
7064                 $text = $_[1];
7065                 my $_savetext;
7066                 @item = (q{sysibm_function});
7067                 %item = (__RULE__ => q{sysibm_function});
7068                 my $repcount = 0;
7069
7070
7071                 Parse::RecDescent::_trace(q{Trying terminal: [/COUNT_BIG/i]}, Parse::RecDescent::_tracefirst($text),
7072                                           q{sysibm_function},
7073                                           $tracelevel)
7074                                                 if defined $::RD_TRACE;
7075                 $lastsep = "";
7076                 $expectation->is(q{})->at($text);
7077                 
7078
7079                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COUNT_BIG)//i)
7080                 {
7081                         
7082                         $expectation->failed();
7083                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7084                                                   Parse::RecDescent::_tracefirst($text))
7085                                         if defined $::RD_TRACE;
7086
7087                         last;
7088                 }
7089                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7090                                                 . $& . q{])},
7091                                                   Parse::RecDescent::_tracefirst($text))
7092                                         if defined $::RD_TRACE;
7093                 push @item, $item{__PATTERN1__}=$&;
7094                 
7095
7096
7097                 Parse::RecDescent::_trace(q{>>Matched production: [/COUNT_BIG/i]<<},
7098                                           Parse::RecDescent::_tracefirst($text),
7099                                           q{sysibm_function},
7100                                           $tracelevel)
7101                                                 if defined $::RD_TRACE;
7102                 $_matched = 1;
7103                 last;
7104         }
7105
7106
7107         while (!$_matched && !$commit)
7108         {
7109                 
7110                 Parse::RecDescent::_trace(q{Trying production: [/COVARIANCE/i, or /COVAR/i]},
7111                                           Parse::RecDescent::_tracefirst($_[1]),
7112                                           q{sysibm_function},
7113                                           $tracelevel)
7114                                                 if defined $::RD_TRACE;
7115                 my $thisprod = $thisrule->{"prods"}[11];
7116                 $text = $_[1];
7117                 my $_savetext;
7118                 @item = (q{sysibm_function});
7119                 %item = (__RULE__ => q{sysibm_function});
7120                 my $repcount = 0;
7121
7122
7123                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_12_of_rule_sysibm_function]},
7124                                   Parse::RecDescent::_tracefirst($text),
7125                                   q{sysibm_function},
7126                                   $tracelevel)
7127                                         if defined $::RD_TRACE;
7128                 if (1) { no strict qw{refs};
7129                 $expectation->is(q{})->at($text);
7130                 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 })))
7131                 {
7132                         
7133                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_12_of_rule_sysibm_function]>>},
7134                                                   Parse::RecDescent::_tracefirst($text),
7135                                                   q{sysibm_function},
7136                                                   $tracelevel)
7137                                                         if defined $::RD_TRACE;
7138                         $expectation->failed();
7139                         last;
7140                 }
7141                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_12_of_rule_sysibm_function]<< (return value: [}
7142                                         . $_tok . q{]},
7143                                           
7144                                           Parse::RecDescent::_tracefirst($text),
7145                                           q{sysibm_function},
7146                                           $tracelevel)
7147                                                 if defined $::RD_TRACE;
7148                 $item{q{_alternation_1_of_production_12_of_rule_sysibm_function}} = $_tok;
7149                 push @item, $_tok;
7150                 
7151                 }
7152
7153
7154                 Parse::RecDescent::_trace(q{>>Matched production: [/COVARIANCE/i, or /COVAR/i]<<},
7155                                           Parse::RecDescent::_tracefirst($text),
7156                                           q{sysibm_function},
7157                                           $tracelevel)
7158                                                 if defined $::RD_TRACE;
7159                 $_matched = 1;
7160                 last;
7161         }
7162
7163
7164         while (!$_matched && !$commit)
7165         {
7166                 
7167                 Parse::RecDescent::_trace(q{Trying production: [/DATE/i]},
7168                                           Parse::RecDescent::_tracefirst($_[1]),
7169                                           q{sysibm_function},
7170                                           $tracelevel)
7171                                                 if defined $::RD_TRACE;
7172                 my $thisprod = $thisrule->{"prods"}[12];
7173                 $text = $_[1];
7174                 my $_savetext;
7175                 @item = (q{sysibm_function});
7176                 %item = (__RULE__ => q{sysibm_function});
7177                 my $repcount = 0;
7178
7179
7180                 Parse::RecDescent::_trace(q{Trying terminal: [/DATE/i]}, Parse::RecDescent::_tracefirst($text),
7181                                           q{sysibm_function},
7182                                           $tracelevel)
7183                                                 if defined $::RD_TRACE;
7184                 $lastsep = "";
7185                 $expectation->is(q{})->at($text);
7186                 
7187
7188                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DATE)//i)
7189                 {
7190                         
7191                         $expectation->failed();
7192                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7193                                                   Parse::RecDescent::_tracefirst($text))
7194                                         if defined $::RD_TRACE;
7195
7196                         last;
7197                 }
7198                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7199                                                 . $& . q{])},
7200                                                   Parse::RecDescent::_tracefirst($text))
7201                                         if defined $::RD_TRACE;
7202                 push @item, $item{__PATTERN1__}=$&;
7203                 
7204
7205
7206                 Parse::RecDescent::_trace(q{>>Matched production: [/DATE/i]<<},
7207                                           Parse::RecDescent::_tracefirst($text),
7208                                           q{sysibm_function},
7209                                           $tracelevel)
7210                                                 if defined $::RD_TRACE;
7211                 $_matched = 1;
7212                 last;
7213         }
7214
7215
7216         while (!$_matched && !$commit)
7217         {
7218                 
7219                 Parse::RecDescent::_trace(q{Trying production: [/DAY/i]},
7220                                           Parse::RecDescent::_tracefirst($_[1]),
7221                                           q{sysibm_function},
7222                                           $tracelevel)
7223                                                 if defined $::RD_TRACE;
7224                 my $thisprod = $thisrule->{"prods"}[13];
7225                 $text = $_[1];
7226                 my $_savetext;
7227                 @item = (q{sysibm_function});
7228                 %item = (__RULE__ => q{sysibm_function});
7229                 my $repcount = 0;
7230
7231
7232                 Parse::RecDescent::_trace(q{Trying terminal: [/DAY/i]}, Parse::RecDescent::_tracefirst($text),
7233                                           q{sysibm_function},
7234                                           $tracelevel)
7235                                                 if defined $::RD_TRACE;
7236                 $lastsep = "";
7237                 $expectation->is(q{})->at($text);
7238                 
7239
7240                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAY)//i)
7241                 {
7242                         
7243                         $expectation->failed();
7244                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7245                                                   Parse::RecDescent::_tracefirst($text))
7246                                         if defined $::RD_TRACE;
7247
7248                         last;
7249                 }
7250                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7251                                                 . $& . q{])},
7252                                                   Parse::RecDescent::_tracefirst($text))
7253                                         if defined $::RD_TRACE;
7254                 push @item, $item{__PATTERN1__}=$&;
7255                 
7256
7257
7258                 Parse::RecDescent::_trace(q{>>Matched production: [/DAY/i]<<},
7259                                           Parse::RecDescent::_tracefirst($text),
7260                                           q{sysibm_function},
7261                                           $tracelevel)
7262                                                 if defined $::RD_TRACE;
7263                 $_matched = 1;
7264                 last;
7265         }
7266
7267
7268         while (!$_matched && !$commit)
7269         {
7270                 
7271                 Parse::RecDescent::_trace(q{Trying production: [/DAYS/i]},
7272                                           Parse::RecDescent::_tracefirst($_[1]),
7273                                           q{sysibm_function},
7274                                           $tracelevel)
7275                                                 if defined $::RD_TRACE;
7276                 my $thisprod = $thisrule->{"prods"}[14];
7277                 $text = $_[1];
7278                 my $_savetext;
7279                 @item = (q{sysibm_function});
7280                 %item = (__RULE__ => q{sysibm_function});
7281                 my $repcount = 0;
7282
7283
7284                 Parse::RecDescent::_trace(q{Trying terminal: [/DAYS/i]}, Parse::RecDescent::_tracefirst($text),
7285                                           q{sysibm_function},
7286                                           $tracelevel)
7287                                                 if defined $::RD_TRACE;
7288                 $lastsep = "";
7289                 $expectation->is(q{})->at($text);
7290                 
7291
7292                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYS)//i)
7293                 {
7294                         
7295                         $expectation->failed();
7296                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7297                                                   Parse::RecDescent::_tracefirst($text))
7298                                         if defined $::RD_TRACE;
7299
7300                         last;
7301                 }
7302                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7303                                                 . $& . q{])},
7304                                                   Parse::RecDescent::_tracefirst($text))
7305                                         if defined $::RD_TRACE;
7306                 push @item, $item{__PATTERN1__}=$&;
7307                 
7308
7309
7310                 Parse::RecDescent::_trace(q{>>Matched production: [/DAYS/i]<<},
7311                                           Parse::RecDescent::_tracefirst($text),
7312                                           q{sysibm_function},
7313                                           $tracelevel)
7314                                                 if defined $::RD_TRACE;
7315                 $_matched = 1;
7316                 last;
7317         }
7318
7319
7320         while (!$_matched && !$commit)
7321         {
7322                 
7323                 Parse::RecDescent::_trace(q{Trying production: [/DBCLOB/i]},
7324                                           Parse::RecDescent::_tracefirst($_[1]),
7325                                           q{sysibm_function},
7326                                           $tracelevel)
7327                                                 if defined $::RD_TRACE;
7328                 my $thisprod = $thisrule->{"prods"}[15];
7329                 $text = $_[1];
7330                 my $_savetext;
7331                 @item = (q{sysibm_function});
7332                 %item = (__RULE__ => q{sysibm_function});
7333                 my $repcount = 0;
7334
7335
7336                 Parse::RecDescent::_trace(q{Trying terminal: [/DBCLOB/i]}, Parse::RecDescent::_tracefirst($text),
7337                                           q{sysibm_function},
7338                                           $tracelevel)
7339                                                 if defined $::RD_TRACE;
7340                 $lastsep = "";
7341                 $expectation->is(q{})->at($text);
7342                 
7343
7344                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DBCLOB)//i)
7345                 {
7346                         
7347                         $expectation->failed();
7348                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7349                                                   Parse::RecDescent::_tracefirst($text))
7350                                         if defined $::RD_TRACE;
7351
7352                         last;
7353                 }
7354                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7355                                                 . $& . q{])},
7356                                                   Parse::RecDescent::_tracefirst($text))
7357                                         if defined $::RD_TRACE;
7358                 push @item, $item{__PATTERN1__}=$&;
7359                 
7360
7361
7362                 Parse::RecDescent::_trace(q{>>Matched production: [/DBCLOB/i]<<},
7363                                           Parse::RecDescent::_tracefirst($text),
7364                                           q{sysibm_function},
7365                                           $tracelevel)
7366                                                 if defined $::RD_TRACE;
7367                 $_matched = 1;
7368                 last;
7369         }
7370
7371
7372         while (!$_matched && !$commit)
7373         {
7374                 
7375                 Parse::RecDescent::_trace(q{Trying production: [/DECIMAL/i, or /DEC/i]},
7376                                           Parse::RecDescent::_tracefirst($_[1]),
7377                                           q{sysibm_function},
7378                                           $tracelevel)
7379                                                 if defined $::RD_TRACE;
7380                 my $thisprod = $thisrule->{"prods"}[16];
7381                 $text = $_[1];
7382                 my $_savetext;
7383                 @item = (q{sysibm_function});
7384                 %item = (__RULE__ => q{sysibm_function});
7385                 my $repcount = 0;
7386
7387
7388                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_17_of_rule_sysibm_function]},
7389                                   Parse::RecDescent::_tracefirst($text),
7390                                   q{sysibm_function},
7391                                   $tracelevel)
7392                                         if defined $::RD_TRACE;
7393                 if (1) { no strict qw{refs};
7394                 $expectation->is(q{})->at($text);
7395                 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 })))
7396                 {
7397                         
7398                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_17_of_rule_sysibm_function]>>},
7399                                                   Parse::RecDescent::_tracefirst($text),
7400                                                   q{sysibm_function},
7401                                                   $tracelevel)
7402                                                         if defined $::RD_TRACE;
7403                         $expectation->failed();
7404                         last;
7405                 }
7406                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_17_of_rule_sysibm_function]<< (return value: [}
7407                                         . $_tok . q{]},
7408                                           
7409                                           Parse::RecDescent::_tracefirst($text),
7410                                           q{sysibm_function},
7411                                           $tracelevel)
7412                                                 if defined $::RD_TRACE;
7413                 $item{q{_alternation_1_of_production_17_of_rule_sysibm_function}} = $_tok;
7414                 push @item, $_tok;
7415                 
7416                 }
7417
7418
7419                 Parse::RecDescent::_trace(q{>>Matched production: [/DECIMAL/i, or /DEC/i]<<},
7420                                           Parse::RecDescent::_tracefirst($text),
7421                                           q{sysibm_function},
7422                                           $tracelevel)
7423                                                 if defined $::RD_TRACE;
7424                 $_matched = 1;
7425                 last;
7426         }
7427
7428
7429         while (!$_matched && !$commit)
7430         {
7431                 
7432                 Parse::RecDescent::_trace(q{Trying production: [/DECRYPT_BIN/i]},
7433                                           Parse::RecDescent::_tracefirst($_[1]),
7434                                           q{sysibm_function},
7435                                           $tracelevel)
7436                                                 if defined $::RD_TRACE;
7437                 my $thisprod = $thisrule->{"prods"}[17];
7438                 $text = $_[1];
7439                 my $_savetext;
7440                 @item = (q{sysibm_function});
7441                 %item = (__RULE__ => q{sysibm_function});
7442                 my $repcount = 0;
7443
7444
7445                 Parse::RecDescent::_trace(q{Trying terminal: [/DECRYPT_BIN/i]}, Parse::RecDescent::_tracefirst($text),
7446                                           q{sysibm_function},
7447                                           $tracelevel)
7448                                                 if defined $::RD_TRACE;
7449                 $lastsep = "";
7450                 $expectation->is(q{})->at($text);
7451                 
7452
7453                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DECRYPT_BIN)//i)
7454                 {
7455                         
7456                         $expectation->failed();
7457                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7458                                                   Parse::RecDescent::_tracefirst($text))
7459                                         if defined $::RD_TRACE;
7460
7461                         last;
7462                 }
7463                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7464                                                 . $& . q{])},
7465                                                   Parse::RecDescent::_tracefirst($text))
7466                                         if defined $::RD_TRACE;
7467                 push @item, $item{__PATTERN1__}=$&;
7468                 
7469
7470
7471                 Parse::RecDescent::_trace(q{>>Matched production: [/DECRYPT_BIN/i]<<},
7472                                           Parse::RecDescent::_tracefirst($text),
7473                                           q{sysibm_function},
7474                                           $tracelevel)
7475                                                 if defined $::RD_TRACE;
7476                 $_matched = 1;
7477                 last;
7478         }
7479
7480
7481         while (!$_matched && !$commit)
7482         {
7483                 
7484                 Parse::RecDescent::_trace(q{Trying production: [/DECRYPT_CHAR/i]},
7485                                           Parse::RecDescent::_tracefirst($_[1]),
7486                                           q{sysibm_function},
7487                                           $tracelevel)
7488                                                 if defined $::RD_TRACE;
7489                 my $thisprod = $thisrule->{"prods"}[18];
7490                 $text = $_[1];
7491                 my $_savetext;
7492                 @item = (q{sysibm_function});
7493                 %item = (__RULE__ => q{sysibm_function});
7494                 my $repcount = 0;
7495
7496
7497                 Parse::RecDescent::_trace(q{Trying terminal: [/DECRYPT_CHAR/i]}, Parse::RecDescent::_tracefirst($text),
7498                                           q{sysibm_function},
7499                                           $tracelevel)
7500                                                 if defined $::RD_TRACE;
7501                 $lastsep = "";
7502                 $expectation->is(q{})->at($text);
7503                 
7504
7505                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DECRYPT_CHAR)//i)
7506                 {
7507                         
7508                         $expectation->failed();
7509                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7510                                                   Parse::RecDescent::_tracefirst($text))
7511                                         if defined $::RD_TRACE;
7512
7513                         last;
7514                 }
7515                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7516                                                 . $& . q{])},
7517                                                   Parse::RecDescent::_tracefirst($text))
7518                                         if defined $::RD_TRACE;
7519                 push @item, $item{__PATTERN1__}=$&;
7520                 
7521
7522
7523                 Parse::RecDescent::_trace(q{>>Matched production: [/DECRYPT_CHAR/i]<<},
7524                                           Parse::RecDescent::_tracefirst($text),
7525                                           q{sysibm_function},
7526                                           $tracelevel)
7527                                                 if defined $::RD_TRACE;
7528                 $_matched = 1;
7529                 last;
7530         }
7531
7532
7533         while (!$_matched && !$commit)
7534         {
7535                 
7536                 Parse::RecDescent::_trace(q{Trying production: [/DEREF/i]},
7537                                           Parse::RecDescent::_tracefirst($_[1]),
7538                                           q{sysibm_function},
7539                                           $tracelevel)
7540                                                 if defined $::RD_TRACE;
7541                 my $thisprod = $thisrule->{"prods"}[19];
7542                 $text = $_[1];
7543                 my $_savetext;
7544                 @item = (q{sysibm_function});
7545                 %item = (__RULE__ => q{sysibm_function});
7546                 my $repcount = 0;
7547
7548
7549                 Parse::RecDescent::_trace(q{Trying terminal: [/DEREF/i]}, Parse::RecDescent::_tracefirst($text),
7550                                           q{sysibm_function},
7551                                           $tracelevel)
7552                                                 if defined $::RD_TRACE;
7553                 $lastsep = "";
7554                 $expectation->is(q{})->at($text);
7555                 
7556
7557                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DEREF)//i)
7558                 {
7559                         
7560                         $expectation->failed();
7561                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7562                                                   Parse::RecDescent::_tracefirst($text))
7563                                         if defined $::RD_TRACE;
7564
7565                         last;
7566                 }
7567                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7568                                                 . $& . q{])},
7569                                                   Parse::RecDescent::_tracefirst($text))
7570                                         if defined $::RD_TRACE;
7571                 push @item, $item{__PATTERN1__}=$&;
7572                 
7573
7574
7575                 Parse::RecDescent::_trace(q{>>Matched production: [/DEREF/i]<<},
7576                                           Parse::RecDescent::_tracefirst($text),
7577                                           q{sysibm_function},
7578                                           $tracelevel)
7579                                                 if defined $::RD_TRACE;
7580                 $_matched = 1;
7581                 last;
7582         }
7583
7584
7585         while (!$_matched && !$commit)
7586         {
7587                 
7588                 Parse::RecDescent::_trace(q{Trying production: [/DIGITS/i]},
7589                                           Parse::RecDescent::_tracefirst($_[1]),
7590                                           q{sysibm_function},
7591                                           $tracelevel)
7592                                                 if defined $::RD_TRACE;
7593                 my $thisprod = $thisrule->{"prods"}[20];
7594                 $text = $_[1];
7595                 my $_savetext;
7596                 @item = (q{sysibm_function});
7597                 %item = (__RULE__ => q{sysibm_function});
7598                 my $repcount = 0;
7599
7600
7601                 Parse::RecDescent::_trace(q{Trying terminal: [/DIGITS/i]}, Parse::RecDescent::_tracefirst($text),
7602                                           q{sysibm_function},
7603                                           $tracelevel)
7604                                                 if defined $::RD_TRACE;
7605                 $lastsep = "";
7606                 $expectation->is(q{})->at($text);
7607                 
7608
7609                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DIGITS)//i)
7610                 {
7611                         
7612                         $expectation->failed();
7613                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7614                                                   Parse::RecDescent::_tracefirst($text))
7615                                         if defined $::RD_TRACE;
7616
7617                         last;
7618                 }
7619                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7620                                                 . $& . q{])},
7621                                                   Parse::RecDescent::_tracefirst($text))
7622                                         if defined $::RD_TRACE;
7623                 push @item, $item{__PATTERN1__}=$&;
7624                 
7625
7626
7627                 Parse::RecDescent::_trace(q{>>Matched production: [/DIGITS/i]<<},
7628                                           Parse::RecDescent::_tracefirst($text),
7629                                           q{sysibm_function},
7630                                           $tracelevel)
7631                                                 if defined $::RD_TRACE;
7632                 $_matched = 1;
7633                 last;
7634         }
7635
7636
7637         while (!$_matched && !$commit)
7638         {
7639                 
7640                 Parse::RecDescent::_trace(q{Trying production: [/DLCOMMENT/i]},
7641                                           Parse::RecDescent::_tracefirst($_[1]),
7642                                           q{sysibm_function},
7643                                           $tracelevel)
7644                                                 if defined $::RD_TRACE;
7645                 my $thisprod = $thisrule->{"prods"}[21];
7646                 $text = $_[1];
7647                 my $_savetext;
7648                 @item = (q{sysibm_function});
7649                 %item = (__RULE__ => q{sysibm_function});
7650                 my $repcount = 0;
7651
7652
7653                 Parse::RecDescent::_trace(q{Trying terminal: [/DLCOMMENT/i]}, Parse::RecDescent::_tracefirst($text),
7654                                           q{sysibm_function},
7655                                           $tracelevel)
7656                                                 if defined $::RD_TRACE;
7657                 $lastsep = "";
7658                 $expectation->is(q{})->at($text);
7659                 
7660
7661                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLCOMMENT)//i)
7662                 {
7663                         
7664                         $expectation->failed();
7665                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7666                                                   Parse::RecDescent::_tracefirst($text))
7667                                         if defined $::RD_TRACE;
7668
7669                         last;
7670                 }
7671                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7672                                                 . $& . q{])},
7673                                                   Parse::RecDescent::_tracefirst($text))
7674                                         if defined $::RD_TRACE;
7675                 push @item, $item{__PATTERN1__}=$&;
7676                 
7677
7678
7679                 Parse::RecDescent::_trace(q{>>Matched production: [/DLCOMMENT/i]<<},
7680                                           Parse::RecDescent::_tracefirst($text),
7681                                           q{sysibm_function},
7682                                           $tracelevel)
7683                                                 if defined $::RD_TRACE;
7684                 $_matched = 1;
7685                 last;
7686         }
7687
7688
7689         while (!$_matched && !$commit)
7690         {
7691                 
7692                 Parse::RecDescent::_trace(q{Trying production: [/DLLINKTYPE/i]},
7693                                           Parse::RecDescent::_tracefirst($_[1]),
7694                                           q{sysibm_function},
7695                                           $tracelevel)
7696                                                 if defined $::RD_TRACE;
7697                 my $thisprod = $thisrule->{"prods"}[22];
7698                 $text = $_[1];
7699                 my $_savetext;
7700                 @item = (q{sysibm_function});
7701                 %item = (__RULE__ => q{sysibm_function});
7702                 my $repcount = 0;
7703
7704
7705                 Parse::RecDescent::_trace(q{Trying terminal: [/DLLINKTYPE/i]}, Parse::RecDescent::_tracefirst($text),
7706                                           q{sysibm_function},
7707                                           $tracelevel)
7708                                                 if defined $::RD_TRACE;
7709                 $lastsep = "";
7710                 $expectation->is(q{})->at($text);
7711                 
7712
7713                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLLINKTYPE)//i)
7714                 {
7715                         
7716                         $expectation->failed();
7717                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7718                                                   Parse::RecDescent::_tracefirst($text))
7719                                         if defined $::RD_TRACE;
7720
7721                         last;
7722                 }
7723                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7724                                                 . $& . q{])},
7725                                                   Parse::RecDescent::_tracefirst($text))
7726                                         if defined $::RD_TRACE;
7727                 push @item, $item{__PATTERN1__}=$&;
7728                 
7729
7730
7731                 Parse::RecDescent::_trace(q{>>Matched production: [/DLLINKTYPE/i]<<},
7732                                           Parse::RecDescent::_tracefirst($text),
7733                                           q{sysibm_function},
7734                                           $tracelevel)
7735                                                 if defined $::RD_TRACE;
7736                 $_matched = 1;
7737                 last;
7738         }
7739
7740
7741         while (!$_matched && !$commit)
7742         {
7743                 
7744                 Parse::RecDescent::_trace(q{Trying production: [/DLURLCOMPLETE/i]},
7745                                           Parse::RecDescent::_tracefirst($_[1]),
7746                                           q{sysibm_function},
7747                                           $tracelevel)
7748                                                 if defined $::RD_TRACE;
7749                 my $thisprod = $thisrule->{"prods"}[23];
7750                 $text = $_[1];
7751                 my $_savetext;
7752                 @item = (q{sysibm_function});
7753                 %item = (__RULE__ => q{sysibm_function});
7754                 my $repcount = 0;
7755
7756
7757                 Parse::RecDescent::_trace(q{Trying terminal: [/DLURLCOMPLETE/i]}, Parse::RecDescent::_tracefirst($text),
7758                                           q{sysibm_function},
7759                                           $tracelevel)
7760                                                 if defined $::RD_TRACE;
7761                 $lastsep = "";
7762                 $expectation->is(q{})->at($text);
7763                 
7764
7765                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLCOMPLETE)//i)
7766                 {
7767                         
7768                         $expectation->failed();
7769                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7770                                                   Parse::RecDescent::_tracefirst($text))
7771                                         if defined $::RD_TRACE;
7772
7773                         last;
7774                 }
7775                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7776                                                 . $& . q{])},
7777                                                   Parse::RecDescent::_tracefirst($text))
7778                                         if defined $::RD_TRACE;
7779                 push @item, $item{__PATTERN1__}=$&;
7780                 
7781
7782
7783                 Parse::RecDescent::_trace(q{>>Matched production: [/DLURLCOMPLETE/i]<<},
7784                                           Parse::RecDescent::_tracefirst($text),
7785                                           q{sysibm_function},
7786                                           $tracelevel)
7787                                                 if defined $::RD_TRACE;
7788                 $_matched = 1;
7789                 last;
7790         }
7791
7792
7793         while (!$_matched && !$commit)
7794         {
7795                 
7796                 Parse::RecDescent::_trace(q{Trying production: [/DLURLPATH/i]},
7797                                           Parse::RecDescent::_tracefirst($_[1]),
7798                                           q{sysibm_function},
7799                                           $tracelevel)
7800                                                 if defined $::RD_TRACE;
7801                 my $thisprod = $thisrule->{"prods"}[24];
7802                 $text = $_[1];
7803                 my $_savetext;
7804                 @item = (q{sysibm_function});
7805                 %item = (__RULE__ => q{sysibm_function});
7806                 my $repcount = 0;
7807
7808
7809                 Parse::RecDescent::_trace(q{Trying terminal: [/DLURLPATH/i]}, Parse::RecDescent::_tracefirst($text),
7810                                           q{sysibm_function},
7811                                           $tracelevel)
7812                                                 if defined $::RD_TRACE;
7813                 $lastsep = "";
7814                 $expectation->is(q{})->at($text);
7815                 
7816
7817                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLPATH)//i)
7818                 {
7819                         
7820                         $expectation->failed();
7821                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7822                                                   Parse::RecDescent::_tracefirst($text))
7823                                         if defined $::RD_TRACE;
7824
7825                         last;
7826                 }
7827                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7828                                                 . $& . q{])},
7829                                                   Parse::RecDescent::_tracefirst($text))
7830                                         if defined $::RD_TRACE;
7831                 push @item, $item{__PATTERN1__}=$&;
7832                 
7833
7834
7835                 Parse::RecDescent::_trace(q{>>Matched production: [/DLURLPATH/i]<<},
7836                                           Parse::RecDescent::_tracefirst($text),
7837                                           q{sysibm_function},
7838                                           $tracelevel)
7839                                                 if defined $::RD_TRACE;
7840                 $_matched = 1;
7841                 last;
7842         }
7843
7844
7845         while (!$_matched && !$commit)
7846         {
7847                 
7848                 Parse::RecDescent::_trace(q{Trying production: [/DLURLPATHONLY/i]},
7849                                           Parse::RecDescent::_tracefirst($_[1]),
7850                                           q{sysibm_function},
7851                                           $tracelevel)
7852                                                 if defined $::RD_TRACE;
7853                 my $thisprod = $thisrule->{"prods"}[25];
7854                 $text = $_[1];
7855                 my $_savetext;
7856                 @item = (q{sysibm_function});
7857                 %item = (__RULE__ => q{sysibm_function});
7858                 my $repcount = 0;
7859
7860
7861                 Parse::RecDescent::_trace(q{Trying terminal: [/DLURLPATHONLY/i]}, Parse::RecDescent::_tracefirst($text),
7862                                           q{sysibm_function},
7863                                           $tracelevel)
7864                                                 if defined $::RD_TRACE;
7865                 $lastsep = "";
7866                 $expectation->is(q{})->at($text);
7867                 
7868
7869                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLPATHONLY)//i)
7870                 {
7871                         
7872                         $expectation->failed();
7873                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7874                                                   Parse::RecDescent::_tracefirst($text))
7875                                         if defined $::RD_TRACE;
7876
7877                         last;
7878                 }
7879                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7880                                                 . $& . q{])},
7881                                                   Parse::RecDescent::_tracefirst($text))
7882                                         if defined $::RD_TRACE;
7883                 push @item, $item{__PATTERN1__}=$&;
7884                 
7885
7886
7887                 Parse::RecDescent::_trace(q{>>Matched production: [/DLURLPATHONLY/i]<<},
7888                                           Parse::RecDescent::_tracefirst($text),
7889                                           q{sysibm_function},
7890                                           $tracelevel)
7891                                                 if defined $::RD_TRACE;
7892                 $_matched = 1;
7893                 last;
7894         }
7895
7896
7897         while (!$_matched && !$commit)
7898         {
7899                 
7900                 Parse::RecDescent::_trace(q{Trying production: [/DLURLSCHEME/i]},
7901                                           Parse::RecDescent::_tracefirst($_[1]),
7902                                           q{sysibm_function},
7903                                           $tracelevel)
7904                                                 if defined $::RD_TRACE;
7905                 my $thisprod = $thisrule->{"prods"}[26];
7906                 $text = $_[1];
7907                 my $_savetext;
7908                 @item = (q{sysibm_function});
7909                 %item = (__RULE__ => q{sysibm_function});
7910                 my $repcount = 0;
7911
7912
7913                 Parse::RecDescent::_trace(q{Trying terminal: [/DLURLSCHEME/i]}, Parse::RecDescent::_tracefirst($text),
7914                                           q{sysibm_function},
7915                                           $tracelevel)
7916                                                 if defined $::RD_TRACE;
7917                 $lastsep = "";
7918                 $expectation->is(q{})->at($text);
7919                 
7920
7921                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLSCHEME)//i)
7922                 {
7923                         
7924                         $expectation->failed();
7925                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7926                                                   Parse::RecDescent::_tracefirst($text))
7927                                         if defined $::RD_TRACE;
7928
7929                         last;
7930                 }
7931                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7932                                                 . $& . q{])},
7933                                                   Parse::RecDescent::_tracefirst($text))
7934                                         if defined $::RD_TRACE;
7935                 push @item, $item{__PATTERN1__}=$&;
7936                 
7937
7938
7939                 Parse::RecDescent::_trace(q{>>Matched production: [/DLURLSCHEME/i]<<},
7940                                           Parse::RecDescent::_tracefirst($text),
7941                                           q{sysibm_function},
7942                                           $tracelevel)
7943                                                 if defined $::RD_TRACE;
7944                 $_matched = 1;
7945                 last;
7946         }
7947
7948
7949         while (!$_matched && !$commit)
7950         {
7951                 
7952                 Parse::RecDescent::_trace(q{Trying production: [/DLURLSERVER/i]},
7953                                           Parse::RecDescent::_tracefirst($_[1]),
7954                                           q{sysibm_function},
7955                                           $tracelevel)
7956                                                 if defined $::RD_TRACE;
7957                 my $thisprod = $thisrule->{"prods"}[27];
7958                 $text = $_[1];
7959                 my $_savetext;
7960                 @item = (q{sysibm_function});
7961                 %item = (__RULE__ => q{sysibm_function});
7962                 my $repcount = 0;
7963
7964
7965                 Parse::RecDescent::_trace(q{Trying terminal: [/DLURLSERVER/i]}, Parse::RecDescent::_tracefirst($text),
7966                                           q{sysibm_function},
7967                                           $tracelevel)
7968                                                 if defined $::RD_TRACE;
7969                 $lastsep = "";
7970                 $expectation->is(q{})->at($text);
7971                 
7972
7973                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLSERVER)//i)
7974                 {
7975                         
7976                         $expectation->failed();
7977                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7978                                                   Parse::RecDescent::_tracefirst($text))
7979                                         if defined $::RD_TRACE;
7980
7981                         last;
7982                 }
7983                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7984                                                 . $& . q{])},
7985                                                   Parse::RecDescent::_tracefirst($text))
7986                                         if defined $::RD_TRACE;
7987                 push @item, $item{__PATTERN1__}=$&;
7988                 
7989
7990
7991                 Parse::RecDescent::_trace(q{>>Matched production: [/DLURLSERVER/i]<<},
7992                                           Parse::RecDescent::_tracefirst($text),
7993                                           q{sysibm_function},
7994                                           $tracelevel)
7995                                                 if defined $::RD_TRACE;
7996                 $_matched = 1;
7997                 last;
7998         }
7999
8000
8001         while (!$_matched && !$commit)
8002         {
8003                 
8004                 Parse::RecDescent::_trace(q{Trying production: [/DLVALUE/i]},
8005                                           Parse::RecDescent::_tracefirst($_[1]),
8006                                           q{sysibm_function},
8007                                           $tracelevel)
8008                                                 if defined $::RD_TRACE;
8009                 my $thisprod = $thisrule->{"prods"}[28];
8010                 $text = $_[1];
8011                 my $_savetext;
8012                 @item = (q{sysibm_function});
8013                 %item = (__RULE__ => q{sysibm_function});
8014                 my $repcount = 0;
8015
8016
8017                 Parse::RecDescent::_trace(q{Trying terminal: [/DLVALUE/i]}, Parse::RecDescent::_tracefirst($text),
8018                                           q{sysibm_function},
8019                                           $tracelevel)
8020                                                 if defined $::RD_TRACE;
8021                 $lastsep = "";
8022                 $expectation->is(q{})->at($text);
8023                 
8024
8025                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLVALUE)//i)
8026                 {
8027                         
8028                         $expectation->failed();
8029                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8030                                                   Parse::RecDescent::_tracefirst($text))
8031                                         if defined $::RD_TRACE;
8032
8033                         last;
8034                 }
8035                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8036                                                 . $& . q{])},
8037                                                   Parse::RecDescent::_tracefirst($text))
8038                                         if defined $::RD_TRACE;
8039                 push @item, $item{__PATTERN1__}=$&;
8040                 
8041
8042
8043                 Parse::RecDescent::_trace(q{>>Matched production: [/DLVALUE/i]<<},
8044                                           Parse::RecDescent::_tracefirst($text),
8045                                           q{sysibm_function},
8046                                           $tracelevel)
8047                                                 if defined $::RD_TRACE;
8048                 $_matched = 1;
8049                 last;
8050         }
8051
8052
8053         while (!$_matched && !$commit)
8054         {
8055                 
8056                 Parse::RecDescent::_trace(q{Trying production: [/DOUBLE/i, or /DOUBLE_PRECISION/i]},
8057                                           Parse::RecDescent::_tracefirst($_[1]),
8058                                           q{sysibm_function},
8059                                           $tracelevel)
8060                                                 if defined $::RD_TRACE;
8061                 my $thisprod = $thisrule->{"prods"}[29];
8062                 $text = $_[1];
8063                 my $_savetext;
8064                 @item = (q{sysibm_function});
8065                 %item = (__RULE__ => q{sysibm_function});
8066                 my $repcount = 0;
8067
8068
8069                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_30_of_rule_sysibm_function]},
8070                                   Parse::RecDescent::_tracefirst($text),
8071                                   q{sysibm_function},
8072                                   $tracelevel)
8073                                         if defined $::RD_TRACE;
8074                 if (1) { no strict qw{refs};
8075                 $expectation->is(q{})->at($text);
8076                 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 })))
8077                 {
8078                         
8079                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_30_of_rule_sysibm_function]>>},
8080                                                   Parse::RecDescent::_tracefirst($text),
8081                                                   q{sysibm_function},
8082                                                   $tracelevel)
8083                                                         if defined $::RD_TRACE;
8084                         $expectation->failed();
8085                         last;
8086                 }
8087                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_30_of_rule_sysibm_function]<< (return value: [}
8088                                         . $_tok . q{]},
8089                                           
8090                                           Parse::RecDescent::_tracefirst($text),
8091                                           q{sysibm_function},
8092                                           $tracelevel)
8093                                                 if defined $::RD_TRACE;
8094                 $item{q{_alternation_1_of_production_30_of_rule_sysibm_function}} = $_tok;
8095                 push @item, $_tok;
8096                 
8097                 }
8098
8099
8100                 Parse::RecDescent::_trace(q{>>Matched production: [/DOUBLE/i, or /DOUBLE_PRECISION/i]<<},
8101                                           Parse::RecDescent::_tracefirst($text),
8102                                           q{sysibm_function},
8103                                           $tracelevel)
8104                                                 if defined $::RD_TRACE;
8105                 $_matched = 1;
8106                 last;
8107         }
8108
8109
8110         while (!$_matched && !$commit)
8111         {
8112                 
8113                 Parse::RecDescent::_trace(q{Trying production: [/ENCRYPT/i]},
8114                                           Parse::RecDescent::_tracefirst($_[1]),
8115                                           q{sysibm_function},
8116                                           $tracelevel)
8117                                                 if defined $::RD_TRACE;
8118                 my $thisprod = $thisrule->{"prods"}[30];
8119                 $text = $_[1];
8120                 my $_savetext;
8121                 @item = (q{sysibm_function});
8122                 %item = (__RULE__ => q{sysibm_function});
8123                 my $repcount = 0;
8124
8125
8126                 Parse::RecDescent::_trace(q{Trying terminal: [/ENCRYPT/i]}, Parse::RecDescent::_tracefirst($text),
8127                                           q{sysibm_function},
8128                                           $tracelevel)
8129                                                 if defined $::RD_TRACE;
8130                 $lastsep = "";
8131                 $expectation->is(q{})->at($text);
8132                 
8133
8134                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ENCRYPT)//i)
8135                 {
8136                         
8137                         $expectation->failed();
8138                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8139                                                   Parse::RecDescent::_tracefirst($text))
8140                                         if defined $::RD_TRACE;
8141
8142                         last;
8143                 }
8144                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8145                                                 . $& . q{])},
8146                                                   Parse::RecDescent::_tracefirst($text))
8147                                         if defined $::RD_TRACE;
8148                 push @item, $item{__PATTERN1__}=$&;
8149                 
8150
8151
8152                 Parse::RecDescent::_trace(q{>>Matched production: [/ENCRYPT/i]<<},
8153                                           Parse::RecDescent::_tracefirst($text),
8154                                           q{sysibm_function},
8155                                           $tracelevel)
8156                                                 if defined $::RD_TRACE;
8157                 $_matched = 1;
8158                 last;
8159         }
8160
8161
8162         while (!$_matched && !$commit)
8163         {
8164                 
8165                 Parse::RecDescent::_trace(q{Trying production: [/EVENT_MON_STATE/i]},
8166                                           Parse::RecDescent::_tracefirst($_[1]),
8167                                           q{sysibm_function},
8168                                           $tracelevel)
8169                                                 if defined $::RD_TRACE;
8170                 my $thisprod = $thisrule->{"prods"}[31];
8171                 $text = $_[1];
8172                 my $_savetext;
8173                 @item = (q{sysibm_function});
8174                 %item = (__RULE__ => q{sysibm_function});
8175                 my $repcount = 0;
8176
8177
8178                 Parse::RecDescent::_trace(q{Trying terminal: [/EVENT_MON_STATE/i]}, Parse::RecDescent::_tracefirst($text),
8179                                           q{sysibm_function},
8180                                           $tracelevel)
8181                                                 if defined $::RD_TRACE;
8182                 $lastsep = "";
8183                 $expectation->is(q{})->at($text);
8184                 
8185
8186                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:EVENT_MON_STATE)//i)
8187                 {
8188                         
8189                         $expectation->failed();
8190                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8191                                                   Parse::RecDescent::_tracefirst($text))
8192                                         if defined $::RD_TRACE;
8193
8194                         last;
8195                 }
8196                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8197                                                 . $& . q{])},
8198                                                   Parse::RecDescent::_tracefirst($text))
8199                                         if defined $::RD_TRACE;
8200                 push @item, $item{__PATTERN1__}=$&;
8201                 
8202
8203
8204                 Parse::RecDescent::_trace(q{>>Matched production: [/EVENT_MON_STATE/i]<<},
8205                                           Parse::RecDescent::_tracefirst($text),
8206                                           q{sysibm_function},
8207                                           $tracelevel)
8208                                                 if defined $::RD_TRACE;
8209                 $_matched = 1;
8210                 last;
8211         }
8212
8213
8214         while (!$_matched && !$commit)
8215         {
8216                 
8217                 Parse::RecDescent::_trace(q{Trying production: [/FLOAT/i]},
8218                                           Parse::RecDescent::_tracefirst($_[1]),
8219                                           q{sysibm_function},
8220                                           $tracelevel)
8221                                                 if defined $::RD_TRACE;
8222                 my $thisprod = $thisrule->{"prods"}[32];
8223                 $text = $_[1];
8224                 my $_savetext;
8225                 @item = (q{sysibm_function});
8226                 %item = (__RULE__ => q{sysibm_function});
8227                 my $repcount = 0;
8228
8229
8230                 Parse::RecDescent::_trace(q{Trying terminal: [/FLOAT/i]}, Parse::RecDescent::_tracefirst($text),
8231                                           q{sysibm_function},
8232                                           $tracelevel)
8233                                                 if defined $::RD_TRACE;
8234                 $lastsep = "";
8235                 $expectation->is(q{})->at($text);
8236                 
8237
8238                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FLOAT)//i)
8239                 {
8240                         
8241                         $expectation->failed();
8242                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8243                                                   Parse::RecDescent::_tracefirst($text))
8244                                         if defined $::RD_TRACE;
8245
8246                         last;
8247                 }
8248                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8249                                                 . $& . q{])},
8250                                                   Parse::RecDescent::_tracefirst($text))
8251                                         if defined $::RD_TRACE;
8252                 push @item, $item{__PATTERN1__}=$&;
8253                 
8254
8255
8256                 Parse::RecDescent::_trace(q{>>Matched production: [/FLOAT/i]<<},
8257                                           Parse::RecDescent::_tracefirst($text),
8258                                           q{sysibm_function},
8259                                           $tracelevel)
8260                                                 if defined $::RD_TRACE;
8261                 $_matched = 1;
8262                 last;
8263         }
8264
8265
8266         while (!$_matched && !$commit)
8267         {
8268                 
8269                 Parse::RecDescent::_trace(q{Trying production: [/GETHINT/i]},
8270                                           Parse::RecDescent::_tracefirst($_[1]),
8271                                           q{sysibm_function},
8272                                           $tracelevel)
8273                                                 if defined $::RD_TRACE;
8274                 my $thisprod = $thisrule->{"prods"}[33];
8275                 $text = $_[1];
8276                 my $_savetext;
8277                 @item = (q{sysibm_function});
8278                 %item = (__RULE__ => q{sysibm_function});
8279                 my $repcount = 0;
8280
8281
8282                 Parse::RecDescent::_trace(q{Trying terminal: [/GETHINT/i]}, Parse::RecDescent::_tracefirst($text),
8283                                           q{sysibm_function},
8284                                           $tracelevel)
8285                                                 if defined $::RD_TRACE;
8286                 $lastsep = "";
8287                 $expectation->is(q{})->at($text);
8288                 
8289
8290                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GETHINT)//i)
8291                 {
8292                         
8293                         $expectation->failed();
8294                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8295                                                   Parse::RecDescent::_tracefirst($text))
8296                                         if defined $::RD_TRACE;
8297
8298                         last;
8299                 }
8300                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8301                                                 . $& . q{])},
8302                                                   Parse::RecDescent::_tracefirst($text))
8303                                         if defined $::RD_TRACE;
8304                 push @item, $item{__PATTERN1__}=$&;
8305                 
8306
8307
8308                 Parse::RecDescent::_trace(q{>>Matched production: [/GETHINT/i]<<},
8309                                           Parse::RecDescent::_tracefirst($text),
8310                                           q{sysibm_function},
8311                                           $tracelevel)
8312                                                 if defined $::RD_TRACE;
8313                 $_matched = 1;
8314                 last;
8315         }
8316
8317
8318         while (!$_matched && !$commit)
8319         {
8320                 
8321                 Parse::RecDescent::_trace(q{Trying production: [/GENERATE_UNIQUE/i]},
8322                                           Parse::RecDescent::_tracefirst($_[1]),
8323                                           q{sysibm_function},
8324                                           $tracelevel)
8325                                                 if defined $::RD_TRACE;
8326                 my $thisprod = $thisrule->{"prods"}[34];
8327                 $text = $_[1];
8328                 my $_savetext;
8329                 @item = (q{sysibm_function});
8330                 %item = (__RULE__ => q{sysibm_function});
8331                 my $repcount = 0;
8332
8333
8334                 Parse::RecDescent::_trace(q{Trying terminal: [/GENERATE_UNIQUE/i]}, Parse::RecDescent::_tracefirst($text),
8335                                           q{sysibm_function},
8336                                           $tracelevel)
8337                                                 if defined $::RD_TRACE;
8338                 $lastsep = "";
8339                 $expectation->is(q{})->at($text);
8340                 
8341
8342                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GENERATE_UNIQUE)//i)
8343                 {
8344                         
8345                         $expectation->failed();
8346                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8347                                                   Parse::RecDescent::_tracefirst($text))
8348                                         if defined $::RD_TRACE;
8349
8350                         last;
8351                 }
8352                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8353                                                 . $& . q{])},
8354                                                   Parse::RecDescent::_tracefirst($text))
8355                                         if defined $::RD_TRACE;
8356                 push @item, $item{__PATTERN1__}=$&;
8357                 
8358
8359
8360                 Parse::RecDescent::_trace(q{>>Matched production: [/GENERATE_UNIQUE/i]<<},
8361                                           Parse::RecDescent::_tracefirst($text),
8362                                           q{sysibm_function},
8363                                           $tracelevel)
8364                                                 if defined $::RD_TRACE;
8365                 $_matched = 1;
8366                 last;
8367         }
8368
8369
8370         while (!$_matched && !$commit)
8371         {
8372                 
8373                 Parse::RecDescent::_trace(q{Trying production: [/GRAPHIC/i]},
8374                                           Parse::RecDescent::_tracefirst($_[1]),
8375                                           q{sysibm_function},
8376                                           $tracelevel)
8377                                                 if defined $::RD_TRACE;
8378                 my $thisprod = $thisrule->{"prods"}[35];
8379                 $text = $_[1];
8380                 my $_savetext;
8381                 @item = (q{sysibm_function});
8382                 %item = (__RULE__ => q{sysibm_function});
8383                 my $repcount = 0;
8384
8385
8386                 Parse::RecDescent::_trace(q{Trying terminal: [/GRAPHIC/i]}, Parse::RecDescent::_tracefirst($text),
8387                                           q{sysibm_function},
8388                                           $tracelevel)
8389                                                 if defined $::RD_TRACE;
8390                 $lastsep = "";
8391                 $expectation->is(q{})->at($text);
8392                 
8393
8394                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GRAPHIC)//i)
8395                 {
8396                         
8397                         $expectation->failed();
8398                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8399                                                   Parse::RecDescent::_tracefirst($text))
8400                                         if defined $::RD_TRACE;
8401
8402                         last;
8403                 }
8404                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8405                                                 . $& . q{])},
8406                                                   Parse::RecDescent::_tracefirst($text))
8407                                         if defined $::RD_TRACE;
8408                 push @item, $item{__PATTERN1__}=$&;
8409                 
8410
8411
8412                 Parse::RecDescent::_trace(q{>>Matched production: [/GRAPHIC/i]<<},
8413                                           Parse::RecDescent::_tracefirst($text),
8414                                           q{sysibm_function},
8415                                           $tracelevel)
8416                                                 if defined $::RD_TRACE;
8417                 $_matched = 1;
8418                 last;
8419         }
8420
8421
8422         while (!$_matched && !$commit)
8423         {
8424                 
8425                 Parse::RecDescent::_trace(q{Trying production: [/GROUPING/i]},
8426                                           Parse::RecDescent::_tracefirst($_[1]),
8427                                           q{sysibm_function},
8428                                           $tracelevel)
8429                                                 if defined $::RD_TRACE;
8430                 my $thisprod = $thisrule->{"prods"}[36];
8431                 $text = $_[1];
8432                 my $_savetext;
8433                 @item = (q{sysibm_function});
8434                 %item = (__RULE__ => q{sysibm_function});
8435                 my $repcount = 0;
8436
8437
8438                 Parse::RecDescent::_trace(q{Trying terminal: [/GROUPING/i]}, Parse::RecDescent::_tracefirst($text),
8439                                           q{sysibm_function},
8440                                           $tracelevel)
8441                                                 if defined $::RD_TRACE;
8442                 $lastsep = "";
8443                 $expectation->is(q{})->at($text);
8444                 
8445
8446                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GROUPING)//i)
8447                 {
8448                         
8449                         $expectation->failed();
8450                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8451                                                   Parse::RecDescent::_tracefirst($text))
8452                                         if defined $::RD_TRACE;
8453
8454                         last;
8455                 }
8456                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8457                                                 . $& . q{])},
8458                                                   Parse::RecDescent::_tracefirst($text))
8459                                         if defined $::RD_TRACE;
8460                 push @item, $item{__PATTERN1__}=$&;
8461                 
8462
8463
8464                 Parse::RecDescent::_trace(q{>>Matched production: [/GROUPING/i]<<},
8465                                           Parse::RecDescent::_tracefirst($text),
8466                                           q{sysibm_function},
8467                                           $tracelevel)
8468                                                 if defined $::RD_TRACE;
8469                 $_matched = 1;
8470                 last;
8471         }
8472
8473
8474         while (!$_matched && !$commit)
8475         {
8476                 
8477                 Parse::RecDescent::_trace(q{Trying production: [/HEX/i]},
8478                                           Parse::RecDescent::_tracefirst($_[1]),
8479                                           q{sysibm_function},
8480                                           $tracelevel)
8481                                                 if defined $::RD_TRACE;
8482                 my $thisprod = $thisrule->{"prods"}[37];
8483                 $text = $_[1];
8484                 my $_savetext;
8485                 @item = (q{sysibm_function});
8486                 %item = (__RULE__ => q{sysibm_function});
8487                 my $repcount = 0;
8488
8489
8490                 Parse::RecDescent::_trace(q{Trying terminal: [/HEX/i]}, Parse::RecDescent::_tracefirst($text),
8491                                           q{sysibm_function},
8492                                           $tracelevel)
8493                                                 if defined $::RD_TRACE;
8494                 $lastsep = "";
8495                 $expectation->is(q{})->at($text);
8496                 
8497
8498                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:HEX)//i)
8499                 {
8500                         
8501                         $expectation->failed();
8502                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8503                                                   Parse::RecDescent::_tracefirst($text))
8504                                         if defined $::RD_TRACE;
8505
8506                         last;
8507                 }
8508                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8509                                                 . $& . q{])},
8510                                                   Parse::RecDescent::_tracefirst($text))
8511                                         if defined $::RD_TRACE;
8512                 push @item, $item{__PATTERN1__}=$&;
8513                 
8514
8515
8516                 Parse::RecDescent::_trace(q{>>Matched production: [/HEX/i]<<},
8517                                           Parse::RecDescent::_tracefirst($text),
8518                                           q{sysibm_function},
8519                                           $tracelevel)
8520                                                 if defined $::RD_TRACE;
8521                 $_matched = 1;
8522                 last;
8523         }
8524
8525
8526         while (!$_matched && !$commit)
8527         {
8528                 
8529                 Parse::RecDescent::_trace(q{Trying production: [/HOUR/i]},
8530                                           Parse::RecDescent::_tracefirst($_[1]),
8531                                           q{sysibm_function},
8532                                           $tracelevel)
8533                                                 if defined $::RD_TRACE;
8534                 my $thisprod = $thisrule->{"prods"}[38];
8535                 $text = $_[1];
8536                 my $_savetext;
8537                 @item = (q{sysibm_function});
8538                 %item = (__RULE__ => q{sysibm_function});
8539                 my $repcount = 0;
8540
8541
8542                 Parse::RecDescent::_trace(q{Trying terminal: [/HOUR/i]}, Parse::RecDescent::_tracefirst($text),
8543                                           q{sysibm_function},
8544                                           $tracelevel)
8545                                                 if defined $::RD_TRACE;
8546                 $lastsep = "";
8547                 $expectation->is(q{})->at($text);
8548                 
8549
8550                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:HOUR)//i)
8551                 {
8552                         
8553                         $expectation->failed();
8554                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8555                                                   Parse::RecDescent::_tracefirst($text))
8556                                         if defined $::RD_TRACE;
8557
8558                         last;
8559                 }
8560                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8561                                                 . $& . q{])},
8562                                                   Parse::RecDescent::_tracefirst($text))
8563                                         if defined $::RD_TRACE;
8564                 push @item, $item{__PATTERN1__}=$&;
8565                 
8566
8567
8568                 Parse::RecDescent::_trace(q{>>Matched production: [/HOUR/i]<<},
8569                                           Parse::RecDescent::_tracefirst($text),
8570                                           q{sysibm_function},
8571                                           $tracelevel)
8572                                                 if defined $::RD_TRACE;
8573                 $_matched = 1;
8574                 last;
8575         }
8576
8577
8578         while (!$_matched && !$commit)
8579         {
8580                 
8581                 Parse::RecDescent::_trace(q{Trying production: [/IDENTITY_VAL_LOCAL/i]},
8582                                           Parse::RecDescent::_tracefirst($_[1]),
8583                                           q{sysibm_function},
8584                                           $tracelevel)
8585                                                 if defined $::RD_TRACE;
8586                 my $thisprod = $thisrule->{"prods"}[39];
8587                 $text = $_[1];
8588                 my $_savetext;
8589                 @item = (q{sysibm_function});
8590                 %item = (__RULE__ => q{sysibm_function});
8591                 my $repcount = 0;
8592
8593
8594                 Parse::RecDescent::_trace(q{Trying terminal: [/IDENTITY_VAL_LOCAL/i]}, Parse::RecDescent::_tracefirst($text),
8595                                           q{sysibm_function},
8596                                           $tracelevel)
8597                                                 if defined $::RD_TRACE;
8598                 $lastsep = "";
8599                 $expectation->is(q{})->at($text);
8600                 
8601
8602                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:IDENTITY_VAL_LOCAL)//i)
8603                 {
8604                         
8605                         $expectation->failed();
8606                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8607                                                   Parse::RecDescent::_tracefirst($text))
8608                                         if defined $::RD_TRACE;
8609
8610                         last;
8611                 }
8612                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8613                                                 . $& . q{])},
8614                                                   Parse::RecDescent::_tracefirst($text))
8615                                         if defined $::RD_TRACE;
8616                 push @item, $item{__PATTERN1__}=$&;
8617                 
8618
8619
8620                 Parse::RecDescent::_trace(q{>>Matched production: [/IDENTITY_VAL_LOCAL/i]<<},
8621                                           Parse::RecDescent::_tracefirst($text),
8622                                           q{sysibm_function},
8623                                           $tracelevel)
8624                                                 if defined $::RD_TRACE;
8625                 $_matched = 1;
8626                 last;
8627         }
8628
8629
8630         while (!$_matched && !$commit)
8631         {
8632                 
8633                 Parse::RecDescent::_trace(q{Trying production: [/INTEGER/i, or /INT/]},
8634                                           Parse::RecDescent::_tracefirst($_[1]),
8635                                           q{sysibm_function},
8636                                           $tracelevel)
8637                                                 if defined $::RD_TRACE;
8638                 my $thisprod = $thisrule->{"prods"}[40];
8639                 $text = $_[1];
8640                 my $_savetext;
8641                 @item = (q{sysibm_function});
8642                 %item = (__RULE__ => q{sysibm_function});
8643                 my $repcount = 0;
8644
8645
8646                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_41_of_rule_sysibm_function]},
8647                                   Parse::RecDescent::_tracefirst($text),
8648                                   q{sysibm_function},
8649                                   $tracelevel)
8650                                         if defined $::RD_TRACE;
8651                 if (1) { no strict qw{refs};
8652                 $expectation->is(q{})->at($text);
8653                 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 })))
8654                 {
8655                         
8656                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_41_of_rule_sysibm_function]>>},
8657                                                   Parse::RecDescent::_tracefirst($text),
8658                                                   q{sysibm_function},
8659                                                   $tracelevel)
8660                                                         if defined $::RD_TRACE;
8661                         $expectation->failed();
8662                         last;
8663                 }
8664                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_41_of_rule_sysibm_function]<< (return value: [}
8665                                         . $_tok . q{]},
8666                                           
8667                                           Parse::RecDescent::_tracefirst($text),
8668                                           q{sysibm_function},
8669                                           $tracelevel)
8670                                                 if defined $::RD_TRACE;
8671                 $item{q{_alternation_1_of_production_41_of_rule_sysibm_function}} = $_tok;
8672                 push @item, $_tok;
8673                 
8674                 }
8675
8676
8677                 Parse::RecDescent::_trace(q{>>Matched production: [/INTEGER/i, or /INT/]<<},
8678                                           Parse::RecDescent::_tracefirst($text),
8679                                           q{sysibm_function},
8680                                           $tracelevel)
8681                                                 if defined $::RD_TRACE;
8682                 $_matched = 1;
8683                 last;
8684         }
8685
8686
8687         while (!$_matched && !$commit)
8688         {
8689                 
8690                 Parse::RecDescent::_trace(q{Trying production: [/LCASE/i, or /LOWER/]},
8691                                           Parse::RecDescent::_tracefirst($_[1]),
8692                                           q{sysibm_function},
8693                                           $tracelevel)
8694                                                 if defined $::RD_TRACE;
8695                 my $thisprod = $thisrule->{"prods"}[41];
8696                 $text = $_[1];
8697                 my $_savetext;
8698                 @item = (q{sysibm_function});
8699                 %item = (__RULE__ => q{sysibm_function});
8700                 my $repcount = 0;
8701
8702
8703                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_42_of_rule_sysibm_function]},
8704                                   Parse::RecDescent::_tracefirst($text),
8705                                   q{sysibm_function},
8706                                   $tracelevel)
8707                                         if defined $::RD_TRACE;
8708                 if (1) { no strict qw{refs};
8709                 $expectation->is(q{})->at($text);
8710                 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 })))
8711                 {
8712                         
8713                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_42_of_rule_sysibm_function]>>},
8714                                                   Parse::RecDescent::_tracefirst($text),
8715                                                   q{sysibm_function},
8716                                                   $tracelevel)
8717                                                         if defined $::RD_TRACE;
8718                         $expectation->failed();
8719                         last;
8720                 }
8721                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_42_of_rule_sysibm_function]<< (return value: [}
8722                                         . $_tok . q{]},
8723                                           
8724                                           Parse::RecDescent::_tracefirst($text),
8725                                           q{sysibm_function},
8726                                           $tracelevel)
8727                                                 if defined $::RD_TRACE;
8728                 $item{q{_alternation_1_of_production_42_of_rule_sysibm_function}} = $_tok;
8729                 push @item, $_tok;
8730                 
8731                 }
8732
8733
8734                 Parse::RecDescent::_trace(q{>>Matched production: [/LCASE/i, or /LOWER/]<<},
8735                                           Parse::RecDescent::_tracefirst($text),
8736                                           q{sysibm_function},
8737                                           $tracelevel)
8738                                                 if defined $::RD_TRACE;
8739                 $_matched = 1;
8740                 last;
8741         }
8742
8743
8744         while (!$_matched && !$commit)
8745         {
8746                 
8747                 Parse::RecDescent::_trace(q{Trying production: [/LENGTH/i]},
8748                                           Parse::RecDescent::_tracefirst($_[1]),
8749                                           q{sysibm_function},
8750                                           $tracelevel)
8751                                                 if defined $::RD_TRACE;
8752                 my $thisprod = $thisrule->{"prods"}[42];
8753                 $text = $_[1];
8754                 my $_savetext;
8755                 @item = (q{sysibm_function});
8756                 %item = (__RULE__ => q{sysibm_function});
8757                 my $repcount = 0;
8758
8759
8760                 Parse::RecDescent::_trace(q{Trying terminal: [/LENGTH/i]}, Parse::RecDescent::_tracefirst($text),
8761                                           q{sysibm_function},
8762                                           $tracelevel)
8763                                                 if defined $::RD_TRACE;
8764                 $lastsep = "";
8765                 $expectation->is(q{})->at($text);
8766                 
8767
8768                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LENGTH)//i)
8769                 {
8770                         
8771                         $expectation->failed();
8772                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8773                                                   Parse::RecDescent::_tracefirst($text))
8774                                         if defined $::RD_TRACE;
8775
8776                         last;
8777                 }
8778                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8779                                                 . $& . q{])},
8780                                                   Parse::RecDescent::_tracefirst($text))
8781                                         if defined $::RD_TRACE;
8782                 push @item, $item{__PATTERN1__}=$&;
8783                 
8784
8785
8786                 Parse::RecDescent::_trace(q{>>Matched production: [/LENGTH/i]<<},
8787                                           Parse::RecDescent::_tracefirst($text),
8788                                           q{sysibm_function},
8789                                           $tracelevel)
8790                                                 if defined $::RD_TRACE;
8791                 $_matched = 1;
8792                 last;
8793         }
8794
8795
8796         while (!$_matched && !$commit)
8797         {
8798                 
8799                 Parse::RecDescent::_trace(q{Trying production: [/LONG_VARCHAR/i]},
8800                                           Parse::RecDescent::_tracefirst($_[1]),
8801                                           q{sysibm_function},
8802                                           $tracelevel)
8803                                                 if defined $::RD_TRACE;
8804                 my $thisprod = $thisrule->{"prods"}[43];
8805                 $text = $_[1];
8806                 my $_savetext;
8807                 @item = (q{sysibm_function});
8808                 %item = (__RULE__ => q{sysibm_function});
8809                 my $repcount = 0;
8810
8811
8812                 Parse::RecDescent::_trace(q{Trying terminal: [/LONG_VARCHAR/i]}, Parse::RecDescent::_tracefirst($text),
8813                                           q{sysibm_function},
8814                                           $tracelevel)
8815                                                 if defined $::RD_TRACE;
8816                 $lastsep = "";
8817                 $expectation->is(q{})->at($text);
8818                 
8819
8820                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LONG_VARCHAR)//i)
8821                 {
8822                         
8823                         $expectation->failed();
8824                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8825                                                   Parse::RecDescent::_tracefirst($text))
8826                                         if defined $::RD_TRACE;
8827
8828                         last;
8829                 }
8830                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8831                                                 . $& . q{])},
8832                                                   Parse::RecDescent::_tracefirst($text))
8833                                         if defined $::RD_TRACE;
8834                 push @item, $item{__PATTERN1__}=$&;
8835                 
8836
8837
8838                 Parse::RecDescent::_trace(q{>>Matched production: [/LONG_VARCHAR/i]<<},
8839                                           Parse::RecDescent::_tracefirst($text),
8840                                           q{sysibm_function},
8841                                           $tracelevel)
8842                                                 if defined $::RD_TRACE;
8843                 $_matched = 1;
8844                 last;
8845         }
8846
8847
8848         while (!$_matched && !$commit)
8849         {
8850                 
8851                 Parse::RecDescent::_trace(q{Trying production: [/LONG_VARGRAPHIC/i]},
8852                                           Parse::RecDescent::_tracefirst($_[1]),
8853                                           q{sysibm_function},
8854                                           $tracelevel)
8855                                                 if defined $::RD_TRACE;
8856                 my $thisprod = $thisrule->{"prods"}[44];
8857                 $text = $_[1];
8858                 my $_savetext;
8859                 @item = (q{sysibm_function});
8860                 %item = (__RULE__ => q{sysibm_function});
8861                 my $repcount = 0;
8862
8863
8864                 Parse::RecDescent::_trace(q{Trying terminal: [/LONG_VARGRAPHIC/i]}, Parse::RecDescent::_tracefirst($text),
8865                                           q{sysibm_function},
8866                                           $tracelevel)
8867                                                 if defined $::RD_TRACE;
8868                 $lastsep = "";
8869                 $expectation->is(q{})->at($text);
8870                 
8871
8872                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LONG_VARGRAPHIC)//i)
8873                 {
8874                         
8875                         $expectation->failed();
8876                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8877                                                   Parse::RecDescent::_tracefirst($text))
8878                                         if defined $::RD_TRACE;
8879
8880                         last;
8881                 }
8882                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8883                                                 . $& . q{])},
8884                                                   Parse::RecDescent::_tracefirst($text))
8885                                         if defined $::RD_TRACE;
8886                 push @item, $item{__PATTERN1__}=$&;
8887                 
8888
8889
8890                 Parse::RecDescent::_trace(q{>>Matched production: [/LONG_VARGRAPHIC/i]<<},
8891                                           Parse::RecDescent::_tracefirst($text),
8892                                           q{sysibm_function},
8893                                           $tracelevel)
8894                                                 if defined $::RD_TRACE;
8895                 $_matched = 1;
8896                 last;
8897         }
8898
8899
8900         while (!$_matched && !$commit)
8901         {
8902                 
8903                 Parse::RecDescent::_trace(q{Trying production: [/LTRIM/i]},
8904                                           Parse::RecDescent::_tracefirst($_[1]),
8905                                           q{sysibm_function},
8906                                           $tracelevel)
8907                                                 if defined $::RD_TRACE;
8908                 my $thisprod = $thisrule->{"prods"}[45];
8909                 $text = $_[1];
8910                 my $_savetext;
8911                 @item = (q{sysibm_function});
8912                 %item = (__RULE__ => q{sysibm_function});
8913                 my $repcount = 0;
8914
8915
8916                 Parse::RecDescent::_trace(q{Trying terminal: [/LTRIM/i]}, Parse::RecDescent::_tracefirst($text),
8917                                           q{sysibm_function},
8918                                           $tracelevel)
8919                                                 if defined $::RD_TRACE;
8920                 $lastsep = "";
8921                 $expectation->is(q{})->at($text);
8922                 
8923
8924                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LTRIM)//i)
8925                 {
8926                         
8927                         $expectation->failed();
8928                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8929                                                   Parse::RecDescent::_tracefirst($text))
8930                                         if defined $::RD_TRACE;
8931
8932                         last;
8933                 }
8934                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8935                                                 . $& . q{])},
8936                                                   Parse::RecDescent::_tracefirst($text))
8937                                         if defined $::RD_TRACE;
8938                 push @item, $item{__PATTERN1__}=$&;
8939                 
8940
8941
8942                 Parse::RecDescent::_trace(q{>>Matched production: [/LTRIM/i]<<},
8943                                           Parse::RecDescent::_tracefirst($text),
8944                                           q{sysibm_function},
8945                                           $tracelevel)
8946                                                 if defined $::RD_TRACE;
8947                 $_matched = 1;
8948                 last;
8949         }
8950
8951
8952         while (!$_matched && !$commit)
8953         {
8954                 
8955                 Parse::RecDescent::_trace(q{Trying production: [/MAX/i]},
8956                                           Parse::RecDescent::_tracefirst($_[1]),
8957                                           q{sysibm_function},
8958                                           $tracelevel)
8959                                                 if defined $::RD_TRACE;
8960                 my $thisprod = $thisrule->{"prods"}[46];
8961                 $text = $_[1];
8962                 my $_savetext;
8963                 @item = (q{sysibm_function});
8964                 %item = (__RULE__ => q{sysibm_function});
8965                 my $repcount = 0;
8966
8967
8968                 Parse::RecDescent::_trace(q{Trying terminal: [/MAX/i]}, Parse::RecDescent::_tracefirst($text),
8969                                           q{sysibm_function},
8970                                           $tracelevel)
8971                                                 if defined $::RD_TRACE;
8972                 $lastsep = "";
8973                 $expectation->is(q{})->at($text);
8974                 
8975
8976                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MAX)//i)
8977                 {
8978                         
8979                         $expectation->failed();
8980                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8981                                                   Parse::RecDescent::_tracefirst($text))
8982                                         if defined $::RD_TRACE;
8983
8984                         last;
8985                 }
8986                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8987                                                 . $& . q{])},
8988                                                   Parse::RecDescent::_tracefirst($text))
8989                                         if defined $::RD_TRACE;
8990                 push @item, $item{__PATTERN1__}=$&;
8991                 
8992
8993
8994                 Parse::RecDescent::_trace(q{>>Matched production: [/MAX/i]<<},
8995                                           Parse::RecDescent::_tracefirst($text),
8996                                           q{sysibm_function},
8997                                           $tracelevel)
8998                                                 if defined $::RD_TRACE;
8999                 $_matched = 1;
9000                 last;
9001         }
9002
9003
9004         while (!$_matched && !$commit)
9005         {
9006                 
9007                 Parse::RecDescent::_trace(q{Trying production: [/MICROSECOND/i]},
9008                                           Parse::RecDescent::_tracefirst($_[1]),
9009                                           q{sysibm_function},
9010                                           $tracelevel)
9011                                                 if defined $::RD_TRACE;
9012                 my $thisprod = $thisrule->{"prods"}[47];
9013                 $text = $_[1];
9014                 my $_savetext;
9015                 @item = (q{sysibm_function});
9016                 %item = (__RULE__ => q{sysibm_function});
9017                 my $repcount = 0;
9018
9019
9020                 Parse::RecDescent::_trace(q{Trying terminal: [/MICROSECOND/i]}, Parse::RecDescent::_tracefirst($text),
9021                                           q{sysibm_function},
9022                                           $tracelevel)
9023                                                 if defined $::RD_TRACE;
9024                 $lastsep = "";
9025                 $expectation->is(q{})->at($text);
9026                 
9027
9028                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MICROSECOND)//i)
9029                 {
9030                         
9031                         $expectation->failed();
9032                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9033                                                   Parse::RecDescent::_tracefirst($text))
9034                                         if defined $::RD_TRACE;
9035
9036                         last;
9037                 }
9038                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9039                                                 . $& . q{])},
9040                                                   Parse::RecDescent::_tracefirst($text))
9041                                         if defined $::RD_TRACE;
9042                 push @item, $item{__PATTERN1__}=$&;
9043                 
9044
9045
9046                 Parse::RecDescent::_trace(q{>>Matched production: [/MICROSECOND/i]<<},
9047                                           Parse::RecDescent::_tracefirst($text),
9048                                           q{sysibm_function},
9049                                           $tracelevel)
9050                                                 if defined $::RD_TRACE;
9051                 $_matched = 1;
9052                 last;
9053         }
9054
9055
9056         while (!$_matched && !$commit)
9057         {
9058                 
9059                 Parse::RecDescent::_trace(q{Trying production: [/MIN/i]},
9060                                           Parse::RecDescent::_tracefirst($_[1]),
9061                                           q{sysibm_function},
9062                                           $tracelevel)
9063                                                 if defined $::RD_TRACE;
9064                 my $thisprod = $thisrule->{"prods"}[48];
9065                 $text = $_[1];
9066                 my $_savetext;
9067                 @item = (q{sysibm_function});
9068                 %item = (__RULE__ => q{sysibm_function});
9069                 my $repcount = 0;
9070
9071
9072                 Parse::RecDescent::_trace(q{Trying terminal: [/MIN/i]}, Parse::RecDescent::_tracefirst($text),
9073                                           q{sysibm_function},
9074                                           $tracelevel)
9075                                                 if defined $::RD_TRACE;
9076                 $lastsep = "";
9077                 $expectation->is(q{})->at($text);
9078                 
9079
9080                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MIN)//i)
9081                 {
9082                         
9083                         $expectation->failed();
9084                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9085                                                   Parse::RecDescent::_tracefirst($text))
9086                                         if defined $::RD_TRACE;
9087
9088                         last;
9089                 }
9090                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9091                                                 . $& . q{])},
9092                                                   Parse::RecDescent::_tracefirst($text))
9093                                         if defined $::RD_TRACE;
9094                 push @item, $item{__PATTERN1__}=$&;
9095                 
9096
9097
9098                 Parse::RecDescent::_trace(q{>>Matched production: [/MIN/i]<<},
9099                                           Parse::RecDescent::_tracefirst($text),
9100                                           q{sysibm_function},
9101                                           $tracelevel)
9102                                                 if defined $::RD_TRACE;
9103                 $_matched = 1;
9104                 last;
9105         }
9106
9107
9108         while (!$_matched && !$commit)
9109         {
9110                 
9111                 Parse::RecDescent::_trace(q{Trying production: [/MINUTE/i]},
9112                                           Parse::RecDescent::_tracefirst($_[1]),
9113                                           q{sysibm_function},
9114                                           $tracelevel)
9115                                                 if defined $::RD_TRACE;
9116                 my $thisprod = $thisrule->{"prods"}[49];
9117                 $text = $_[1];
9118                 my $_savetext;
9119                 @item = (q{sysibm_function});
9120                 %item = (__RULE__ => q{sysibm_function});
9121                 my $repcount = 0;
9122
9123
9124                 Parse::RecDescent::_trace(q{Trying terminal: [/MINUTE/i]}, Parse::RecDescent::_tracefirst($text),
9125                                           q{sysibm_function},
9126                                           $tracelevel)
9127                                                 if defined $::RD_TRACE;
9128                 $lastsep = "";
9129                 $expectation->is(q{})->at($text);
9130                 
9131
9132                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MINUTE)//i)
9133                 {
9134                         
9135                         $expectation->failed();
9136                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9137                                                   Parse::RecDescent::_tracefirst($text))
9138                                         if defined $::RD_TRACE;
9139
9140                         last;
9141                 }
9142                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9143                                                 . $& . q{])},
9144                                                   Parse::RecDescent::_tracefirst($text))
9145                                         if defined $::RD_TRACE;
9146                 push @item, $item{__PATTERN1__}=$&;
9147                 
9148
9149
9150                 Parse::RecDescent::_trace(q{>>Matched production: [/MINUTE/i]<<},
9151                                           Parse::RecDescent::_tracefirst($text),
9152                                           q{sysibm_function},
9153                                           $tracelevel)
9154                                                 if defined $::RD_TRACE;
9155                 $_matched = 1;
9156                 last;
9157         }
9158
9159
9160         while (!$_matched && !$commit)
9161         {
9162                 
9163                 Parse::RecDescent::_trace(q{Trying production: [/MONTH/i]},
9164                                           Parse::RecDescent::_tracefirst($_[1]),
9165                                           q{sysibm_function},
9166                                           $tracelevel)
9167                                                 if defined $::RD_TRACE;
9168                 my $thisprod = $thisrule->{"prods"}[50];
9169                 $text = $_[1];
9170                 my $_savetext;
9171                 @item = (q{sysibm_function});
9172                 %item = (__RULE__ => q{sysibm_function});
9173                 my $repcount = 0;
9174
9175
9176                 Parse::RecDescent::_trace(q{Trying terminal: [/MONTH/i]}, Parse::RecDescent::_tracefirst($text),
9177                                           q{sysibm_function},
9178                                           $tracelevel)
9179                                                 if defined $::RD_TRACE;
9180                 $lastsep = "";
9181                 $expectation->is(q{})->at($text);
9182                 
9183
9184                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MONTH)//i)
9185                 {
9186                         
9187                         $expectation->failed();
9188                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9189                                                   Parse::RecDescent::_tracefirst($text))
9190                                         if defined $::RD_TRACE;
9191
9192                         last;
9193                 }
9194                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9195                                                 . $& . q{])},
9196                                                   Parse::RecDescent::_tracefirst($text))
9197                                         if defined $::RD_TRACE;
9198                 push @item, $item{__PATTERN1__}=$&;
9199                 
9200
9201
9202                 Parse::RecDescent::_trace(q{>>Matched production: [/MONTH/i]<<},
9203                                           Parse::RecDescent::_tracefirst($text),
9204                                           q{sysibm_function},
9205                                           $tracelevel)
9206                                                 if defined $::RD_TRACE;
9207                 $_matched = 1;
9208                 last;
9209         }
9210
9211
9212         while (!$_matched && !$commit)
9213         {
9214                 
9215                 Parse::RecDescent::_trace(q{Trying production: [/MULTIPLY_ACT/i]},
9216                                           Parse::RecDescent::_tracefirst($_[1]),
9217                                           q{sysibm_function},
9218                                           $tracelevel)
9219                                                 if defined $::RD_TRACE;
9220                 my $thisprod = $thisrule->{"prods"}[51];
9221                 $text = $_[1];
9222                 my $_savetext;
9223                 @item = (q{sysibm_function});
9224                 %item = (__RULE__ => q{sysibm_function});
9225                 my $repcount = 0;
9226
9227
9228                 Parse::RecDescent::_trace(q{Trying terminal: [/MULTIPLY_ACT/i]}, Parse::RecDescent::_tracefirst($text),
9229                                           q{sysibm_function},
9230                                           $tracelevel)
9231                                                 if defined $::RD_TRACE;
9232                 $lastsep = "";
9233                 $expectation->is(q{})->at($text);
9234                 
9235
9236                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MULTIPLY_ACT)//i)
9237                 {
9238                         
9239                         $expectation->failed();
9240                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9241                                                   Parse::RecDescent::_tracefirst($text))
9242                                         if defined $::RD_TRACE;
9243
9244                         last;
9245                 }
9246                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9247                                                 . $& . q{])},
9248                                                   Parse::RecDescent::_tracefirst($text))
9249                                         if defined $::RD_TRACE;
9250                 push @item, $item{__PATTERN1__}=$&;
9251                 
9252
9253
9254                 Parse::RecDescent::_trace(q{>>Matched production: [/MULTIPLY_ACT/i]<<},
9255                                           Parse::RecDescent::_tracefirst($text),
9256                                           q{sysibm_function},
9257                                           $tracelevel)
9258                                                 if defined $::RD_TRACE;
9259                 $_matched = 1;
9260                 last;
9261         }
9262
9263
9264         while (!$_matched && !$commit)
9265         {
9266                 
9267                 Parse::RecDescent::_trace(q{Trying production: [/NODENUMBER/i]},
9268                                           Parse::RecDescent::_tracefirst($_[1]),
9269                                           q{sysibm_function},
9270                                           $tracelevel)
9271                                                 if defined $::RD_TRACE;
9272                 my $thisprod = $thisrule->{"prods"}[52];
9273                 $text = $_[1];
9274                 my $_savetext;
9275                 @item = (q{sysibm_function});
9276                 %item = (__RULE__ => q{sysibm_function});
9277                 my $repcount = 0;
9278
9279
9280                 Parse::RecDescent::_trace(q{Trying terminal: [/NODENUMBER/i]}, Parse::RecDescent::_tracefirst($text),
9281                                           q{sysibm_function},
9282                                           $tracelevel)
9283                                                 if defined $::RD_TRACE;
9284                 $lastsep = "";
9285                 $expectation->is(q{})->at($text);
9286                 
9287
9288                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NODENUMBER)//i)
9289                 {
9290                         
9291                         $expectation->failed();
9292                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9293                                                   Parse::RecDescent::_tracefirst($text))
9294                                         if defined $::RD_TRACE;
9295
9296                         last;
9297                 }
9298                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9299                                                 . $& . q{])},
9300                                                   Parse::RecDescent::_tracefirst($text))
9301                                         if defined $::RD_TRACE;
9302                 push @item, $item{__PATTERN1__}=$&;
9303                 
9304
9305
9306                 Parse::RecDescent::_trace(q{>>Matched production: [/NODENUMBER/i]<<},
9307                                           Parse::RecDescent::_tracefirst($text),
9308                                           q{sysibm_function},
9309                                           $tracelevel)
9310                                                 if defined $::RD_TRACE;
9311                 $_matched = 1;
9312                 last;
9313         }
9314
9315
9316         while (!$_matched && !$commit)
9317         {
9318                 
9319                 Parse::RecDescent::_trace(q{Trying production: [/NULLIF/i]},
9320                                           Parse::RecDescent::_tracefirst($_[1]),
9321                                           q{sysibm_function},
9322                                           $tracelevel)
9323                                                 if defined $::RD_TRACE;
9324                 my $thisprod = $thisrule->{"prods"}[53];
9325                 $text = $_[1];
9326                 my $_savetext;
9327                 @item = (q{sysibm_function});
9328                 %item = (__RULE__ => q{sysibm_function});
9329                 my $repcount = 0;
9330
9331
9332                 Parse::RecDescent::_trace(q{Trying terminal: [/NULLIF/i]}, Parse::RecDescent::_tracefirst($text),
9333                                           q{sysibm_function},
9334                                           $tracelevel)
9335                                                 if defined $::RD_TRACE;
9336                 $lastsep = "";
9337                 $expectation->is(q{})->at($text);
9338                 
9339
9340                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLIF)//i)
9341                 {
9342                         
9343                         $expectation->failed();
9344                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9345                                                   Parse::RecDescent::_tracefirst($text))
9346                                         if defined $::RD_TRACE;
9347
9348                         last;
9349                 }
9350                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9351                                                 . $& . q{])},
9352                                                   Parse::RecDescent::_tracefirst($text))
9353                                         if defined $::RD_TRACE;
9354                 push @item, $item{__PATTERN1__}=$&;
9355                 
9356
9357
9358                 Parse::RecDescent::_trace(q{>>Matched production: [/NULLIF/i]<<},
9359                                           Parse::RecDescent::_tracefirst($text),
9360                                           q{sysibm_function},
9361                                           $tracelevel)
9362                                                 if defined $::RD_TRACE;
9363                 $_matched = 1;
9364                 last;
9365         }
9366
9367
9368         while (!$_matched && !$commit)
9369         {
9370                 
9371                 Parse::RecDescent::_trace(q{Trying production: [/PARTITON/i]},
9372                                           Parse::RecDescent::_tracefirst($_[1]),
9373                                           q{sysibm_function},
9374                                           $tracelevel)
9375                                                 if defined $::RD_TRACE;
9376                 my $thisprod = $thisrule->{"prods"}[54];
9377                 $text = $_[1];
9378                 my $_savetext;
9379                 @item = (q{sysibm_function});
9380                 %item = (__RULE__ => q{sysibm_function});
9381                 my $repcount = 0;
9382
9383
9384                 Parse::RecDescent::_trace(q{Trying terminal: [/PARTITON/i]}, Parse::RecDescent::_tracefirst($text),
9385                                           q{sysibm_function},
9386                                           $tracelevel)
9387                                                 if defined $::RD_TRACE;
9388                 $lastsep = "";
9389                 $expectation->is(q{})->at($text);
9390                 
9391
9392                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PARTITON)//i)
9393                 {
9394                         
9395                         $expectation->failed();
9396                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9397                                                   Parse::RecDescent::_tracefirst($text))
9398                                         if defined $::RD_TRACE;
9399
9400                         last;
9401                 }
9402                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9403                                                 . $& . q{])},
9404                                                   Parse::RecDescent::_tracefirst($text))
9405                                         if defined $::RD_TRACE;
9406                 push @item, $item{__PATTERN1__}=$&;
9407                 
9408
9409
9410                 Parse::RecDescent::_trace(q{>>Matched production: [/PARTITON/i]<<},
9411                                           Parse::RecDescent::_tracefirst($text),
9412                                           q{sysibm_function},
9413                                           $tracelevel)
9414                                                 if defined $::RD_TRACE;
9415                 $_matched = 1;
9416                 last;
9417         }
9418
9419
9420         while (!$_matched && !$commit)
9421         {
9422                 
9423                 Parse::RecDescent::_trace(q{Trying production: [/POSSTR/i]},
9424                                           Parse::RecDescent::_tracefirst($_[1]),
9425                                           q{sysibm_function},
9426                                           $tracelevel)
9427                                                 if defined $::RD_TRACE;
9428                 my $thisprod = $thisrule->{"prods"}[55];
9429                 $text = $_[1];
9430                 my $_savetext;
9431                 @item = (q{sysibm_function});
9432                 %item = (__RULE__ => q{sysibm_function});
9433                 my $repcount = 0;
9434
9435
9436                 Parse::RecDescent::_trace(q{Trying terminal: [/POSSTR/i]}, Parse::RecDescent::_tracefirst($text),
9437                                           q{sysibm_function},
9438                                           $tracelevel)
9439                                                 if defined $::RD_TRACE;
9440                 $lastsep = "";
9441                 $expectation->is(q{})->at($text);
9442                 
9443
9444                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:POSSTR)//i)
9445                 {
9446                         
9447                         $expectation->failed();
9448                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9449                                                   Parse::RecDescent::_tracefirst($text))
9450                                         if defined $::RD_TRACE;
9451
9452                         last;
9453                 }
9454                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9455                                                 . $& . q{])},
9456                                                   Parse::RecDescent::_tracefirst($text))
9457                                         if defined $::RD_TRACE;
9458                 push @item, $item{__PATTERN1__}=$&;
9459                 
9460
9461
9462                 Parse::RecDescent::_trace(q{>>Matched production: [/POSSTR/i]<<},
9463                                           Parse::RecDescent::_tracefirst($text),
9464                                           q{sysibm_function},
9465                                           $tracelevel)
9466                                                 if defined $::RD_TRACE;
9467                 $_matched = 1;
9468                 last;
9469         }
9470
9471
9472         while (!$_matched && !$commit)
9473         {
9474                 
9475                 Parse::RecDescent::_trace(q{Trying production: [/RAISE_ERROR/i]},
9476                                           Parse::RecDescent::_tracefirst($_[1]),
9477                                           q{sysibm_function},
9478                                           $tracelevel)
9479                                                 if defined $::RD_TRACE;
9480                 my $thisprod = $thisrule->{"prods"}[56];
9481                 $text = $_[1];
9482                 my $_savetext;
9483                 @item = (q{sysibm_function});
9484                 %item = (__RULE__ => q{sysibm_function});
9485                 my $repcount = 0;
9486
9487
9488                 Parse::RecDescent::_trace(q{Trying terminal: [/RAISE_ERROR/i]}, Parse::RecDescent::_tracefirst($text),
9489                                           q{sysibm_function},
9490                                           $tracelevel)
9491                                                 if defined $::RD_TRACE;
9492                 $lastsep = "";
9493                 $expectation->is(q{})->at($text);
9494                 
9495
9496                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RAISE_ERROR)//i)
9497                 {
9498                         
9499                         $expectation->failed();
9500                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9501                                                   Parse::RecDescent::_tracefirst($text))
9502                                         if defined $::RD_TRACE;
9503
9504                         last;
9505                 }
9506                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9507                                                 . $& . q{])},
9508                                                   Parse::RecDescent::_tracefirst($text))
9509                                         if defined $::RD_TRACE;
9510                 push @item, $item{__PATTERN1__}=$&;
9511                 
9512
9513
9514                 Parse::RecDescent::_trace(q{>>Matched production: [/RAISE_ERROR/i]<<},
9515                                           Parse::RecDescent::_tracefirst($text),
9516                                           q{sysibm_function},
9517                                           $tracelevel)
9518                                                 if defined $::RD_TRACE;
9519                 $_matched = 1;
9520                 last;
9521         }
9522
9523
9524         while (!$_matched && !$commit)
9525         {
9526                 
9527                 Parse::RecDescent::_trace(q{Trying production: [/REAL/i]},
9528                                           Parse::RecDescent::_tracefirst($_[1]),
9529                                           q{sysibm_function},
9530                                           $tracelevel)
9531                                                 if defined $::RD_TRACE;
9532                 my $thisprod = $thisrule->{"prods"}[57];
9533                 $text = $_[1];
9534                 my $_savetext;
9535                 @item = (q{sysibm_function});
9536                 %item = (__RULE__ => q{sysibm_function});
9537                 my $repcount = 0;
9538
9539
9540                 Parse::RecDescent::_trace(q{Trying terminal: [/REAL/i]}, Parse::RecDescent::_tracefirst($text),
9541                                           q{sysibm_function},
9542                                           $tracelevel)
9543                                                 if defined $::RD_TRACE;
9544                 $lastsep = "";
9545                 $expectation->is(q{})->at($text);
9546                 
9547
9548                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REAL)//i)
9549                 {
9550                         
9551                         $expectation->failed();
9552                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9553                                                   Parse::RecDescent::_tracefirst($text))
9554                                         if defined $::RD_TRACE;
9555
9556                         last;
9557                 }
9558                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9559                                                 . $& . q{])},
9560                                                   Parse::RecDescent::_tracefirst($text))
9561                                         if defined $::RD_TRACE;
9562                 push @item, $item{__PATTERN1__}=$&;
9563                 
9564
9565
9566                 Parse::RecDescent::_trace(q{>>Matched production: [/REAL/i]<<},
9567                                           Parse::RecDescent::_tracefirst($text),
9568                                           q{sysibm_function},
9569                                           $tracelevel)
9570                                                 if defined $::RD_TRACE;
9571                 $_matched = 1;
9572                 last;
9573         }
9574
9575
9576         while (!$_matched && !$commit)
9577         {
9578                 
9579                 Parse::RecDescent::_trace(q{Trying production: [/REC2XML/i]},
9580                                           Parse::RecDescent::_tracefirst($_[1]),
9581                                           q{sysibm_function},
9582                                           $tracelevel)
9583                                                 if defined $::RD_TRACE;
9584                 my $thisprod = $thisrule->{"prods"}[58];
9585                 $text = $_[1];
9586                 my $_savetext;
9587                 @item = (q{sysibm_function});
9588                 %item = (__RULE__ => q{sysibm_function});
9589                 my $repcount = 0;
9590
9591
9592                 Parse::RecDescent::_trace(q{Trying terminal: [/REC2XML/i]}, Parse::RecDescent::_tracefirst($text),
9593                                           q{sysibm_function},
9594                                           $tracelevel)
9595                                                 if defined $::RD_TRACE;
9596                 $lastsep = "";
9597                 $expectation->is(q{})->at($text);
9598                 
9599
9600                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REC2XML)//i)
9601                 {
9602                         
9603                         $expectation->failed();
9604                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9605                                                   Parse::RecDescent::_tracefirst($text))
9606                                         if defined $::RD_TRACE;
9607
9608                         last;
9609                 }
9610                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9611                                                 . $& . q{])},
9612                                                   Parse::RecDescent::_tracefirst($text))
9613                                         if defined $::RD_TRACE;
9614                 push @item, $item{__PATTERN1__}=$&;
9615                 
9616
9617
9618                 Parse::RecDescent::_trace(q{>>Matched production: [/REC2XML/i]<<},
9619                                           Parse::RecDescent::_tracefirst($text),
9620                                           q{sysibm_function},
9621                                           $tracelevel)
9622                                                 if defined $::RD_TRACE;
9623                 $_matched = 1;
9624                 last;
9625         }
9626
9627
9628         while (!$_matched && !$commit)
9629         {
9630                 
9631                 Parse::RecDescent::_trace(q{Trying production: [/REGR_AVGX/i]},
9632                                           Parse::RecDescent::_tracefirst($_[1]),
9633                                           q{sysibm_function},
9634                                           $tracelevel)
9635                                                 if defined $::RD_TRACE;
9636                 my $thisprod = $thisrule->{"prods"}[59];
9637                 $text = $_[1];
9638                 my $_savetext;
9639                 @item = (q{sysibm_function});
9640                 %item = (__RULE__ => q{sysibm_function});
9641                 my $repcount = 0;
9642
9643
9644                 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_AVGX/i]}, Parse::RecDescent::_tracefirst($text),
9645                                           q{sysibm_function},
9646                                           $tracelevel)
9647                                                 if defined $::RD_TRACE;
9648                 $lastsep = "";
9649                 $expectation->is(q{})->at($text);
9650                 
9651
9652                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_AVGX)//i)
9653                 {
9654                         
9655                         $expectation->failed();
9656                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9657                                                   Parse::RecDescent::_tracefirst($text))
9658                                         if defined $::RD_TRACE;
9659
9660                         last;
9661                 }
9662                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9663                                                 . $& . q{])},
9664                                                   Parse::RecDescent::_tracefirst($text))
9665                                         if defined $::RD_TRACE;
9666                 push @item, $item{__PATTERN1__}=$&;
9667                 
9668
9669
9670                 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_AVGX/i]<<},
9671                                           Parse::RecDescent::_tracefirst($text),
9672                                           q{sysibm_function},
9673                                           $tracelevel)
9674                                                 if defined $::RD_TRACE;
9675                 $_matched = 1;
9676                 last;
9677         }
9678
9679
9680         while (!$_matched && !$commit)
9681         {
9682                 
9683                 Parse::RecDescent::_trace(q{Trying production: [/REGR_AVGY/i]},
9684                                           Parse::RecDescent::_tracefirst($_[1]),
9685                                           q{sysibm_function},
9686                                           $tracelevel)
9687                                                 if defined $::RD_TRACE;
9688                 my $thisprod = $thisrule->{"prods"}[60];
9689                 $text = $_[1];
9690                 my $_savetext;
9691                 @item = (q{sysibm_function});
9692                 %item = (__RULE__ => q{sysibm_function});
9693                 my $repcount = 0;
9694
9695
9696                 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_AVGY/i]}, Parse::RecDescent::_tracefirst($text),
9697                                           q{sysibm_function},
9698                                           $tracelevel)
9699                                                 if defined $::RD_TRACE;
9700                 $lastsep = "";
9701                 $expectation->is(q{})->at($text);
9702                 
9703
9704                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_AVGY)//i)
9705                 {
9706                         
9707                         $expectation->failed();
9708                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9709                                                   Parse::RecDescent::_tracefirst($text))
9710                                         if defined $::RD_TRACE;
9711
9712                         last;
9713                 }
9714                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9715                                                 . $& . q{])},
9716                                                   Parse::RecDescent::_tracefirst($text))
9717                                         if defined $::RD_TRACE;
9718                 push @item, $item{__PATTERN1__}=$&;
9719                 
9720
9721
9722                 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_AVGY/i]<<},
9723                                           Parse::RecDescent::_tracefirst($text),
9724                                           q{sysibm_function},
9725                                           $tracelevel)
9726                                                 if defined $::RD_TRACE;
9727                 $_matched = 1;
9728                 last;
9729         }
9730
9731
9732         while (!$_matched && !$commit)
9733         {
9734                 
9735                 Parse::RecDescent::_trace(q{Trying production: [/REGR_COUNT/i]},
9736                                           Parse::RecDescent::_tracefirst($_[1]),
9737                                           q{sysibm_function},
9738                                           $tracelevel)
9739                                                 if defined $::RD_TRACE;
9740                 my $thisprod = $thisrule->{"prods"}[61];
9741                 $text = $_[1];
9742                 my $_savetext;
9743                 @item = (q{sysibm_function});
9744                 %item = (__RULE__ => q{sysibm_function});
9745                 my $repcount = 0;
9746
9747
9748                 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_COUNT/i]}, Parse::RecDescent::_tracefirst($text),
9749                                           q{sysibm_function},
9750                                           $tracelevel)
9751                                                 if defined $::RD_TRACE;
9752                 $lastsep = "";
9753                 $expectation->is(q{})->at($text);
9754                 
9755
9756                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_COUNT)//i)
9757                 {
9758                         
9759                         $expectation->failed();
9760                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9761                                                   Parse::RecDescent::_tracefirst($text))
9762                                         if defined $::RD_TRACE;
9763
9764                         last;
9765                 }
9766                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9767                                                 . $& . q{])},
9768                                                   Parse::RecDescent::_tracefirst($text))
9769                                         if defined $::RD_TRACE;
9770                 push @item, $item{__PATTERN1__}=$&;
9771                 
9772
9773
9774                 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_COUNT/i]<<},
9775                                           Parse::RecDescent::_tracefirst($text),
9776                                           q{sysibm_function},
9777                                           $tracelevel)
9778                                                 if defined $::RD_TRACE;
9779                 $_matched = 1;
9780                 last;
9781         }
9782
9783
9784         while (!$_matched && !$commit)
9785         {
9786                 
9787                 Parse::RecDescent::_trace(q{Trying production: [/REGR_INTERCEPT/i, or /REGR_ICPT/i]},
9788                                           Parse::RecDescent::_tracefirst($_[1]),
9789                                           q{sysibm_function},
9790                                           $tracelevel)
9791                                                 if defined $::RD_TRACE;
9792                 my $thisprod = $thisrule->{"prods"}[62];
9793                 $text = $_[1];
9794                 my $_savetext;
9795                 @item = (q{sysibm_function});
9796                 %item = (__RULE__ => q{sysibm_function});
9797                 my $repcount = 0;
9798
9799
9800                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_63_of_rule_sysibm_function]},
9801                                   Parse::RecDescent::_tracefirst($text),
9802                                   q{sysibm_function},
9803                                   $tracelevel)
9804                                         if defined $::RD_TRACE;
9805                 if (1) { no strict qw{refs};
9806                 $expectation->is(q{})->at($text);
9807                 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 })))
9808                 {
9809                         
9810                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_63_of_rule_sysibm_function]>>},
9811                                                   Parse::RecDescent::_tracefirst($text),
9812                                                   q{sysibm_function},
9813                                                   $tracelevel)
9814                                                         if defined $::RD_TRACE;
9815                         $expectation->failed();
9816                         last;
9817                 }
9818                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_63_of_rule_sysibm_function]<< (return value: [}
9819                                         . $_tok . q{]},
9820                                           
9821                                           Parse::RecDescent::_tracefirst($text),
9822                                           q{sysibm_function},
9823                                           $tracelevel)
9824                                                 if defined $::RD_TRACE;
9825                 $item{q{_alternation_1_of_production_63_of_rule_sysibm_function}} = $_tok;
9826                 push @item, $_tok;
9827                 
9828                 }
9829
9830
9831                 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_INTERCEPT/i, or /REGR_ICPT/i]<<},
9832                                           Parse::RecDescent::_tracefirst($text),
9833                                           q{sysibm_function},
9834                                           $tracelevel)
9835                                                 if defined $::RD_TRACE;
9836                 $_matched = 1;
9837                 last;
9838         }
9839
9840
9841         while (!$_matched && !$commit)
9842         {
9843                 
9844                 Parse::RecDescent::_trace(q{Trying production: [/REGR_R2/i]},
9845                                           Parse::RecDescent::_tracefirst($_[1]),
9846                                           q{sysibm_function},
9847                                           $tracelevel)
9848                                                 if defined $::RD_TRACE;
9849                 my $thisprod = $thisrule->{"prods"}[63];
9850                 $text = $_[1];
9851                 my $_savetext;
9852                 @item = (q{sysibm_function});
9853                 %item = (__RULE__ => q{sysibm_function});
9854                 my $repcount = 0;
9855
9856
9857                 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_R2/i]}, Parse::RecDescent::_tracefirst($text),
9858                                           q{sysibm_function},
9859                                           $tracelevel)
9860                                                 if defined $::RD_TRACE;
9861                 $lastsep = "";
9862                 $expectation->is(q{})->at($text);
9863                 
9864
9865                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_R2)//i)
9866                 {
9867                         
9868                         $expectation->failed();
9869                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9870                                                   Parse::RecDescent::_tracefirst($text))
9871                                         if defined $::RD_TRACE;
9872
9873                         last;
9874                 }
9875                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9876                                                 . $& . q{])},
9877                                                   Parse::RecDescent::_tracefirst($text))
9878                                         if defined $::RD_TRACE;
9879                 push @item, $item{__PATTERN1__}=$&;
9880                 
9881
9882
9883                 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_R2/i]<<},
9884                                           Parse::RecDescent::_tracefirst($text),
9885                                           q{sysibm_function},
9886                                           $tracelevel)
9887                                                 if defined $::RD_TRACE;
9888                 $_matched = 1;
9889                 last;
9890         }
9891
9892
9893         while (!$_matched && !$commit)
9894         {
9895                 
9896                 Parse::RecDescent::_trace(q{Trying production: [/REGR_SLOPE/i]},
9897                                           Parse::RecDescent::_tracefirst($_[1]),
9898                                           q{sysibm_function},
9899                                           $tracelevel)
9900                                                 if defined $::RD_TRACE;
9901                 my $thisprod = $thisrule->{"prods"}[64];
9902                 $text = $_[1];
9903                 my $_savetext;
9904                 @item = (q{sysibm_function});
9905                 %item = (__RULE__ => q{sysibm_function});
9906                 my $repcount = 0;
9907
9908
9909                 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SLOPE/i]}, Parse::RecDescent::_tracefirst($text),
9910                                           q{sysibm_function},
9911                                           $tracelevel)
9912                                                 if defined $::RD_TRACE;
9913                 $lastsep = "";
9914                 $expectation->is(q{})->at($text);
9915                 
9916
9917                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_SLOPE)//i)
9918                 {
9919                         
9920                         $expectation->failed();
9921                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9922                                                   Parse::RecDescent::_tracefirst($text))
9923                                         if defined $::RD_TRACE;
9924
9925                         last;
9926                 }
9927                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9928                                                 . $& . q{])},
9929                                                   Parse::RecDescent::_tracefirst($text))
9930                                         if defined $::RD_TRACE;
9931                 push @item, $item{__PATTERN1__}=$&;
9932                 
9933
9934
9935                 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_SLOPE/i]<<},
9936                                           Parse::RecDescent::_tracefirst($text),
9937                                           q{sysibm_function},
9938                                           $tracelevel)
9939                                                 if defined $::RD_TRACE;
9940                 $_matched = 1;
9941                 last;
9942         }
9943
9944
9945         while (!$_matched && !$commit)
9946         {
9947                 
9948                 Parse::RecDescent::_trace(q{Trying production: [/REGR_SXX/i]},
9949                                           Parse::RecDescent::_tracefirst($_[1]),
9950                                           q{sysibm_function},
9951                                           $tracelevel)
9952                                                 if defined $::RD_TRACE;
9953                 my $thisprod = $thisrule->{"prods"}[65];
9954                 $text = $_[1];
9955                 my $_savetext;
9956                 @item = (q{sysibm_function});
9957                 %item = (__RULE__ => q{sysibm_function});
9958                 my $repcount = 0;
9959
9960
9961                 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SXX/i]}, Parse::RecDescent::_tracefirst($text),
9962                                           q{sysibm_function},
9963                                           $tracelevel)
9964                                                 if defined $::RD_TRACE;
9965                 $lastsep = "";
9966                 $expectation->is(q{})->at($text);
9967                 
9968
9969                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_SXX)//i)
9970                 {
9971                         
9972                         $expectation->failed();
9973                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9974                                                   Parse::RecDescent::_tracefirst($text))
9975                                         if defined $::RD_TRACE;
9976
9977                         last;
9978                 }
9979                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9980                                                 . $& . q{])},
9981                                                   Parse::RecDescent::_tracefirst($text))
9982                                         if defined $::RD_TRACE;
9983                 push @item, $item{__PATTERN1__}=$&;
9984                 
9985
9986
9987                 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_SXX/i]<<},
9988                                           Parse::RecDescent::_tracefirst($text),
9989                                           q{sysibm_function},
9990                                           $tracelevel)
9991                                                 if defined $::RD_TRACE;
9992                 $_matched = 1;
9993                 last;
9994         }
9995
9996
9997         while (!$_matched && !$commit)
9998         {
9999                 
10000                 Parse::RecDescent::_trace(q{Trying production: [/REGR_SXY/i]},
10001                                           Parse::RecDescent::_tracefirst($_[1]),
10002                                           q{sysibm_function},
10003                                           $tracelevel)
10004                                                 if defined $::RD_TRACE;
10005                 my $thisprod = $thisrule->{"prods"}[66];
10006                 $text = $_[1];
10007                 my $_savetext;
10008                 @item = (q{sysibm_function});
10009                 %item = (__RULE__ => q{sysibm_function});
10010                 my $repcount = 0;
10011
10012
10013                 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SXY/i]}, Parse::RecDescent::_tracefirst($text),
10014                                           q{sysibm_function},
10015                                           $tracelevel)
10016                                                 if defined $::RD_TRACE;
10017                 $lastsep = "";
10018                 $expectation->is(q{})->at($text);
10019                 
10020
10021                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_SXY)//i)
10022                 {
10023                         
10024                         $expectation->failed();
10025                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10026                                                   Parse::RecDescent::_tracefirst($text))
10027                                         if defined $::RD_TRACE;
10028
10029                         last;
10030                 }
10031                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10032                                                 . $& . q{])},
10033                                                   Parse::RecDescent::_tracefirst($text))
10034                                         if defined $::RD_TRACE;
10035                 push @item, $item{__PATTERN1__}=$&;
10036                 
10037
10038
10039                 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_SXY/i]<<},
10040                                           Parse::RecDescent::_tracefirst($text),
10041                                           q{sysibm_function},
10042                                           $tracelevel)
10043                                                 if defined $::RD_TRACE;
10044                 $_matched = 1;
10045                 last;
10046         }
10047
10048
10049         while (!$_matched && !$commit)
10050         {
10051                 
10052                 Parse::RecDescent::_trace(q{Trying production: [/REGR_SYY/i]},
10053                                           Parse::RecDescent::_tracefirst($_[1]),
10054                                           q{sysibm_function},
10055                                           $tracelevel)
10056                                                 if defined $::RD_TRACE;
10057                 my $thisprod = $thisrule->{"prods"}[67];
10058                 $text = $_[1];
10059                 my $_savetext;
10060                 @item = (q{sysibm_function});
10061                 %item = (__RULE__ => q{sysibm_function});
10062                 my $repcount = 0;
10063
10064
10065                 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SYY/i]}, Parse::RecDescent::_tracefirst($text),
10066                                           q{sysibm_function},
10067                                           $tracelevel)
10068                                                 if defined $::RD_TRACE;
10069                 $lastsep = "";
10070                 $expectation->is(q{})->at($text);
10071                 
10072
10073                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_SYY)//i)
10074                 {
10075                         
10076                         $expectation->failed();
10077                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10078                                                   Parse::RecDescent::_tracefirst($text))
10079                                         if defined $::RD_TRACE;
10080
10081                         last;
10082                 }
10083                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10084                                                 . $& . q{])},
10085                                                   Parse::RecDescent::_tracefirst($text))
10086                                         if defined $::RD_TRACE;
10087                 push @item, $item{__PATTERN1__}=$&;
10088                 
10089
10090
10091                 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_SYY/i]<<},
10092                                           Parse::RecDescent::_tracefirst($text),
10093                                           q{sysibm_function},
10094                                           $tracelevel)
10095                                                 if defined $::RD_TRACE;
10096                 $_matched = 1;
10097                 last;
10098         }
10099
10100
10101         while (!$_matched && !$commit)
10102         {
10103                 
10104                 Parse::RecDescent::_trace(q{Trying production: [/RTRIM/i]},
10105                                           Parse::RecDescent::_tracefirst($_[1]),
10106                                           q{sysibm_function},
10107                                           $tracelevel)
10108                                                 if defined $::RD_TRACE;
10109                 my $thisprod = $thisrule->{"prods"}[68];
10110                 $text = $_[1];
10111                 my $_savetext;
10112                 @item = (q{sysibm_function});
10113                 %item = (__RULE__ => q{sysibm_function});
10114                 my $repcount = 0;
10115
10116
10117                 Parse::RecDescent::_trace(q{Trying terminal: [/RTRIM/i]}, Parse::RecDescent::_tracefirst($text),
10118                                           q{sysibm_function},
10119                                           $tracelevel)
10120                                                 if defined $::RD_TRACE;
10121                 $lastsep = "";
10122                 $expectation->is(q{})->at($text);
10123                 
10124
10125                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RTRIM)//i)
10126                 {
10127                         
10128                         $expectation->failed();
10129                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10130                                                   Parse::RecDescent::_tracefirst($text))
10131                                         if defined $::RD_TRACE;
10132
10133                         last;
10134                 }
10135                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10136                                                 . $& . q{])},
10137                                                   Parse::RecDescent::_tracefirst($text))
10138                                         if defined $::RD_TRACE;
10139                 push @item, $item{__PATTERN1__}=$&;
10140                 
10141
10142
10143                 Parse::RecDescent::_trace(q{>>Matched production: [/RTRIM/i]<<},
10144                                           Parse::RecDescent::_tracefirst($text),
10145                                           q{sysibm_function},
10146                                           $tracelevel)
10147                                                 if defined $::RD_TRACE;
10148                 $_matched = 1;
10149                 last;
10150         }
10151
10152
10153         while (!$_matched && !$commit)
10154         {
10155                 
10156                 Parse::RecDescent::_trace(q{Trying production: [/SECOND/i]},
10157                                           Parse::RecDescent::_tracefirst($_[1]),
10158                                           q{sysibm_function},
10159                                           $tracelevel)
10160                                                 if defined $::RD_TRACE;
10161                 my $thisprod = $thisrule->{"prods"}[69];
10162                 $text = $_[1];
10163                 my $_savetext;
10164                 @item = (q{sysibm_function});
10165                 %item = (__RULE__ => q{sysibm_function});
10166                 my $repcount = 0;
10167
10168
10169                 Parse::RecDescent::_trace(q{Trying terminal: [/SECOND/i]}, Parse::RecDescent::_tracefirst($text),
10170                                           q{sysibm_function},
10171                                           $tracelevel)
10172                                                 if defined $::RD_TRACE;
10173                 $lastsep = "";
10174                 $expectation->is(q{})->at($text);
10175                 
10176
10177                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SECOND)//i)
10178                 {
10179                         
10180                         $expectation->failed();
10181                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10182                                                   Parse::RecDescent::_tracefirst($text))
10183                                         if defined $::RD_TRACE;
10184
10185                         last;
10186                 }
10187                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10188                                                 . $& . q{])},
10189                                                   Parse::RecDescent::_tracefirst($text))
10190                                         if defined $::RD_TRACE;
10191                 push @item, $item{__PATTERN1__}=$&;
10192                 
10193
10194
10195                 Parse::RecDescent::_trace(q{>>Matched production: [/SECOND/i]<<},
10196                                           Parse::RecDescent::_tracefirst($text),
10197                                           q{sysibm_function},
10198                                           $tracelevel)
10199                                                 if defined $::RD_TRACE;
10200                 $_matched = 1;
10201                 last;
10202         }
10203
10204
10205         while (!$_matched && !$commit)
10206         {
10207                 
10208                 Parse::RecDescent::_trace(q{Trying production: [/SMALLINT/i]},
10209                                           Parse::RecDescent::_tracefirst($_[1]),
10210                                           q{sysibm_function},
10211                                           $tracelevel)
10212                                                 if defined $::RD_TRACE;
10213                 my $thisprod = $thisrule->{"prods"}[70];
10214                 $text = $_[1];
10215                 my $_savetext;
10216                 @item = (q{sysibm_function});
10217                 %item = (__RULE__ => q{sysibm_function});
10218                 my $repcount = 0;
10219
10220
10221                 Parse::RecDescent::_trace(q{Trying terminal: [/SMALLINT/i]}, Parse::RecDescent::_tracefirst($text),
10222                                           q{sysibm_function},
10223                                           $tracelevel)
10224                                                 if defined $::RD_TRACE;
10225                 $lastsep = "";
10226                 $expectation->is(q{})->at($text);
10227                 
10228
10229                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SMALLINT)//i)
10230                 {
10231                         
10232                         $expectation->failed();
10233                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10234                                                   Parse::RecDescent::_tracefirst($text))
10235                                         if defined $::RD_TRACE;
10236
10237                         last;
10238                 }
10239                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10240                                                 . $& . q{])},
10241                                                   Parse::RecDescent::_tracefirst($text))
10242                                         if defined $::RD_TRACE;
10243                 push @item, $item{__PATTERN1__}=$&;
10244                 
10245
10246
10247                 Parse::RecDescent::_trace(q{>>Matched production: [/SMALLINT/i]<<},
10248                                           Parse::RecDescent::_tracefirst($text),
10249                                           q{sysibm_function},
10250                                           $tracelevel)
10251                                                 if defined $::RD_TRACE;
10252                 $_matched = 1;
10253                 last;
10254         }
10255
10256
10257         while (!$_matched && !$commit)
10258         {
10259                 
10260                 Parse::RecDescent::_trace(q{Trying production: [/STDDEV/i]},
10261                                           Parse::RecDescent::_tracefirst($_[1]),
10262                                           q{sysibm_function},
10263                                           $tracelevel)
10264                                                 if defined $::RD_TRACE;
10265                 my $thisprod = $thisrule->{"prods"}[71];
10266                 $text = $_[1];
10267                 my $_savetext;
10268                 @item = (q{sysibm_function});
10269                 %item = (__RULE__ => q{sysibm_function});
10270                 my $repcount = 0;
10271
10272
10273                 Parse::RecDescent::_trace(q{Trying terminal: [/STDDEV/i]}, Parse::RecDescent::_tracefirst($text),
10274                                           q{sysibm_function},
10275                                           $tracelevel)
10276                                                 if defined $::RD_TRACE;
10277                 $lastsep = "";
10278                 $expectation->is(q{})->at($text);
10279                 
10280
10281                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:STDDEV)//i)
10282                 {
10283                         
10284                         $expectation->failed();
10285                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10286                                                   Parse::RecDescent::_tracefirst($text))
10287                                         if defined $::RD_TRACE;
10288
10289                         last;
10290                 }
10291                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10292                                                 . $& . q{])},
10293                                                   Parse::RecDescent::_tracefirst($text))
10294                                         if defined $::RD_TRACE;
10295                 push @item, $item{__PATTERN1__}=$&;
10296                 
10297
10298
10299                 Parse::RecDescent::_trace(q{>>Matched production: [/STDDEV/i]<<},
10300                                           Parse::RecDescent::_tracefirst($text),
10301                                           q{sysibm_function},
10302                                           $tracelevel)
10303                                                 if defined $::RD_TRACE;
10304                 $_matched = 1;
10305                 last;
10306         }
10307
10308
10309         while (!$_matched && !$commit)
10310         {
10311                 
10312                 Parse::RecDescent::_trace(q{Trying production: [/SUBSTR/i]},
10313                                           Parse::RecDescent::_tracefirst($_[1]),
10314                                           q{sysibm_function},
10315                                           $tracelevel)
10316                                                 if defined $::RD_TRACE;
10317                 my $thisprod = $thisrule->{"prods"}[72];
10318                 $text = $_[1];
10319                 my $_savetext;
10320                 @item = (q{sysibm_function});
10321                 %item = (__RULE__ => q{sysibm_function});
10322                 my $repcount = 0;
10323
10324
10325                 Parse::RecDescent::_trace(q{Trying terminal: [/SUBSTR/i]}, Parse::RecDescent::_tracefirst($text),
10326                                           q{sysibm_function},
10327                                           $tracelevel)
10328                                                 if defined $::RD_TRACE;
10329                 $lastsep = "";
10330                 $expectation->is(q{})->at($text);
10331                 
10332
10333                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SUBSTR)//i)
10334                 {
10335                         
10336                         $expectation->failed();
10337                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10338                                                   Parse::RecDescent::_tracefirst($text))
10339                                         if defined $::RD_TRACE;
10340
10341                         last;
10342                 }
10343                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10344                                                 . $& . q{])},
10345                                                   Parse::RecDescent::_tracefirst($text))
10346                                         if defined $::RD_TRACE;
10347                 push @item, $item{__PATTERN1__}=$&;
10348                 
10349
10350
10351                 Parse::RecDescent::_trace(q{>>Matched production: [/SUBSTR/i]<<},
10352                                           Parse::RecDescent::_tracefirst($text),
10353                                           q{sysibm_function},
10354                                           $tracelevel)
10355                                                 if defined $::RD_TRACE;
10356                 $_matched = 1;
10357                 last;
10358         }
10359
10360
10361         while (!$_matched && !$commit)
10362         {
10363                 
10364                 Parse::RecDescent::_trace(q{Trying production: [/SUM/i]},
10365                                           Parse::RecDescent::_tracefirst($_[1]),
10366                                           q{sysibm_function},
10367                                           $tracelevel)
10368                                                 if defined $::RD_TRACE;
10369                 my $thisprod = $thisrule->{"prods"}[73];
10370                 $text = $_[1];
10371                 my $_savetext;
10372                 @item = (q{sysibm_function});
10373                 %item = (__RULE__ => q{sysibm_function});
10374                 my $repcount = 0;
10375
10376
10377                 Parse::RecDescent::_trace(q{Trying terminal: [/SUM/i]}, Parse::RecDescent::_tracefirst($text),
10378                                           q{sysibm_function},
10379                                           $tracelevel)
10380                                                 if defined $::RD_TRACE;
10381                 $lastsep = "";
10382                 $expectation->is(q{})->at($text);
10383                 
10384
10385                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SUM)//i)
10386                 {
10387                         
10388                         $expectation->failed();
10389                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10390                                                   Parse::RecDescent::_tracefirst($text))
10391                                         if defined $::RD_TRACE;
10392
10393                         last;
10394                 }
10395                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10396                                                 . $& . q{])},
10397                                                   Parse::RecDescent::_tracefirst($text))
10398                                         if defined $::RD_TRACE;
10399                 push @item, $item{__PATTERN1__}=$&;
10400                 
10401
10402
10403                 Parse::RecDescent::_trace(q{>>Matched production: [/SUM/i]<<},
10404                                           Parse::RecDescent::_tracefirst($text),
10405                                           q{sysibm_function},
10406                                           $tracelevel)
10407                                                 if defined $::RD_TRACE;
10408                 $_matched = 1;
10409                 last;
10410         }
10411
10412
10413         while (!$_matched && !$commit)
10414         {
10415                 
10416                 Parse::RecDescent::_trace(q{Trying production: [/TABLE_NAME/i]},
10417                                           Parse::RecDescent::_tracefirst($_[1]),
10418                                           q{sysibm_function},
10419                                           $tracelevel)
10420                                                 if defined $::RD_TRACE;
10421                 my $thisprod = $thisrule->{"prods"}[74];
10422                 $text = $_[1];
10423                 my $_savetext;
10424                 @item = (q{sysibm_function});
10425                 %item = (__RULE__ => q{sysibm_function});
10426                 my $repcount = 0;
10427
10428
10429                 Parse::RecDescent::_trace(q{Trying terminal: [/TABLE_NAME/i]}, Parse::RecDescent::_tracefirst($text),
10430                                           q{sysibm_function},
10431                                           $tracelevel)
10432                                                 if defined $::RD_TRACE;
10433                 $lastsep = "";
10434                 $expectation->is(q{})->at($text);
10435                 
10436
10437                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TABLE_NAME)//i)
10438                 {
10439                         
10440                         $expectation->failed();
10441                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10442                                                   Parse::RecDescent::_tracefirst($text))
10443                                         if defined $::RD_TRACE;
10444
10445                         last;
10446                 }
10447                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10448                                                 . $& . q{])},
10449                                                   Parse::RecDescent::_tracefirst($text))
10450                                         if defined $::RD_TRACE;
10451                 push @item, $item{__PATTERN1__}=$&;
10452                 
10453
10454
10455                 Parse::RecDescent::_trace(q{>>Matched production: [/TABLE_NAME/i]<<},
10456                                           Parse::RecDescent::_tracefirst($text),
10457                                           q{sysibm_function},
10458                                           $tracelevel)
10459                                                 if defined $::RD_TRACE;
10460                 $_matched = 1;
10461                 last;
10462         }
10463
10464
10465         while (!$_matched && !$commit)
10466         {
10467                 
10468                 Parse::RecDescent::_trace(q{Trying production: [/TABLE_SCHEMA/i]},
10469                                           Parse::RecDescent::_tracefirst($_[1]),
10470                                           q{sysibm_function},
10471                                           $tracelevel)
10472                                                 if defined $::RD_TRACE;
10473                 my $thisprod = $thisrule->{"prods"}[75];
10474                 $text = $_[1];
10475                 my $_savetext;
10476                 @item = (q{sysibm_function});
10477                 %item = (__RULE__ => q{sysibm_function});
10478                 my $repcount = 0;
10479
10480
10481                 Parse::RecDescent::_trace(q{Trying terminal: [/TABLE_SCHEMA/i]}, Parse::RecDescent::_tracefirst($text),
10482                                           q{sysibm_function},
10483                                           $tracelevel)
10484                                                 if defined $::RD_TRACE;
10485                 $lastsep = "";
10486                 $expectation->is(q{})->at($text);
10487                 
10488
10489                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TABLE_SCHEMA)//i)
10490                 {
10491                         
10492                         $expectation->failed();
10493                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10494                                                   Parse::RecDescent::_tracefirst($text))
10495                                         if defined $::RD_TRACE;
10496
10497                         last;
10498                 }
10499                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10500                                                 . $& . q{])},
10501                                                   Parse::RecDescent::_tracefirst($text))
10502                                         if defined $::RD_TRACE;
10503                 push @item, $item{__PATTERN1__}=$&;
10504                 
10505
10506
10507                 Parse::RecDescent::_trace(q{>>Matched production: [/TABLE_SCHEMA/i]<<},
10508                                           Parse::RecDescent::_tracefirst($text),
10509                                           q{sysibm_function},
10510                                           $tracelevel)
10511                                                 if defined $::RD_TRACE;
10512                 $_matched = 1;
10513                 last;
10514         }
10515
10516
10517         while (!$_matched && !$commit)
10518         {
10519                 
10520                 Parse::RecDescent::_trace(q{Trying production: [/TIME/i]},
10521                                           Parse::RecDescent::_tracefirst($_[1]),
10522                                           q{sysibm_function},
10523                                           $tracelevel)
10524                                                 if defined $::RD_TRACE;
10525                 my $thisprod = $thisrule->{"prods"}[76];
10526                 $text = $_[1];
10527                 my $_savetext;
10528                 @item = (q{sysibm_function});
10529                 %item = (__RULE__ => q{sysibm_function});
10530                 my $repcount = 0;
10531
10532
10533                 Parse::RecDescent::_trace(q{Trying terminal: [/TIME/i]}, Parse::RecDescent::_tracefirst($text),
10534                                           q{sysibm_function},
10535                                           $tracelevel)
10536                                                 if defined $::RD_TRACE;
10537                 $lastsep = "";
10538                 $expectation->is(q{})->at($text);
10539                 
10540
10541                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TIME)//i)
10542                 {
10543                         
10544                         $expectation->failed();
10545                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10546                                                   Parse::RecDescent::_tracefirst($text))
10547                                         if defined $::RD_TRACE;
10548
10549                         last;
10550                 }
10551                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10552                                                 . $& . q{])},
10553                                                   Parse::RecDescent::_tracefirst($text))
10554                                         if defined $::RD_TRACE;
10555                 push @item, $item{__PATTERN1__}=$&;
10556                 
10557
10558
10559                 Parse::RecDescent::_trace(q{>>Matched production: [/TIME/i]<<},
10560                                           Parse::RecDescent::_tracefirst($text),
10561                                           q{sysibm_function},
10562                                           $tracelevel)
10563                                                 if defined $::RD_TRACE;
10564                 $_matched = 1;
10565                 last;
10566         }
10567
10568
10569         while (!$_matched && !$commit)
10570         {
10571                 
10572                 Parse::RecDescent::_trace(q{Trying production: [/TIMESTAMP/i]},
10573                                           Parse::RecDescent::_tracefirst($_[1]),
10574                                           q{sysibm_function},
10575                                           $tracelevel)
10576                                                 if defined $::RD_TRACE;
10577                 my $thisprod = $thisrule->{"prods"}[77];
10578                 $text = $_[1];
10579                 my $_savetext;
10580                 @item = (q{sysibm_function});
10581                 %item = (__RULE__ => q{sysibm_function});
10582                 my $repcount = 0;
10583
10584
10585                 Parse::RecDescent::_trace(q{Trying terminal: [/TIMESTAMP/i]}, Parse::RecDescent::_tracefirst($text),
10586                                           q{sysibm_function},
10587                                           $tracelevel)
10588                                                 if defined $::RD_TRACE;
10589                 $lastsep = "";
10590                 $expectation->is(q{})->at($text);
10591                 
10592
10593                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TIMESTAMP)//i)
10594                 {
10595                         
10596                         $expectation->failed();
10597                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10598                                                   Parse::RecDescent::_tracefirst($text))
10599                                         if defined $::RD_TRACE;
10600
10601                         last;
10602                 }
10603                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10604                                                 . $& . q{])},
10605                                                   Parse::RecDescent::_tracefirst($text))
10606                                         if defined $::RD_TRACE;
10607                 push @item, $item{__PATTERN1__}=$&;
10608                 
10609
10610
10611                 Parse::RecDescent::_trace(q{>>Matched production: [/TIMESTAMP/i]<<},
10612                                           Parse::RecDescent::_tracefirst($text),
10613                                           q{sysibm_function},
10614                                           $tracelevel)
10615                                                 if defined $::RD_TRACE;
10616                 $_matched = 1;
10617                 last;
10618         }
10619
10620
10621         while (!$_matched && !$commit)
10622         {
10623                 
10624                 Parse::RecDescent::_trace(q{Trying production: [/TRANSLATE/i]},
10625                                           Parse::RecDescent::_tracefirst($_[1]),
10626                                           q{sysibm_function},
10627                                           $tracelevel)
10628                                                 if defined $::RD_TRACE;
10629                 my $thisprod = $thisrule->{"prods"}[78];
10630                 $text = $_[1];
10631                 my $_savetext;
10632                 @item = (q{sysibm_function});
10633                 %item = (__RULE__ => q{sysibm_function});
10634                 my $repcount = 0;
10635
10636
10637                 Parse::RecDescent::_trace(q{Trying terminal: [/TRANSLATE/i]}, Parse::RecDescent::_tracefirst($text),
10638                                           q{sysibm_function},
10639                                           $tracelevel)
10640                                                 if defined $::RD_TRACE;
10641                 $lastsep = "";
10642                 $expectation->is(q{})->at($text);
10643                 
10644
10645                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TRANSLATE)//i)
10646                 {
10647                         
10648                         $expectation->failed();
10649                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10650                                                   Parse::RecDescent::_tracefirst($text))
10651                                         if defined $::RD_TRACE;
10652
10653                         last;
10654                 }
10655                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10656                                                 . $& . q{])},
10657                                                   Parse::RecDescent::_tracefirst($text))
10658                                         if defined $::RD_TRACE;
10659                 push @item, $item{__PATTERN1__}=$&;
10660                 
10661
10662
10663                 Parse::RecDescent::_trace(q{>>Matched production: [/TRANSLATE/i]<<},
10664                                           Parse::RecDescent::_tracefirst($text),
10665                                           q{sysibm_function},
10666                                           $tracelevel)
10667                                                 if defined $::RD_TRACE;
10668                 $_matched = 1;
10669                 last;
10670         }
10671
10672
10673         while (!$_matched && !$commit)
10674         {
10675                 
10676                 Parse::RecDescent::_trace(q{Trying production: [/TYPE_ID/i]},
10677                                           Parse::RecDescent::_tracefirst($_[1]),
10678                                           q{sysibm_function},
10679                                           $tracelevel)
10680                                                 if defined $::RD_TRACE;
10681                 my $thisprod = $thisrule->{"prods"}[79];
10682                 $text = $_[1];
10683                 my $_savetext;
10684                 @item = (q{sysibm_function});
10685                 %item = (__RULE__ => q{sysibm_function});
10686                 my $repcount = 0;
10687
10688
10689                 Parse::RecDescent::_trace(q{Trying terminal: [/TYPE_ID/i]}, Parse::RecDescent::_tracefirst($text),
10690                                           q{sysibm_function},
10691                                           $tracelevel)
10692                                                 if defined $::RD_TRACE;
10693                 $lastsep = "";
10694                 $expectation->is(q{})->at($text);
10695                 
10696
10697                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TYPE_ID)//i)
10698                 {
10699                         
10700                         $expectation->failed();
10701                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10702                                                   Parse::RecDescent::_tracefirst($text))
10703                                         if defined $::RD_TRACE;
10704
10705                         last;
10706                 }
10707                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10708                                                 . $& . q{])},
10709                                                   Parse::RecDescent::_tracefirst($text))
10710                                         if defined $::RD_TRACE;
10711                 push @item, $item{__PATTERN1__}=$&;
10712                 
10713
10714
10715                 Parse::RecDescent::_trace(q{>>Matched production: [/TYPE_ID/i]<<},
10716                                           Parse::RecDescent::_tracefirst($text),
10717                                           q{sysibm_function},
10718                                           $tracelevel)
10719                                                 if defined $::RD_TRACE;
10720                 $_matched = 1;
10721                 last;
10722         }
10723
10724
10725         while (!$_matched && !$commit)
10726         {
10727                 
10728                 Parse::RecDescent::_trace(q{Trying production: [/TYPE_NAME/i]},
10729                                           Parse::RecDescent::_tracefirst($_[1]),
10730                                           q{sysibm_function},
10731                                           $tracelevel)
10732                                                 if defined $::RD_TRACE;
10733                 my $thisprod = $thisrule->{"prods"}[80];
10734                 $text = $_[1];
10735                 my $_savetext;
10736                 @item = (q{sysibm_function});
10737                 %item = (__RULE__ => q{sysibm_function});
10738                 my $repcount = 0;
10739
10740
10741                 Parse::RecDescent::_trace(q{Trying terminal: [/TYPE_NAME/i]}, Parse::RecDescent::_tracefirst($text),
10742                                           q{sysibm_function},
10743                                           $tracelevel)
10744                                                 if defined $::RD_TRACE;
10745                 $lastsep = "";
10746                 $expectation->is(q{})->at($text);
10747                 
10748
10749                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TYPE_NAME)//i)
10750                 {
10751                         
10752                         $expectation->failed();
10753                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10754                                                   Parse::RecDescent::_tracefirst($text))
10755                                         if defined $::RD_TRACE;
10756
10757                         last;
10758                 }
10759                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10760                                                 . $& . q{])},
10761                                                   Parse::RecDescent::_tracefirst($text))
10762                                         if defined $::RD_TRACE;
10763                 push @item, $item{__PATTERN1__}=$&;
10764                 
10765
10766
10767                 Parse::RecDescent::_trace(q{>>Matched production: [/TYPE_NAME/i]<<},
10768                                           Parse::RecDescent::_tracefirst($text),
10769                                           q{sysibm_function},
10770                                           $tracelevel)
10771                                                 if defined $::RD_TRACE;
10772                 $_matched = 1;
10773                 last;
10774         }
10775
10776
10777         while (!$_matched && !$commit)
10778         {
10779                 
10780                 Parse::RecDescent::_trace(q{Trying production: [/TYPE_SCHEMA/i]},
10781                                           Parse::RecDescent::_tracefirst($_[1]),
10782                                           q{sysibm_function},
10783                                           $tracelevel)
10784                                                 if defined $::RD_TRACE;
10785                 my $thisprod = $thisrule->{"prods"}[81];
10786                 $text = $_[1];
10787                 my $_savetext;
10788                 @item = (q{sysibm_function});
10789                 %item = (__RULE__ => q{sysibm_function});
10790                 my $repcount = 0;
10791
10792
10793                 Parse::RecDescent::_trace(q{Trying terminal: [/TYPE_SCHEMA/i]}, Parse::RecDescent::_tracefirst($text),
10794                                           q{sysibm_function},
10795                                           $tracelevel)
10796                                                 if defined $::RD_TRACE;
10797                 $lastsep = "";
10798                 $expectation->is(q{})->at($text);
10799                 
10800
10801                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TYPE_SCHEMA)//i)
10802                 {
10803                         
10804                         $expectation->failed();
10805                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10806                                                   Parse::RecDescent::_tracefirst($text))
10807                                         if defined $::RD_TRACE;
10808
10809                         last;
10810                 }
10811                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10812                                                 . $& . q{])},
10813                                                   Parse::RecDescent::_tracefirst($text))
10814                                         if defined $::RD_TRACE;
10815                 push @item, $item{__PATTERN1__}=$&;
10816                 
10817
10818
10819                 Parse::RecDescent::_trace(q{>>Matched production: [/TYPE_SCHEMA/i]<<},
10820                                           Parse::RecDescent::_tracefirst($text),
10821                                           q{sysibm_function},
10822                                           $tracelevel)
10823                                                 if defined $::RD_TRACE;
10824                 $_matched = 1;
10825                 last;
10826         }
10827
10828
10829         while (!$_matched && !$commit)
10830         {
10831                 
10832                 Parse::RecDescent::_trace(q{Trying production: [/UCASE/i, or /UPPER/i]},
10833                                           Parse::RecDescent::_tracefirst($_[1]),
10834                                           q{sysibm_function},
10835                                           $tracelevel)
10836                                                 if defined $::RD_TRACE;
10837                 my $thisprod = $thisrule->{"prods"}[82];
10838                 $text = $_[1];
10839                 my $_savetext;
10840                 @item = (q{sysibm_function});
10841                 %item = (__RULE__ => q{sysibm_function});
10842                 my $repcount = 0;
10843
10844
10845                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_83_of_rule_sysibm_function]},
10846                                   Parse::RecDescent::_tracefirst($text),
10847                                   q{sysibm_function},
10848                                   $tracelevel)
10849                                         if defined $::RD_TRACE;
10850                 if (1) { no strict qw{refs};
10851                 $expectation->is(q{})->at($text);
10852                 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 })))
10853                 {
10854                         
10855                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_83_of_rule_sysibm_function]>>},
10856                                                   Parse::RecDescent::_tracefirst($text),
10857                                                   q{sysibm_function},
10858                                                   $tracelevel)
10859                                                         if defined $::RD_TRACE;
10860                         $expectation->failed();
10861                         last;
10862                 }
10863                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_83_of_rule_sysibm_function]<< (return value: [}
10864                                         . $_tok . q{]},
10865                                           
10866                                           Parse::RecDescent::_tracefirst($text),
10867                                           q{sysibm_function},
10868                                           $tracelevel)
10869                                                 if defined $::RD_TRACE;
10870                 $item{q{_alternation_1_of_production_83_of_rule_sysibm_function}} = $_tok;
10871                 push @item, $_tok;
10872                 
10873                 }
10874
10875
10876                 Parse::RecDescent::_trace(q{>>Matched production: [/UCASE/i, or /UPPER/i]<<},
10877                                           Parse::RecDescent::_tracefirst($text),
10878                                           q{sysibm_function},
10879                                           $tracelevel)
10880                                                 if defined $::RD_TRACE;
10881                 $_matched = 1;
10882                 last;
10883         }
10884
10885
10886         while (!$_matched && !$commit)
10887         {
10888                 
10889                 Parse::RecDescent::_trace(q{Trying production: [/VALUE/i]},
10890                                           Parse::RecDescent::_tracefirst($_[1]),
10891                                           q{sysibm_function},
10892                                           $tracelevel)
10893                                                 if defined $::RD_TRACE;
10894                 my $thisprod = $thisrule->{"prods"}[83];
10895                 $text = $_[1];
10896                 my $_savetext;
10897                 @item = (q{sysibm_function});
10898                 %item = (__RULE__ => q{sysibm_function});
10899                 my $repcount = 0;
10900
10901
10902                 Parse::RecDescent::_trace(q{Trying terminal: [/VALUE/i]}, Parse::RecDescent::_tracefirst($text),
10903                                           q{sysibm_function},
10904                                           $tracelevel)
10905                                                 if defined $::RD_TRACE;
10906                 $lastsep = "";
10907                 $expectation->is(q{})->at($text);
10908                 
10909
10910                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VALUE)//i)
10911                 {
10912                         
10913                         $expectation->failed();
10914                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10915                                                   Parse::RecDescent::_tracefirst($text))
10916                                         if defined $::RD_TRACE;
10917
10918                         last;
10919                 }
10920                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10921                                                 . $& . q{])},
10922                                                   Parse::RecDescent::_tracefirst($text))
10923                                         if defined $::RD_TRACE;
10924                 push @item, $item{__PATTERN1__}=$&;
10925                 
10926
10927
10928                 Parse::RecDescent::_trace(q{>>Matched production: [/VALUE/i]<<},
10929                                           Parse::RecDescent::_tracefirst($text),
10930                                           q{sysibm_function},
10931                                           $tracelevel)
10932                                                 if defined $::RD_TRACE;
10933                 $_matched = 1;
10934                 last;
10935         }
10936
10937
10938         while (!$_matched && !$commit)
10939         {
10940                 
10941                 Parse::RecDescent::_trace(q{Trying production: [/VARCHAR/i]},
10942                                           Parse::RecDescent::_tracefirst($_[1]),
10943                                           q{sysibm_function},
10944                                           $tracelevel)
10945                                                 if defined $::RD_TRACE;
10946                 my $thisprod = $thisrule->{"prods"}[84];
10947                 $text = $_[1];
10948                 my $_savetext;
10949                 @item = (q{sysibm_function});
10950                 %item = (__RULE__ => q{sysibm_function});
10951                 my $repcount = 0;
10952
10953
10954                 Parse::RecDescent::_trace(q{Trying terminal: [/VARCHAR/i]}, Parse::RecDescent::_tracefirst($text),
10955                                           q{sysibm_function},
10956                                           $tracelevel)
10957                                                 if defined $::RD_TRACE;
10958                 $lastsep = "";
10959                 $expectation->is(q{})->at($text);
10960                 
10961
10962                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VARCHAR)//i)
10963                 {
10964                         
10965                         $expectation->failed();
10966                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10967                                                   Parse::RecDescent::_tracefirst($text))
10968                                         if defined $::RD_TRACE;
10969
10970                         last;
10971                 }
10972                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10973                                                 . $& . q{])},
10974                                                   Parse::RecDescent::_tracefirst($text))
10975                                         if defined $::RD_TRACE;
10976                 push @item, $item{__PATTERN1__}=$&;
10977                 
10978
10979
10980                 Parse::RecDescent::_trace(q{>>Matched production: [/VARCHAR/i]<<},
10981                                           Parse::RecDescent::_tracefirst($text),
10982                                           q{sysibm_function},
10983                                           $tracelevel)
10984                                                 if defined $::RD_TRACE;
10985                 $_matched = 1;
10986                 last;
10987         }
10988
10989
10990         while (!$_matched && !$commit)
10991         {
10992                 
10993                 Parse::RecDescent::_trace(q{Trying production: [/VARGRAPHIC/i]},
10994                                           Parse::RecDescent::_tracefirst($_[1]),
10995                                           q{sysibm_function},
10996                                           $tracelevel)
10997                                                 if defined $::RD_TRACE;
10998                 my $thisprod = $thisrule->{"prods"}[85];
10999                 $text = $_[1];
11000                 my $_savetext;
11001                 @item = (q{sysibm_function});
11002                 %item = (__RULE__ => q{sysibm_function});
11003                 my $repcount = 0;
11004
11005
11006                 Parse::RecDescent::_trace(q{Trying terminal: [/VARGRAPHIC/i]}, Parse::RecDescent::_tracefirst($text),
11007                                           q{sysibm_function},
11008                                           $tracelevel)
11009                                                 if defined $::RD_TRACE;
11010                 $lastsep = "";
11011                 $expectation->is(q{})->at($text);
11012                 
11013
11014                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VARGRAPHIC)//i)
11015                 {
11016                         
11017                         $expectation->failed();
11018                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11019                                                   Parse::RecDescent::_tracefirst($text))
11020                                         if defined $::RD_TRACE;
11021
11022                         last;
11023                 }
11024                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11025                                                 . $& . q{])},
11026                                                   Parse::RecDescent::_tracefirst($text))
11027                                         if defined $::RD_TRACE;
11028                 push @item, $item{__PATTERN1__}=$&;
11029                 
11030
11031
11032                 Parse::RecDescent::_trace(q{>>Matched production: [/VARGRAPHIC/i]<<},
11033                                           Parse::RecDescent::_tracefirst($text),
11034                                           q{sysibm_function},
11035                                           $tracelevel)
11036                                                 if defined $::RD_TRACE;
11037                 $_matched = 1;
11038                 last;
11039         }
11040
11041
11042         while (!$_matched && !$commit)
11043         {
11044                 
11045                 Parse::RecDescent::_trace(q{Trying production: [/VARIANCE/i, or /VAR/i]},
11046                                           Parse::RecDescent::_tracefirst($_[1]),
11047                                           q{sysibm_function},
11048                                           $tracelevel)
11049                                                 if defined $::RD_TRACE;
11050                 my $thisprod = $thisrule->{"prods"}[86];
11051                 $text = $_[1];
11052                 my $_savetext;
11053                 @item = (q{sysibm_function});
11054                 %item = (__RULE__ => q{sysibm_function});
11055                 my $repcount = 0;
11056
11057
11058                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_87_of_rule_sysibm_function]},
11059                                   Parse::RecDescent::_tracefirst($text),
11060                                   q{sysibm_function},
11061                                   $tracelevel)
11062                                         if defined $::RD_TRACE;
11063                 if (1) { no strict qw{refs};
11064                 $expectation->is(q{})->at($text);
11065                 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 })))
11066                 {
11067                         
11068                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_87_of_rule_sysibm_function]>>},
11069                                                   Parse::RecDescent::_tracefirst($text),
11070                                                   q{sysibm_function},
11071                                                   $tracelevel)
11072                                                         if defined $::RD_TRACE;
11073                         $expectation->failed();
11074                         last;
11075                 }
11076                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_87_of_rule_sysibm_function]<< (return value: [}
11077                                         . $_tok . q{]},
11078                                           
11079                                           Parse::RecDescent::_tracefirst($text),
11080                                           q{sysibm_function},
11081                                           $tracelevel)
11082                                                 if defined $::RD_TRACE;
11083                 $item{q{_alternation_1_of_production_87_of_rule_sysibm_function}} = $_tok;
11084                 push @item, $_tok;
11085                 
11086                 }
11087
11088
11089                 Parse::RecDescent::_trace(q{>>Matched production: [/VARIANCE/i, or /VAR/i]<<},
11090                                           Parse::RecDescent::_tracefirst($text),
11091                                           q{sysibm_function},
11092                                           $tracelevel)
11093                                                 if defined $::RD_TRACE;
11094                 $_matched = 1;
11095                 last;
11096         }
11097
11098
11099         while (!$_matched && !$commit)
11100         {
11101                 
11102                 Parse::RecDescent::_trace(q{Trying production: [/YEAR/i]},
11103                                           Parse::RecDescent::_tracefirst($_[1]),
11104                                           q{sysibm_function},
11105                                           $tracelevel)
11106                                                 if defined $::RD_TRACE;
11107                 my $thisprod = $thisrule->{"prods"}[87];
11108                 $text = $_[1];
11109                 my $_savetext;
11110                 @item = (q{sysibm_function});
11111                 %item = (__RULE__ => q{sysibm_function});
11112                 my $repcount = 0;
11113
11114
11115                 Parse::RecDescent::_trace(q{Trying terminal: [/YEAR/i]}, Parse::RecDescent::_tracefirst($text),
11116                                           q{sysibm_function},
11117                                           $tracelevel)
11118                                                 if defined $::RD_TRACE;
11119                 $lastsep = "";
11120                 $expectation->is(q{})->at($text);
11121                 
11122
11123                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:YEAR)//i)
11124                 {
11125                         
11126                         $expectation->failed();
11127                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11128                                                   Parse::RecDescent::_tracefirst($text))
11129                                         if defined $::RD_TRACE;
11130
11131                         last;
11132                 }
11133                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11134                                                 . $& . q{])},
11135                                                   Parse::RecDescent::_tracefirst($text))
11136                                         if defined $::RD_TRACE;
11137                 push @item, $item{__PATTERN1__}=$&;
11138                 
11139
11140
11141                 Parse::RecDescent::_trace(q{>>Matched production: [/YEAR/i]<<},
11142                                           Parse::RecDescent::_tracefirst($text),
11143                                           q{sysibm_function},
11144                                           $tracelevel)
11145                                                 if defined $::RD_TRACE;
11146                 $_matched = 1;
11147                 last;
11148         }
11149
11150
11151         unless ( $_matched || defined($return) || defined($score) )
11152         {
11153                 
11154
11155                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
11156                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11157                                          Parse::RecDescent::_tracefirst($_[1]),
11158                                          q{sysibm_function},
11159                                          $tracelevel)
11160                                         if defined $::RD_TRACE;
11161                 return undef;
11162         }
11163         if (!defined($return) && defined($score))
11164         {
11165                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11166                                           q{sysibm_function},
11167                                           $tracelevel)
11168                                                 if defined $::RD_TRACE;
11169                 $return = $score_return;
11170         }
11171         splice @{$thisparser->{errors}}, $err_at;
11172         $return = $item[$#item] unless defined $return;
11173         if (defined $::RD_TRACE)
11174         {
11175                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11176                                           $return . q{])}, "",
11177                                           q{sysibm_function},
11178                                           $tracelevel);
11179                 Parse::RecDescent::_trace(q{(consumed: [} .
11180                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
11181                                           Parse::RecDescent::_tracefirst($text),
11182                                           , q{sysibm_function},
11183                                           $tracelevel)
11184         }
11185         $_[1] = $text;
11186         return $return;
11187 }
11188
11189 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11190 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause
11191 {
11192         my $thisparser = $_[0];
11193         use vars q{$tracelevel};
11194         local $tracelevel = ($tracelevel||0)+1;
11195         $ERRORS = 0;
11196         my $thisrule = $thisparser->{"rules"}{"window_partition_clause"};
11197         
11198         Parse::RecDescent::_trace(q{Trying rule: [window_partition_clause]},
11199                                   Parse::RecDescent::_tracefirst($_[1]),
11200                                   q{window_partition_clause},
11201                                   $tracelevel)
11202                                         if defined $::RD_TRACE;
11203
11204         
11205         my $err_at = @{$thisparser->{errors}};
11206
11207         my $score;
11208         my $score_return;
11209         my $_tok;
11210         my $return = undef;
11211         my $_matched=0;
11212         my $commit=0;
11213         my @item = ();
11214         my %item = ();
11215         my $repeating =  defined($_[2]) && $_[2];
11216         my $_noactions = defined($_[3]) && $_[3];
11217         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
11218         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
11219         my $text;
11220         my $lastsep="";
11221         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11222         $expectation->at($_[1]);
11223         
11224         my $thisline;
11225         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11226
11227         
11228
11229         while (!$_matched && !$commit)
11230         {
11231                 
11232                 Parse::RecDescent::_trace(q{Trying production: [/PARTITION\\s+BY/i <leftop: partitioning_expression /,/ partitioning_expression>]},
11233                                           Parse::RecDescent::_tracefirst($_[1]),
11234                                           q{window_partition_clause},
11235                                           $tracelevel)
11236                                                 if defined $::RD_TRACE;
11237                 my $thisprod = $thisrule->{"prods"}[0];
11238                 $text = $_[1];
11239                 my $_savetext;
11240                 @item = (q{window_partition_clause});
11241                 %item = (__RULE__ => q{window_partition_clause});
11242                 my $repcount = 0;
11243
11244
11245                 Parse::RecDescent::_trace(q{Trying terminal: [/PARTITION\\s+BY/i]}, Parse::RecDescent::_tracefirst($text),
11246                                           q{window_partition_clause},
11247                                           $tracelevel)
11248                                                 if defined $::RD_TRACE;
11249                 $lastsep = "";
11250                 $expectation->is(q{})->at($text);
11251                 
11252
11253                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PARTITION\s+BY)//i)
11254                 {
11255                         
11256                         $expectation->failed();
11257                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11258                                                   Parse::RecDescent::_tracefirst($text))
11259                                         if defined $::RD_TRACE;
11260
11261                         last;
11262                 }
11263                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11264                                                 . $& . q{])},
11265                                                   Parse::RecDescent::_tracefirst($text))
11266                                         if defined $::RD_TRACE;
11267                 push @item, $item{__PATTERN1__}=$&;
11268                 
11269
11270                 Parse::RecDescent::_trace(q{Trying operator: [<leftop: partitioning_expression /,/ partitioning_expression>]},
11271                                   Parse::RecDescent::_tracefirst($text),
11272                                   q{window_partition_clause},
11273                                   $tracelevel)
11274                                         if defined $::RD_TRACE;
11275                 $expectation->is(q{<leftop: partitioning_expression /,/ partitioning_expression>})->at($text);
11276
11277                 $_tok = undef;
11278                 OPLOOP: while (1)
11279                 {
11280                   $repcount = 0;
11281                   my  @item;
11282                   
11283                   # MATCH LEFTARG
11284                   
11285                 Parse::RecDescent::_trace(q{Trying subrule: [partitioning_expression]},
11286                                   Parse::RecDescent::_tracefirst($text),
11287                                   q{window_partition_clause},
11288                                   $tracelevel)
11289                                         if defined $::RD_TRACE;
11290                 if (1) { no strict qw{refs};
11291                 $expectation->is(q{partitioning_expression})->at($text);
11292                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::partitioning_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
11293                 {
11294                         
11295                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [partitioning_expression]>>},
11296                                                   Parse::RecDescent::_tracefirst($text),
11297                                                   q{window_partition_clause},
11298                                                   $tracelevel)
11299                                                         if defined $::RD_TRACE;
11300                         $expectation->failed();
11301                         last;
11302                 }
11303                 Parse::RecDescent::_trace(q{>>Matched subrule: [partitioning_expression]<< (return value: [}
11304                                         . $_tok . q{]},
11305                                           
11306                                           Parse::RecDescent::_tracefirst($text),
11307                                           q{window_partition_clause},
11308                                           $tracelevel)
11309                                                 if defined $::RD_TRACE;
11310                 $item{q{partitioning_expression}} = $_tok;
11311                 push @item, $_tok;
11312                 
11313                 }
11314
11315
11316                   $repcount++;
11317
11318                   my $savetext = $text;
11319                   my $backtrack;
11320
11321                   # MATCH (OP RIGHTARG)(s)
11322                   while ($repcount < 100000000)
11323                   {
11324                         $backtrack = 0;
11325                         
11326                 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
11327                                           q{window_partition_clause},
11328                                           $tracelevel)
11329                                                 if defined $::RD_TRACE;
11330                 $lastsep = "";
11331                 $expectation->is(q{/,/})->at($text);
11332                 
11333
11334                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
11335                 {
11336                         
11337                         $expectation->failed();
11338                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11339                                                   Parse::RecDescent::_tracefirst($text))
11340                                         if defined $::RD_TRACE;
11341
11342                         last;
11343                 }
11344                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11345                                                 . $& . q{])},
11346                                                   Parse::RecDescent::_tracefirst($text))
11347                                         if defined $::RD_TRACE;
11348                 push @item, $item{__PATTERN2__}=$&;
11349                 
11350
11351                         pop @item;
11352                         if (defined $1) {push @item, $item{'partitioning_expression(s)'}=$1; $backtrack=1;}
11353                         
11354                 Parse::RecDescent::_trace(q{Trying subrule: [partitioning_expression]},
11355                                   Parse::RecDescent::_tracefirst($text),
11356                                   q{window_partition_clause},
11357                                   $tracelevel)
11358                                         if defined $::RD_TRACE;
11359                 if (1) { no strict qw{refs};
11360                 $expectation->is(q{partitioning_expression})->at($text);
11361                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::partitioning_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
11362                 {
11363                         
11364                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [partitioning_expression]>>},
11365                                                   Parse::RecDescent::_tracefirst($text),
11366                                                   q{window_partition_clause},
11367                                                   $tracelevel)
11368                                                         if defined $::RD_TRACE;
11369                         $expectation->failed();
11370                         last;
11371                 }
11372                 Parse::RecDescent::_trace(q{>>Matched subrule: [partitioning_expression]<< (return value: [}
11373                                         . $_tok . q{]},
11374                                           
11375                                           Parse::RecDescent::_tracefirst($text),
11376                                           q{window_partition_clause},
11377                                           $tracelevel)
11378                                                 if defined $::RD_TRACE;
11379                 $item{q{partitioning_expression}} = $_tok;
11380                 push @item, $_tok;
11381                 
11382                 }
11383
11384                         $savetext = $text;
11385                         $repcount++;
11386                   }
11387                   $text = $savetext;
11388                   pop @item if $backtrack;
11389
11390                   unless (@item) { undef $_tok; last }
11391                   $_tok = [ @item ];
11392                   last;
11393                 } 
11394
11395                 unless ($repcount>=1)
11396                 {
11397                         Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: partitioning_expression /,/ partitioning_expression>]>>},
11398                                                   Parse::RecDescent::_tracefirst($text),
11399                                                   q{window_partition_clause},
11400                                                   $tracelevel)
11401                                                         if defined $::RD_TRACE;
11402                         $expectation->failed();
11403                         last;
11404                 }
11405                 Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: partitioning_expression /,/ partitioning_expression>]<< (return value: [}
11406                                           . qq{@{$_tok||[]}} . q{]},
11407                                           Parse::RecDescent::_tracefirst($text),
11408                                           q{window_partition_clause},
11409                                           $tracelevel)
11410                                                 if defined $::RD_TRACE;
11411
11412                 push @item, $item{'partitioning_expression(s)'}=$_tok||[];
11413
11414
11415
11416                 Parse::RecDescent::_trace(q{>>Matched production: [/PARTITION\\s+BY/i <leftop: partitioning_expression /,/ partitioning_expression>]<<},
11417                                           Parse::RecDescent::_tracefirst($text),
11418                                           q{window_partition_clause},
11419                                           $tracelevel)
11420                                                 if defined $::RD_TRACE;
11421                 $_matched = 1;
11422                 last;
11423         }
11424
11425
11426         unless ( $_matched || defined($return) || defined($score) )
11427         {
11428                 
11429
11430                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
11431                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11432                                          Parse::RecDescent::_tracefirst($_[1]),
11433                                          q{window_partition_clause},
11434                                          $tracelevel)
11435                                         if defined $::RD_TRACE;
11436                 return undef;
11437         }
11438         if (!defined($return) && defined($score))
11439         {
11440                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11441                                           q{window_partition_clause},
11442                                           $tracelevel)
11443                                                 if defined $::RD_TRACE;
11444                 $return = $score_return;
11445         }
11446         splice @{$thisparser->{errors}}, $err_at;
11447         $return = $item[$#item] unless defined $return;
11448         if (defined $::RD_TRACE)
11449         {
11450                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11451                                           $return . q{])}, "",
11452                                           q{window_partition_clause},
11453                                           $tracelevel);
11454                 Parse::RecDescent::_trace(q{(consumed: [} .
11455                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
11456                                           Parse::RecDescent::_tracefirst($text),
11457                                           , q{window_partition_clause},
11458                                           $tracelevel)
11459         }
11460         $_[1] = $text;
11461         return $return;
11462 }
11463
11464 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11465 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::WHERE
11466 {
11467         my $thisparser = $_[0];
11468         use vars q{$tracelevel};
11469         local $tracelevel = ($tracelevel||0)+1;
11470         $ERRORS = 0;
11471         my $thisrule = $thisparser->{"rules"}{"WHERE"};
11472         
11473         Parse::RecDescent::_trace(q{Trying rule: [WHERE]},
11474                                   Parse::RecDescent::_tracefirst($_[1]),
11475                                   q{WHERE},
11476                                   $tracelevel)
11477                                         if defined $::RD_TRACE;
11478
11479         
11480         my $err_at = @{$thisparser->{errors}};
11481
11482         my $score;
11483         my $score_return;
11484         my $_tok;
11485         my $return = undef;
11486         my $_matched=0;
11487         my $commit=0;
11488         my @item = ();
11489         my %item = ();
11490         my $repeating =  defined($_[2]) && $_[2];
11491         my $_noactions = defined($_[3]) && $_[3];
11492         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
11493         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
11494         my $text;
11495         my $lastsep="";
11496         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11497         $expectation->at($_[1]);
11498         
11499         my $thisline;
11500         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11501
11502         
11503
11504         while (!$_matched && !$commit)
11505         {
11506                 
11507                 Parse::RecDescent::_trace(q{Trying production: [/where/i]},
11508                                           Parse::RecDescent::_tracefirst($_[1]),
11509                                           q{WHERE},
11510                                           $tracelevel)
11511                                                 if defined $::RD_TRACE;
11512                 my $thisprod = $thisrule->{"prods"}[0];
11513                 $text = $_[1];
11514                 my $_savetext;
11515                 @item = (q{WHERE});
11516                 %item = (__RULE__ => q{WHERE});
11517                 my $repcount = 0;
11518
11519
11520                 Parse::RecDescent::_trace(q{Trying terminal: [/where/i]}, Parse::RecDescent::_tracefirst($text),
11521                                           q{WHERE},
11522                                           $tracelevel)
11523                                                 if defined $::RD_TRACE;
11524                 $lastsep = "";
11525                 $expectation->is(q{})->at($text);
11526                 
11527
11528                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:where)//i)
11529                 {
11530                         
11531                         $expectation->failed();
11532                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11533                                                   Parse::RecDescent::_tracefirst($text))
11534                                         if defined $::RD_TRACE;
11535
11536                         last;
11537                 }
11538                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11539                                                 . $& . q{])},
11540                                                   Parse::RecDescent::_tracefirst($text))
11541                                         if defined $::RD_TRACE;
11542                 push @item, $item{__PATTERN1__}=$&;
11543                 
11544
11545
11546                 Parse::RecDescent::_trace(q{>>Matched production: [/where/i]<<},
11547                                           Parse::RecDescent::_tracefirst($text),
11548                                           q{WHERE},
11549                                           $tracelevel)
11550                                                 if defined $::RD_TRACE;
11551                 $_matched = 1;
11552                 last;
11553         }
11554
11555
11556         unless ( $_matched || defined($return) || defined($score) )
11557         {
11558                 
11559
11560                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
11561                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11562                                          Parse::RecDescent::_tracefirst($_[1]),
11563                                          q{WHERE},
11564                                          $tracelevel)
11565                                         if defined $::RD_TRACE;
11566                 return undef;
11567         }
11568         if (!defined($return) && defined($score))
11569         {
11570                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11571                                           q{WHERE},
11572                                           $tracelevel)
11573                                                 if defined $::RD_TRACE;
11574                 $return = $score_return;
11575         }
11576         splice @{$thisparser->{errors}}, $err_at;
11577         $return = $item[$#item] unless defined $return;
11578         if (defined $::RD_TRACE)
11579         {
11580                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11581                                           $return . q{])}, "",
11582                                           q{WHERE},
11583                                           $tracelevel);
11584                 Parse::RecDescent::_trace(q{(consumed: [} .
11585                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
11586                                           Parse::RecDescent::_tracefirst($text),
11587                                           , q{WHERE},
11588                                           $tracelevel)
11589         }
11590         $_[1] = $text;
11591         return $return;
11592 }
11593
11594 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11595 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE
11596 {
11597         my $thisparser = $_[0];
11598         use vars q{$tracelevel};
11599         local $tracelevel = ($tracelevel||0)+1;
11600         $ERRORS = 0;
11601         my $thisrule = $thisparser->{"rules"}{"CREATE"};
11602         
11603         Parse::RecDescent::_trace(q{Trying rule: [CREATE]},
11604                                   Parse::RecDescent::_tracefirst($_[1]),
11605                                   q{CREATE},
11606                                   $tracelevel)
11607                                         if defined $::RD_TRACE;
11608
11609         
11610         my $err_at = @{$thisparser->{errors}};
11611
11612         my $score;
11613         my $score_return;
11614         my $_tok;
11615         my $return = undef;
11616         my $_matched=0;
11617         my $commit=0;
11618         my @item = ();
11619         my %item = ();
11620         my $repeating =  defined($_[2]) && $_[2];
11621         my $_noactions = defined($_[3]) && $_[3];
11622         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
11623         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
11624         my $text;
11625         my $lastsep="";
11626         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11627         $expectation->at($_[1]);
11628         
11629         my $thisline;
11630         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11631
11632         
11633
11634         while (!$_matched && !$commit)
11635         {
11636                 
11637                 Parse::RecDescent::_trace(q{Trying production: [/create/i]},
11638                                           Parse::RecDescent::_tracefirst($_[1]),
11639                                           q{CREATE},
11640                                           $tracelevel)
11641                                                 if defined $::RD_TRACE;
11642                 my $thisprod = $thisrule->{"prods"}[0];
11643                 $text = $_[1];
11644                 my $_savetext;
11645                 @item = (q{CREATE});
11646                 %item = (__RULE__ => q{CREATE});
11647                 my $repcount = 0;
11648
11649
11650                 Parse::RecDescent::_trace(q{Trying terminal: [/create/i]}, Parse::RecDescent::_tracefirst($text),
11651                                           q{CREATE},
11652                                           $tracelevel)
11653                                                 if defined $::RD_TRACE;
11654                 $lastsep = "";
11655                 $expectation->is(q{})->at($text);
11656                 
11657
11658                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:create)//i)
11659                 {
11660                         
11661                         $expectation->failed();
11662                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11663                                                   Parse::RecDescent::_tracefirst($text))
11664                                         if defined $::RD_TRACE;
11665
11666                         last;
11667                 }
11668                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11669                                                 . $& . q{])},
11670                                                   Parse::RecDescent::_tracefirst($text))
11671                                         if defined $::RD_TRACE;
11672                 push @item, $item{__PATTERN1__}=$&;
11673                 
11674
11675
11676                 Parse::RecDescent::_trace(q{>>Matched production: [/create/i]<<},
11677                                           Parse::RecDescent::_tracefirst($text),
11678                                           q{CREATE},
11679                                           $tracelevel)
11680                                                 if defined $::RD_TRACE;
11681                 $_matched = 1;
11682                 last;
11683         }
11684
11685
11686         unless ( $_matched || defined($return) || defined($score) )
11687         {
11688                 
11689
11690                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
11691                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11692                                          Parse::RecDescent::_tracefirst($_[1]),
11693                                          q{CREATE},
11694                                          $tracelevel)
11695                                         if defined $::RD_TRACE;
11696                 return undef;
11697         }
11698         if (!defined($return) && defined($score))
11699         {
11700                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11701                                           q{CREATE},
11702                                           $tracelevel)
11703                                                 if defined $::RD_TRACE;
11704                 $return = $score_return;
11705         }
11706         splice @{$thisparser->{errors}}, $err_at;
11707         $return = $item[$#item] unless defined $return;
11708         if (defined $::RD_TRACE)
11709         {
11710                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11711                                           $return . q{])}, "",
11712                                           q{CREATE},
11713                                           $tracelevel);
11714                 Parse::RecDescent::_trace(q{(consumed: [} .
11715                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
11716                                           Parse::RecDescent::_tracefirst($text),
11717                                           , q{CREATE},
11718                                           $tracelevel)
11719         }
11720         $_[1] = $text;
11721         return $return;
11722 }
11723
11724 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11725 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysfun
11726 {
11727         my $thisparser = $_[0];
11728         use vars q{$tracelevel};
11729         local $tracelevel = ($tracelevel||0)+1;
11730         $ERRORS = 0;
11731         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_sysfun"};
11732         
11733         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_sysfun]},
11734                                   Parse::RecDescent::_tracefirst($_[1]),
11735                                   q{_alternation_1_of_production_1_of_rule_sysfun},
11736                                   $tracelevel)
11737                                         if defined $::RD_TRACE;
11738
11739         
11740         my $err_at = @{$thisparser->{errors}};
11741
11742         my $score;
11743         my $score_return;
11744         my $_tok;
11745         my $return = undef;
11746         my $_matched=0;
11747         my $commit=0;
11748         my @item = ();
11749         my %item = ();
11750         my $repeating =  defined($_[2]) && $_[2];
11751         my $_noactions = defined($_[3]) && $_[3];
11752         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
11753         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
11754         my $text;
11755         my $lastsep="";
11756         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11757         $expectation->at($_[1]);
11758         
11759         my $thisline;
11760         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11761
11762         
11763
11764         while (!$_matched && !$commit)
11765         {
11766                 
11767                 Parse::RecDescent::_trace(q{Trying production: [/ABS/i]},
11768                                           Parse::RecDescent::_tracefirst($_[1]),
11769                                           q{_alternation_1_of_production_1_of_rule_sysfun},
11770                                           $tracelevel)
11771                                                 if defined $::RD_TRACE;
11772                 my $thisprod = $thisrule->{"prods"}[0];
11773                 $text = $_[1];
11774                 my $_savetext;
11775                 @item = (q{_alternation_1_of_production_1_of_rule_sysfun});
11776                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysfun});
11777                 my $repcount = 0;
11778
11779
11780                 Parse::RecDescent::_trace(q{Trying terminal: [/ABS/i]}, Parse::RecDescent::_tracefirst($text),
11781                                           q{_alternation_1_of_production_1_of_rule_sysfun},
11782                                           $tracelevel)
11783                                                 if defined $::RD_TRACE;
11784                 $lastsep = "";
11785                 $expectation->is(q{})->at($text);
11786                 
11787
11788                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ABS)//i)
11789                 {
11790                         
11791                         $expectation->failed();
11792                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11793                                                   Parse::RecDescent::_tracefirst($text))
11794                                         if defined $::RD_TRACE;
11795
11796                         last;
11797                 }
11798                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11799                                                 . $& . q{])},
11800                                                   Parse::RecDescent::_tracefirst($text))
11801                                         if defined $::RD_TRACE;
11802                 push @item, $item{__PATTERN1__}=$&;
11803                 
11804
11805
11806                 Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i]<<},
11807                                           Parse::RecDescent::_tracefirst($text),
11808                                           q{_alternation_1_of_production_1_of_rule_sysfun},
11809                                           $tracelevel)
11810                                                 if defined $::RD_TRACE;
11811                 $_matched = 1;
11812                 last;
11813         }
11814
11815
11816         while (!$_matched && !$commit)
11817         {
11818                 
11819                 Parse::RecDescent::_trace(q{Trying production: [/ABSVAL/i]},
11820                                           Parse::RecDescent::_tracefirst($_[1]),
11821                                           q{_alternation_1_of_production_1_of_rule_sysfun},
11822                                           $tracelevel)
11823                                                 if defined $::RD_TRACE;
11824                 my $thisprod = $thisrule->{"prods"}[1];
11825                 $text = $_[1];
11826                 my $_savetext;
11827                 @item = (q{_alternation_1_of_production_1_of_rule_sysfun});
11828                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysfun});
11829                 my $repcount = 0;
11830
11831
11832                 Parse::RecDescent::_trace(q{Trying terminal: [/ABSVAL/i]}, Parse::RecDescent::_tracefirst($text),
11833                                           q{_alternation_1_of_production_1_of_rule_sysfun},
11834                                           $tracelevel)
11835                                                 if defined $::RD_TRACE;
11836                 $lastsep = "";
11837                 $expectation->is(q{})->at($text);
11838                 
11839
11840                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ABSVAL)//i)
11841                 {
11842                         
11843                         $expectation->failed();
11844                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11845                                                   Parse::RecDescent::_tracefirst($text))
11846                                         if defined $::RD_TRACE;
11847
11848                         last;
11849                 }
11850                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11851                                                 . $& . q{])},
11852                                                   Parse::RecDescent::_tracefirst($text))
11853                                         if defined $::RD_TRACE;
11854                 push @item, $item{__PATTERN1__}=$&;
11855                 
11856
11857
11858                 Parse::RecDescent::_trace(q{>>Matched production: [/ABSVAL/i]<<},
11859                                           Parse::RecDescent::_tracefirst($text),
11860                                           q{_alternation_1_of_production_1_of_rule_sysfun},
11861                                           $tracelevel)
11862                                                 if defined $::RD_TRACE;
11863                 $_matched = 1;
11864                 last;
11865         }
11866
11867
11868         unless ( $_matched || defined($return) || defined($score) )
11869         {
11870                 
11871
11872                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
11873                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11874                                          Parse::RecDescent::_tracefirst($_[1]),
11875                                          q{_alternation_1_of_production_1_of_rule_sysfun},
11876                                          $tracelevel)
11877                                         if defined $::RD_TRACE;
11878                 return undef;
11879         }
11880         if (!defined($return) && defined($score))
11881         {
11882                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11883                                           q{_alternation_1_of_production_1_of_rule_sysfun},
11884                                           $tracelevel)
11885                                                 if defined $::RD_TRACE;
11886                 $return = $score_return;
11887         }
11888         splice @{$thisparser->{errors}}, $err_at;
11889         $return = $item[$#item] unless defined $return;
11890         if (defined $::RD_TRACE)
11891         {
11892                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11893                                           $return . q{])}, "",
11894                                           q{_alternation_1_of_production_1_of_rule_sysfun},
11895                                           $tracelevel);
11896                 Parse::RecDescent::_trace(q{(consumed: [} .
11897                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
11898                                           Parse::RecDescent::_tracefirst($text),
11899                                           , q{_alternation_1_of_production_1_of_rule_sysfun},
11900                                           $tracelevel)
11901         }
11902         $_[1] = $text;
11903         return $return;
11904 }
11905
11906 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11907 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_function
11908 {
11909         my $thisparser = $_[0];
11910         use vars q{$tracelevel};
11911         local $tracelevel = ($tracelevel||0)+1;
11912         $ERRORS = 0;
11913         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_function"};
11914         
11915         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_function]},
11916                                   Parse::RecDescent::_tracefirst($_[1]),
11917                                   q{_alternation_1_of_production_1_of_rule_function},
11918                                   $tracelevel)
11919                                         if defined $::RD_TRACE;
11920
11921         
11922         my $err_at = @{$thisparser->{errors}};
11923
11924         my $score;
11925         my $score_return;
11926         my $_tok;
11927         my $return = undef;
11928         my $_matched=0;
11929         my $commit=0;
11930         my @item = ();
11931         my %item = ();
11932         my $repeating =  defined($_[2]) && $_[2];
11933         my $_noactions = defined($_[3]) && $_[3];
11934         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
11935         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
11936         my $text;
11937         my $lastsep="";
11938         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11939         $expectation->at($_[1]);
11940         
11941         my $thisline;
11942         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11943
11944         
11945
11946         while (!$_matched && !$commit)
11947         {
11948                 
11949                 Parse::RecDescent::_trace(q{Trying production: [/SYSIBM\\.|/i sysibm_function]},
11950                                           Parse::RecDescent::_tracefirst($_[1]),
11951                                           q{_alternation_1_of_production_1_of_rule_function},
11952                                           $tracelevel)
11953                                                 if defined $::RD_TRACE;
11954                 my $thisprod = $thisrule->{"prods"}[0];
11955                 $text = $_[1];
11956                 my $_savetext;
11957                 @item = (q{_alternation_1_of_production_1_of_rule_function});
11958                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
11959                 my $repcount = 0;
11960
11961
11962                 Parse::RecDescent::_trace(q{Trying terminal: [/SYSIBM\\.|/i]}, Parse::RecDescent::_tracefirst($text),
11963                                           q{_alternation_1_of_production_1_of_rule_function},
11964                                           $tracelevel)
11965                                                 if defined $::RD_TRACE;
11966                 $lastsep = "";
11967                 $expectation->is(q{})->at($text);
11968                 
11969
11970                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SYSIBM\.|)//i)
11971                 {
11972                         
11973                         $expectation->failed();
11974                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11975                                                   Parse::RecDescent::_tracefirst($text))
11976                                         if defined $::RD_TRACE;
11977
11978                         last;
11979                 }
11980                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11981                                                 . $& . q{])},
11982                                                   Parse::RecDescent::_tracefirst($text))
11983                                         if defined $::RD_TRACE;
11984                 push @item, $item{__PATTERN1__}=$&;
11985                 
11986
11987                 Parse::RecDescent::_trace(q{Trying subrule: [sysibm_function]},
11988                                   Parse::RecDescent::_tracefirst($text),
11989                                   q{_alternation_1_of_production_1_of_rule_function},
11990                                   $tracelevel)
11991                                         if defined $::RD_TRACE;
11992                 if (1) { no strict qw{refs};
11993                 $expectation->is(q{sysibm_function})->at($text);
11994                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
11995                 {
11996                         
11997                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [sysibm_function]>>},
11998                                                   Parse::RecDescent::_tracefirst($text),
11999                                                   q{_alternation_1_of_production_1_of_rule_function},
12000                                                   $tracelevel)
12001                                                         if defined $::RD_TRACE;
12002                         $expectation->failed();
12003                         last;
12004                 }
12005                 Parse::RecDescent::_trace(q{>>Matched subrule: [sysibm_function]<< (return value: [}
12006                                         . $_tok . q{]},
12007                                           
12008                                           Parse::RecDescent::_tracefirst($text),
12009                                           q{_alternation_1_of_production_1_of_rule_function},
12010                                           $tracelevel)
12011                                                 if defined $::RD_TRACE;
12012                 $item{q{sysibm_function}} = $_tok;
12013                 push @item, $_tok;
12014                 
12015                 }
12016
12017
12018                 Parse::RecDescent::_trace(q{>>Matched production: [/SYSIBM\\.|/i sysibm_function]<<},
12019                                           Parse::RecDescent::_tracefirst($text),
12020                                           q{_alternation_1_of_production_1_of_rule_function},
12021                                           $tracelevel)
12022                                                 if defined $::RD_TRACE;
12023                 $_matched = 1;
12024                 last;
12025         }
12026
12027
12028         while (!$_matched && !$commit)
12029         {
12030                 
12031                 Parse::RecDescent::_trace(q{Trying production: [/SYSFUN\\.|/i sysfun_function]},
12032                                           Parse::RecDescent::_tracefirst($_[1]),
12033                                           q{_alternation_1_of_production_1_of_rule_function},
12034                                           $tracelevel)
12035                                                 if defined $::RD_TRACE;
12036                 my $thisprod = $thisrule->{"prods"}[1];
12037                 $text = $_[1];
12038                 my $_savetext;
12039                 @item = (q{_alternation_1_of_production_1_of_rule_function});
12040                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
12041                 my $repcount = 0;
12042
12043
12044                 Parse::RecDescent::_trace(q{Trying terminal: [/SYSFUN\\.|/i]}, Parse::RecDescent::_tracefirst($text),
12045                                           q{_alternation_1_of_production_1_of_rule_function},
12046                                           $tracelevel)
12047                                                 if defined $::RD_TRACE;
12048                 $lastsep = "";
12049                 $expectation->is(q{})->at($text);
12050                 
12051
12052                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SYSFUN\.|)//i)
12053                 {
12054                         
12055                         $expectation->failed();
12056                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
12057                                                   Parse::RecDescent::_tracefirst($text))
12058                                         if defined $::RD_TRACE;
12059
12060                         last;
12061                 }
12062                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12063                                                 . $& . q{])},
12064                                                   Parse::RecDescent::_tracefirst($text))
12065                                         if defined $::RD_TRACE;
12066                 push @item, $item{__PATTERN1__}=$&;
12067                 
12068
12069                 Parse::RecDescent::_trace(q{Trying subrule: [sysfun_function]},
12070                                   Parse::RecDescent::_tracefirst($text),
12071                                   q{_alternation_1_of_production_1_of_rule_function},
12072                                   $tracelevel)
12073                                         if defined $::RD_TRACE;
12074                 if (1) { no strict qw{refs};
12075                 $expectation->is(q{sysfun_function})->at($text);
12076                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysfun_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12077                 {
12078                         
12079                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [sysfun_function]>>},
12080                                                   Parse::RecDescent::_tracefirst($text),
12081                                                   q{_alternation_1_of_production_1_of_rule_function},
12082                                                   $tracelevel)
12083                                                         if defined $::RD_TRACE;
12084                         $expectation->failed();
12085                         last;
12086                 }
12087                 Parse::RecDescent::_trace(q{>>Matched subrule: [sysfun_function]<< (return value: [}
12088                                         . $_tok . q{]},
12089                                           
12090                                           Parse::RecDescent::_tracefirst($text),
12091                                           q{_alternation_1_of_production_1_of_rule_function},
12092                                           $tracelevel)
12093                                                 if defined $::RD_TRACE;
12094                 $item{q{sysfun_function}} = $_tok;
12095                 push @item, $_tok;
12096                 
12097                 }
12098
12099
12100                 Parse::RecDescent::_trace(q{>>Matched production: [/SYSFUN\\.|/i sysfun_function]<<},
12101                                           Parse::RecDescent::_tracefirst($text),
12102                                           q{_alternation_1_of_production_1_of_rule_function},
12103                                           $tracelevel)
12104                                                 if defined $::RD_TRACE;
12105                 $_matched = 1;
12106                 last;
12107         }
12108
12109
12110         while (!$_matched && !$commit)
12111         {
12112                 
12113                 Parse::RecDescent::_trace(q{Trying production: [userdefined_function]},
12114                                           Parse::RecDescent::_tracefirst($_[1]),
12115                                           q{_alternation_1_of_production_1_of_rule_function},
12116                                           $tracelevel)
12117                                                 if defined $::RD_TRACE;
12118                 my $thisprod = $thisrule->{"prods"}[2];
12119                 $text = $_[1];
12120                 my $_savetext;
12121                 @item = (q{_alternation_1_of_production_1_of_rule_function});
12122                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
12123                 my $repcount = 0;
12124
12125
12126                 Parse::RecDescent::_trace(q{Trying subrule: [userdefined_function]},
12127                                   Parse::RecDescent::_tracefirst($text),
12128                                   q{_alternation_1_of_production_1_of_rule_function},
12129                                   $tracelevel)
12130                                         if defined $::RD_TRACE;
12131                 if (1) { no strict qw{refs};
12132                 $expectation->is(q{})->at($text);
12133                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::userdefined_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12134                 {
12135                         
12136                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [userdefined_function]>>},
12137                                                   Parse::RecDescent::_tracefirst($text),
12138                                                   q{_alternation_1_of_production_1_of_rule_function},
12139                                                   $tracelevel)
12140                                                         if defined $::RD_TRACE;
12141                         $expectation->failed();
12142                         last;
12143                 }
12144                 Parse::RecDescent::_trace(q{>>Matched subrule: [userdefined_function]<< (return value: [}
12145                                         . $_tok . q{]},
12146                                           
12147                                           Parse::RecDescent::_tracefirst($text),
12148                                           q{_alternation_1_of_production_1_of_rule_function},
12149                                           $tracelevel)
12150                                                 if defined $::RD_TRACE;
12151                 $item{q{userdefined_function}} = $_tok;
12152                 push @item, $_tok;
12153                 
12154                 }
12155
12156
12157                 Parse::RecDescent::_trace(q{>>Matched production: [userdefined_function]<<},
12158                                           Parse::RecDescent::_tracefirst($text),
12159                                           q{_alternation_1_of_production_1_of_rule_function},
12160                                           $tracelevel)
12161                                                 if defined $::RD_TRACE;
12162                 $_matched = 1;
12163                 last;
12164         }
12165
12166
12167         unless ( $_matched || defined($return) || defined($score) )
12168         {
12169                 
12170
12171                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
12172                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
12173                                          Parse::RecDescent::_tracefirst($_[1]),
12174                                          q{_alternation_1_of_production_1_of_rule_function},
12175                                          $tracelevel)
12176                                         if defined $::RD_TRACE;
12177                 return undef;
12178         }
12179         if (!defined($return) && defined($score))
12180         {
12181                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12182                                           q{_alternation_1_of_production_1_of_rule_function},
12183                                           $tracelevel)
12184                                                 if defined $::RD_TRACE;
12185                 $return = $score_return;
12186         }
12187         splice @{$thisparser->{errors}}, $err_at;
12188         $return = $item[$#item] unless defined $return;
12189         if (defined $::RD_TRACE)
12190         {
12191                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12192                                           $return . q{])}, "",
12193                                           q{_alternation_1_of_production_1_of_rule_function},
12194                                           $tracelevel);
12195                 Parse::RecDescent::_trace(q{(consumed: [} .
12196                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
12197                                           Parse::RecDescent::_tracefirst($text),
12198                                           , q{_alternation_1_of_production_1_of_rule_function},
12199                                           $tracelevel)
12200         }
12201         $_[1] = $text;
12202         return $return;
12203 }
12204
12205 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12206 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier
12207 {
12208         my $thisparser = $_[0];
12209         use vars q{$tracelevel};
12210         local $tracelevel = ($tracelevel||0)+1;
12211         $ERRORS = 0;
12212         my $thisrule = $thisparser->{"rules"}{"identifier"};
12213         
12214         Parse::RecDescent::_trace(q{Trying rule: [identifier]},
12215                                   Parse::RecDescent::_tracefirst($_[1]),
12216                                   q{identifier},
12217                                   $tracelevel)
12218                                         if defined $::RD_TRACE;
12219
12220         
12221         my $err_at = @{$thisparser->{errors}};
12222
12223         my $score;
12224         my $score_return;
12225         my $_tok;
12226         my $return = undef;
12227         my $_matched=0;
12228         my $commit=0;
12229         my @item = ();
12230         my %item = ();
12231         my $repeating =  defined($_[2]) && $_[2];
12232         my $_noactions = defined($_[3]) && $_[3];
12233         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
12234         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
12235         my $text;
12236         my $lastsep="";
12237         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12238         $expectation->at($_[1]);
12239         
12240         my $thisline;
12241         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12242
12243         
12244
12245         while (!$_matched && !$commit)
12246         {
12247                 
12248                 Parse::RecDescent::_trace(q{Trying production: [NAME]},
12249                                           Parse::RecDescent::_tracefirst($_[1]),
12250                                           q{identifier},
12251                                           $tracelevel)
12252                                                 if defined $::RD_TRACE;
12253                 my $thisprod = $thisrule->{"prods"}[0];
12254                 $text = $_[1];
12255                 my $_savetext;
12256                 @item = (q{identifier});
12257                 %item = (__RULE__ => q{identifier});
12258                 my $repcount = 0;
12259
12260
12261                 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
12262                                   Parse::RecDescent::_tracefirst($text),
12263                                   q{identifier},
12264                                   $tracelevel)
12265                                         if defined $::RD_TRACE;
12266                 if (1) { no strict qw{refs};
12267                 $expectation->is(q{})->at($text);
12268                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12269                 {
12270                         
12271                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
12272                                                   Parse::RecDescent::_tracefirst($text),
12273                                                   q{identifier},
12274                                                   $tracelevel)
12275                                                         if defined $::RD_TRACE;
12276                         $expectation->failed();
12277                         last;
12278                 }
12279                 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
12280                                         . $_tok . q{]},
12281                                           
12282                                           Parse::RecDescent::_tracefirst($text),
12283                                           q{identifier},
12284                                           $tracelevel)
12285                                                 if defined $::RD_TRACE;
12286                 $item{q{NAME}} = $_tok;
12287                 push @item, $_tok;
12288                 
12289                 }
12290
12291
12292                 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
12293                                           Parse::RecDescent::_tracefirst($text),
12294                                           q{identifier},
12295                                           $tracelevel)
12296                                                 if defined $::RD_TRACE;
12297                 $_matched = 1;
12298                 last;
12299         }
12300
12301
12302         unless ( $_matched || defined($return) || defined($score) )
12303         {
12304                 
12305
12306                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
12307                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
12308                                          Parse::RecDescent::_tracefirst($_[1]),
12309                                          q{identifier},
12310                                          $tracelevel)
12311                                         if defined $::RD_TRACE;
12312                 return undef;
12313         }
12314         if (!defined($return) && defined($score))
12315         {
12316                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12317                                           q{identifier},
12318                                           $tracelevel)
12319                                                 if defined $::RD_TRACE;
12320                 $return = $score_return;
12321         }
12322         splice @{$thisparser->{errors}}, $err_at;
12323         $return = $item[$#item] unless defined $return;
12324         if (defined $::RD_TRACE)
12325         {
12326                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12327                                           $return . q{])}, "",
12328                                           q{identifier},
12329                                           $tracelevel);
12330                 Parse::RecDescent::_trace(q{(consumed: [} .
12331                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
12332                                           Parse::RecDescent::_tracefirst($text),
12333                                           , q{identifier},
12334                                           $tracelevel)
12335         }
12336         $_[1] = $text;
12337         return $return;
12338 }
12339
12340 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12341 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
12342 {
12343         my $thisparser = $_[0];
12344         use vars q{$tracelevel};
12345         local $tracelevel = ($tracelevel||0)+1;
12346         $ERRORS = 0;
12347         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause"};
12348         
12349         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause]},
12350                                   Parse::RecDescent::_tracefirst($_[1]),
12351                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12352                                   $tracelevel)
12353                                         if defined $::RD_TRACE;
12354
12355         
12356         my $err_at = @{$thisparser->{errors}};
12357
12358         my $score;
12359         my $score_return;
12360         my $_tok;
12361         my $return = undef;
12362         my $_matched=0;
12363         my $commit=0;
12364         my @item = ();
12365         my %item = ();
12366         my $repeating =  defined($_[2]) && $_[2];
12367         my $_noactions = defined($_[3]) && $_[3];
12368         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
12369         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
12370         my $text;
12371         my $lastsep="";
12372         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12373         $expectation->at($_[1]);
12374         
12375         my $thisline;
12376         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12377
12378         
12379
12380         while (!$_matched && !$commit)
12381         {
12382                 
12383                 Parse::RecDescent::_trace(q{Trying production: [asc_option]},
12384                                           Parse::RecDescent::_tracefirst($_[1]),
12385                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12386                                           $tracelevel)
12387                                                 if defined $::RD_TRACE;
12388                 my $thisprod = $thisrule->{"prods"}[0];
12389                 $text = $_[1];
12390                 my $_savetext;
12391                 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
12392                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
12393                 my $repcount = 0;
12394
12395
12396                 Parse::RecDescent::_trace(q{Trying subrule: [asc_option]},
12397                                   Parse::RecDescent::_tracefirst($text),
12398                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12399                                   $tracelevel)
12400                                         if defined $::RD_TRACE;
12401                 if (1) { no strict qw{refs};
12402                 $expectation->is(q{})->at($text);
12403                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::asc_option($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12404                 {
12405                         
12406                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [asc_option]>>},
12407                                                   Parse::RecDescent::_tracefirst($text),
12408                                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12409                                                   $tracelevel)
12410                                                         if defined $::RD_TRACE;
12411                         $expectation->failed();
12412                         last;
12413                 }
12414                 Parse::RecDescent::_trace(q{>>Matched subrule: [asc_option]<< (return value: [}
12415                                         . $_tok . q{]},
12416                                           
12417                                           Parse::RecDescent::_tracefirst($text),
12418                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12419                                           $tracelevel)
12420                                                 if defined $::RD_TRACE;
12421                 $item{q{asc_option}} = $_tok;
12422                 push @item, $_tok;
12423                 
12424                 }
12425
12426
12427                 Parse::RecDescent::_trace(q{>>Matched production: [asc_option]<<},
12428                                           Parse::RecDescent::_tracefirst($text),
12429                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12430                                           $tracelevel)
12431                                                 if defined $::RD_TRACE;
12432                 $_matched = 1;
12433                 last;
12434         }
12435
12436
12437         while (!$_matched && !$commit)
12438         {
12439                 
12440                 Parse::RecDescent::_trace(q{Trying production: [desc_option]},
12441                                           Parse::RecDescent::_tracefirst($_[1]),
12442                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12443                                           $tracelevel)
12444                                                 if defined $::RD_TRACE;
12445                 my $thisprod = $thisrule->{"prods"}[1];
12446                 $text = $_[1];
12447                 my $_savetext;
12448                 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
12449                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
12450                 my $repcount = 0;
12451
12452
12453                 Parse::RecDescent::_trace(q{Trying subrule: [desc_option]},
12454                                   Parse::RecDescent::_tracefirst($text),
12455                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12456                                   $tracelevel)
12457                                         if defined $::RD_TRACE;
12458                 if (1) { no strict qw{refs};
12459                 $expectation->is(q{})->at($text);
12460                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::desc_option($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12461                 {
12462                         
12463                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [desc_option]>>},
12464                                                   Parse::RecDescent::_tracefirst($text),
12465                                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12466                                                   $tracelevel)
12467                                                         if defined $::RD_TRACE;
12468                         $expectation->failed();
12469                         last;
12470                 }
12471                 Parse::RecDescent::_trace(q{>>Matched subrule: [desc_option]<< (return value: [}
12472                                         . $_tok . q{]},
12473                                           
12474                                           Parse::RecDescent::_tracefirst($text),
12475                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12476                                           $tracelevel)
12477                                                 if defined $::RD_TRACE;
12478                 $item{q{desc_option}} = $_tok;
12479                 push @item, $_tok;
12480                 
12481                 }
12482
12483
12484                 Parse::RecDescent::_trace(q{>>Matched production: [desc_option]<<},
12485                                           Parse::RecDescent::_tracefirst($text),
12486                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12487                                           $tracelevel)
12488                                                 if defined $::RD_TRACE;
12489                 $_matched = 1;
12490                 last;
12491         }
12492
12493
12494         unless ( $_matched || defined($return) || defined($score) )
12495         {
12496                 
12497
12498                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
12499                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
12500                                          Parse::RecDescent::_tracefirst($_[1]),
12501                                          q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12502                                          $tracelevel)
12503                                         if defined $::RD_TRACE;
12504                 return undef;
12505         }
12506         if (!defined($return) && defined($score))
12507         {
12508                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12509                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12510                                           $tracelevel)
12511                                                 if defined $::RD_TRACE;
12512                 $return = $score_return;
12513         }
12514         splice @{$thisparser->{errors}}, $err_at;
12515         $return = $item[$#item] unless defined $return;
12516         if (defined $::RD_TRACE)
12517         {
12518                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12519                                           $return . q{])}, "",
12520                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12521                                           $tracelevel);
12522                 Parse::RecDescent::_trace(q{(consumed: [} .
12523                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
12524                                           Parse::RecDescent::_tracefirst($text),
12525                                           , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12526                                           $tracelevel)
12527         }
12528         $_[1] = $text;
12529         return $return;
12530 }
12531
12532 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12533 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression
12534 {
12535         my $thisparser = $_[0];
12536         use vars q{$tracelevel};
12537         local $tracelevel = ($tracelevel||0)+1;
12538         $ERRORS = 0;
12539         my $thisrule = $thisparser->{"rules"}{"result_expression"};
12540         
12541         Parse::RecDescent::_trace(q{Trying rule: [result_expression]},
12542                                   Parse::RecDescent::_tracefirst($_[1]),
12543                                   q{result_expression},
12544                                   $tracelevel)
12545                                         if defined $::RD_TRACE;
12546
12547         
12548         my $err_at = @{$thisparser->{errors}};
12549
12550         my $score;
12551         my $score_return;
12552         my $_tok;
12553         my $return = undef;
12554         my $_matched=0;
12555         my $commit=0;
12556         my @item = ();
12557         my %item = ();
12558         my $repeating =  defined($_[2]) && $_[2];
12559         my $_noactions = defined($_[3]) && $_[3];
12560         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
12561         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
12562         my $text;
12563         my $lastsep="";
12564         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12565         $expectation->at($_[1]);
12566         
12567         my $thisline;
12568         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12569
12570         
12571
12572         while (!$_matched && !$commit)
12573         {
12574                 
12575                 Parse::RecDescent::_trace(q{Trying production: [expression]},
12576                                           Parse::RecDescent::_tracefirst($_[1]),
12577                                           q{result_expression},
12578                                           $tracelevel)
12579                                                 if defined $::RD_TRACE;
12580                 my $thisprod = $thisrule->{"prods"}[0];
12581                 $text = $_[1];
12582                 my $_savetext;
12583                 @item = (q{result_expression});
12584                 %item = (__RULE__ => q{result_expression});
12585                 my $repcount = 0;
12586
12587
12588                 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
12589                                   Parse::RecDescent::_tracefirst($text),
12590                                   q{result_expression},
12591                                   $tracelevel)
12592                                         if defined $::RD_TRACE;
12593                 if (1) { no strict qw{refs};
12594                 $expectation->is(q{})->at($text);
12595                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12596                 {
12597                         
12598                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
12599                                                   Parse::RecDescent::_tracefirst($text),
12600                                                   q{result_expression},
12601                                                   $tracelevel)
12602                                                         if defined $::RD_TRACE;
12603                         $expectation->failed();
12604                         last;
12605                 }
12606                 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
12607                                         . $_tok . q{]},
12608                                           
12609                                           Parse::RecDescent::_tracefirst($text),
12610                                           q{result_expression},
12611                                           $tracelevel)
12612                                                 if defined $::RD_TRACE;
12613                 $item{q{expression}} = $_tok;
12614                 push @item, $_tok;
12615                 
12616                 }
12617
12618
12619                 Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
12620                                           Parse::RecDescent::_tracefirst($text),
12621                                           q{result_expression},
12622                                           $tracelevel)
12623                                                 if defined $::RD_TRACE;
12624                 $_matched = 1;
12625                 last;
12626         }
12627
12628
12629         unless ( $_matched || defined($return) || defined($score) )
12630         {
12631                 
12632
12633                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
12634                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
12635                                          Parse::RecDescent::_tracefirst($_[1]),
12636                                          q{result_expression},
12637                                          $tracelevel)
12638                                         if defined $::RD_TRACE;
12639                 return undef;
12640         }
12641         if (!defined($return) && defined($score))
12642         {
12643                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12644                                           q{result_expression},
12645                                           $tracelevel)
12646                                                 if defined $::RD_TRACE;
12647                 $return = $score_return;
12648         }
12649         splice @{$thisparser->{errors}}, $err_at;
12650         $return = $item[$#item] unless defined $return;
12651         if (defined $::RD_TRACE)
12652         {
12653                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12654                                           $return . q{])}, "",
12655                                           q{result_expression},
12656                                           $tracelevel);
12657                 Parse::RecDescent::_trace(q{(consumed: [} .
12658                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
12659                                           Parse::RecDescent::_tracefirst($text),
12660                                           , q{result_expression},
12661                                           $tracelevel)
12662         }
12663         $_[1] = $text;
12664         return $return;
12665 }
12666
12667 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12668 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scoped_reference_expression
12669 {
12670         my $thisparser = $_[0];
12671         use vars q{$tracelevel};
12672         local $tracelevel = ($tracelevel||0)+1;
12673         $ERRORS = 0;
12674         my $thisrule = $thisparser->{"rules"}{"scoped_reference_expression"};
12675         
12676         Parse::RecDescent::_trace(q{Trying rule: [scoped_reference_expression]},
12677                                   Parse::RecDescent::_tracefirst($_[1]),
12678                                   q{scoped_reference_expression},
12679                                   $tracelevel)
12680                                         if defined $::RD_TRACE;
12681
12682         
12683         my $err_at = @{$thisparser->{errors}};
12684
12685         my $score;
12686         my $score_return;
12687         my $_tok;
12688         my $return = undef;
12689         my $_matched=0;
12690         my $commit=0;
12691         my @item = ();
12692         my %item = ();
12693         my $repeating =  defined($_[2]) && $_[2];
12694         my $_noactions = defined($_[3]) && $_[3];
12695         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
12696         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
12697         my $text;
12698         my $lastsep="";
12699         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12700         $expectation->at($_[1]);
12701         
12702         my $thisline;
12703         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12704
12705         
12706
12707         while (!$_matched && !$commit)
12708         {
12709                 
12710                 Parse::RecDescent::_trace(q{Trying production: [expression]},
12711                                           Parse::RecDescent::_tracefirst($_[1]),
12712                                           q{scoped_reference_expression},
12713                                           $tracelevel)
12714                                                 if defined $::RD_TRACE;
12715                 my $thisprod = $thisrule->{"prods"}[0];
12716                 $text = $_[1];
12717                 my $_savetext;
12718                 @item = (q{scoped_reference_expression});
12719                 %item = (__RULE__ => q{scoped_reference_expression});
12720                 my $repcount = 0;
12721
12722
12723                 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
12724                                   Parse::RecDescent::_tracefirst($text),
12725                                   q{scoped_reference_expression},
12726                                   $tracelevel)
12727                                         if defined $::RD_TRACE;
12728                 if (1) { no strict qw{refs};
12729                 $expectation->is(q{})->at($text);
12730                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12731                 {
12732                         
12733                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
12734                                                   Parse::RecDescent::_tracefirst($text),
12735                                                   q{scoped_reference_expression},
12736                                                   $tracelevel)
12737                                                         if defined $::RD_TRACE;
12738                         $expectation->failed();
12739                         last;
12740                 }
12741                 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
12742                                         . $_tok . q{]},
12743                                           
12744                                           Parse::RecDescent::_tracefirst($text),
12745                                           q{scoped_reference_expression},
12746                                           $tracelevel)
12747                                                 if defined $::RD_TRACE;
12748                 $item{q{expression}} = $_tok;
12749                 push @item, $_tok;
12750                 
12751                 }
12752
12753                 Parse::RecDescent::_trace(q{Trying action},
12754                                           Parse::RecDescent::_tracefirst($text),
12755                                           q{scoped_reference_expression},
12756                                           $tracelevel)
12757                                                 if defined $::RD_TRACE;
12758                 
12759
12760                 $_tok = ($_noactions) ? 0 : do { # scoped, reference 
12761 };
12762                 unless (defined $_tok)
12763                 {
12764                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
12765                                         if defined $::RD_TRACE;
12766                         last;
12767                 }
12768                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
12769                                           . $_tok . q{])},
12770                                           Parse::RecDescent::_tracefirst($text))
12771                                                 if defined $::RD_TRACE;
12772                 push @item, $_tok;
12773                 $item{__ACTION1__}=$_tok;
12774                 
12775
12776
12777                 Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
12778                                           Parse::RecDescent::_tracefirst($text),
12779                                           q{scoped_reference_expression},
12780                                           $tracelevel)
12781                                                 if defined $::RD_TRACE;
12782                 $_matched = 1;
12783                 last;
12784         }
12785
12786
12787         unless ( $_matched || defined($return) || defined($score) )
12788         {
12789                 
12790
12791                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
12792                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
12793                                          Parse::RecDescent::_tracefirst($_[1]),
12794                                          q{scoped_reference_expression},
12795                                          $tracelevel)
12796                                         if defined $::RD_TRACE;
12797                 return undef;
12798         }
12799         if (!defined($return) && defined($score))
12800         {
12801                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12802                                           q{scoped_reference_expression},
12803                                           $tracelevel)
12804                                                 if defined $::RD_TRACE;
12805                 $return = $score_return;
12806         }
12807         splice @{$thisparser->{errors}}, $err_at;
12808         $return = $item[$#item] unless defined $return;
12809         if (defined $::RD_TRACE)
12810         {
12811                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12812                                           $return . q{])}, "",
12813                                           q{scoped_reference_expression},
12814                                           $tracelevel);
12815                 Parse::RecDescent::_trace(q{(consumed: [} .
12816                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
12817                                           Parse::RecDescent::_tracefirst($text),
12818                                           , q{scoped_reference_expression},
12819                                           $tracelevel)
12820         }
12821         $_[1] = $text;
12822         return $return;
12823 }
12824
12825 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12826 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification
12827 {
12828         my $thisparser = $_[0];
12829         use vars q{$tracelevel};
12830         local $tracelevel = ($tracelevel||0)+1;
12831         $ERRORS = 0;
12832         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification"};
12833         
12834         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]},
12835                                   Parse::RecDescent::_tracefirst($_[1]),
12836                                   q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12837                                   $tracelevel)
12838                                         if defined $::RD_TRACE;
12839
12840         
12841         my $err_at = @{$thisparser->{errors}};
12842
12843         my $score;
12844         my $score_return;
12845         my $_tok;
12846         my $return = undef;
12847         my $_matched=0;
12848         my $commit=0;
12849         my @item = ();
12850         my %item = ();
12851         my $repeating =  defined($_[2]) && $_[2];
12852         my $_noactions = defined($_[3]) && $_[3];
12853         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
12854         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
12855         my $text;
12856         my $lastsep="";
12857         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12858         $expectation->at($_[1]);
12859         
12860         my $thisline;
12861         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12862
12863         
12864
12865         while (!$_matched && !$commit)
12866         {
12867                 
12868                 Parse::RecDescent::_trace(q{Trying production: [typed_table_name]},
12869                                           Parse::RecDescent::_tracefirst($_[1]),
12870                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12871                                           $tracelevel)
12872                                                 if defined $::RD_TRACE;
12873                 my $thisprod = $thisrule->{"prods"}[0];
12874                 $text = $_[1];
12875                 my $_savetext;
12876                 @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
12877                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
12878                 my $repcount = 0;
12879
12880
12881                 Parse::RecDescent::_trace(q{Trying subrule: [typed_table_name]},
12882                                   Parse::RecDescent::_tracefirst($text),
12883                                   q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12884                                   $tracelevel)
12885                                         if defined $::RD_TRACE;
12886                 if (1) { no strict qw{refs};
12887                 $expectation->is(q{})->at($text);
12888                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::typed_table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12889                 {
12890                         
12891                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [typed_table_name]>>},
12892                                                   Parse::RecDescent::_tracefirst($text),
12893                                                   q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12894                                                   $tracelevel)
12895                                                         if defined $::RD_TRACE;
12896                         $expectation->failed();
12897                         last;
12898                 }
12899                 Parse::RecDescent::_trace(q{>>Matched subrule: [typed_table_name]<< (return value: [}
12900                                         . $_tok . q{]},
12901                                           
12902                                           Parse::RecDescent::_tracefirst($text),
12903                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12904                                           $tracelevel)
12905                                                 if defined $::RD_TRACE;
12906                 $item{q{typed_table_name}} = $_tok;
12907                 push @item, $_tok;
12908                 
12909                 }
12910
12911
12912                 Parse::RecDescent::_trace(q{>>Matched production: [typed_table_name]<<},
12913                                           Parse::RecDescent::_tracefirst($text),
12914                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12915                                           $tracelevel)
12916                                                 if defined $::RD_TRACE;
12917                 $_matched = 1;
12918                 last;
12919         }
12920
12921
12922         while (!$_matched && !$commit)
12923         {
12924                 
12925                 Parse::RecDescent::_trace(q{Trying production: [typed_view_name]},
12926                                           Parse::RecDescent::_tracefirst($_[1]),
12927                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12928                                           $tracelevel)
12929                                                 if defined $::RD_TRACE;
12930                 my $thisprod = $thisrule->{"prods"}[1];
12931                 $text = $_[1];
12932                 my $_savetext;
12933                 @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
12934                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
12935                 my $repcount = 0;
12936
12937
12938                 Parse::RecDescent::_trace(q{Trying subrule: [typed_view_name]},
12939                                   Parse::RecDescent::_tracefirst($text),
12940                                   q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12941                                   $tracelevel)
12942                                         if defined $::RD_TRACE;
12943                 if (1) { no strict qw{refs};
12944                 $expectation->is(q{})->at($text);
12945                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::typed_view_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12946                 {
12947                         
12948                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [typed_view_name]>>},
12949                                                   Parse::RecDescent::_tracefirst($text),
12950                                                   q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12951                                                   $tracelevel)
12952                                                         if defined $::RD_TRACE;
12953                         $expectation->failed();
12954                         last;
12955                 }
12956                 Parse::RecDescent::_trace(q{>>Matched subrule: [typed_view_name]<< (return value: [}
12957                                         . $_tok . q{]},
12958                                           
12959                                           Parse::RecDescent::_tracefirst($text),
12960                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12961                                           $tracelevel)
12962                                                 if defined $::RD_TRACE;
12963                 $item{q{typed_view_name}} = $_tok;
12964                 push @item, $_tok;
12965                 
12966                 }
12967
12968
12969                 Parse::RecDescent::_trace(q{>>Matched production: [typed_view_name]<<},
12970                                           Parse::RecDescent::_tracefirst($text),
12971                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12972                                           $tracelevel)
12973                                                 if defined $::RD_TRACE;
12974                 $_matched = 1;
12975                 last;
12976         }
12977
12978
12979         unless ( $_matched || defined($return) || defined($score) )
12980         {
12981                 
12982
12983                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
12984                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
12985                                          Parse::RecDescent::_tracefirst($_[1]),
12986                                          q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12987                                          $tracelevel)
12988                                         if defined $::RD_TRACE;
12989                 return undef;
12990         }
12991         if (!defined($return) && defined($score))
12992         {
12993                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12994                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12995                                           $tracelevel)
12996                                                 if defined $::RD_TRACE;
12997                 $return = $score_return;
12998         }
12999         splice @{$thisparser->{errors}}, $err_at;
13000         $return = $item[$#item] unless defined $return;
13001         if (defined $::RD_TRACE)
13002         {
13003                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13004                                           $return . q{])}, "",
13005                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
13006                                           $tracelevel);
13007                 Parse::RecDescent::_trace(q{(consumed: [} .
13008                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
13009                                           Parse::RecDescent::_tracefirst($text),
13010                                           , q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
13011                                           $tracelevel)
13012         }
13013         $_[1] = $text;
13014         return $return;
13015 }
13016
13017 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13018 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::when_clause
13019 {
13020         my $thisparser = $_[0];
13021         use vars q{$tracelevel};
13022         local $tracelevel = ($tracelevel||0)+1;
13023         $ERRORS = 0;
13024         my $thisrule = $thisparser->{"rules"}{"when_clause"};
13025         
13026         Parse::RecDescent::_trace(q{Trying rule: [when_clause]},
13027                                   Parse::RecDescent::_tracefirst($_[1]),
13028                                   q{when_clause},
13029                                   $tracelevel)
13030                                         if defined $::RD_TRACE;
13031
13032         
13033         my $err_at = @{$thisparser->{errors}};
13034
13035         my $score;
13036         my $score_return;
13037         my $_tok;
13038         my $return = undef;
13039         my $_matched=0;
13040         my $commit=0;
13041         my @item = ();
13042         my %item = ();
13043         my $repeating =  defined($_[2]) && $_[2];
13044         my $_noactions = defined($_[3]) && $_[3];
13045         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
13046         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
13047         my $text;
13048         my $lastsep="";
13049         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13050         $expectation->at($_[1]);
13051         
13052         my $thisline;
13053         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13054
13055         
13056
13057         while (!$_matched && !$commit)
13058         {
13059                 
13060                 Parse::RecDescent::_trace(q{Trying production: [/WHEN/i '(' search_condition ')']},
13061                                           Parse::RecDescent::_tracefirst($_[1]),
13062                                           q{when_clause},
13063                                           $tracelevel)
13064                                                 if defined $::RD_TRACE;
13065                 my $thisprod = $thisrule->{"prods"}[0];
13066                 $text = $_[1];
13067                 my $_savetext;
13068                 @item = (q{when_clause});
13069                 %item = (__RULE__ => q{when_clause});
13070                 my $repcount = 0;
13071
13072
13073                 Parse::RecDescent::_trace(q{Trying terminal: [/WHEN/i]}, Parse::RecDescent::_tracefirst($text),
13074                                           q{when_clause},
13075                                           $tracelevel)
13076                                                 if defined $::RD_TRACE;
13077                 $lastsep = "";
13078                 $expectation->is(q{})->at($text);
13079                 
13080
13081                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WHEN)//i)
13082                 {
13083                         
13084                         $expectation->failed();
13085                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13086                                                   Parse::RecDescent::_tracefirst($text))
13087                                         if defined $::RD_TRACE;
13088
13089                         last;
13090                 }
13091                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13092                                                 . $& . q{])},
13093                                                   Parse::RecDescent::_tracefirst($text))
13094                                         if defined $::RD_TRACE;
13095                 push @item, $item{__PATTERN1__}=$&;
13096                 
13097
13098                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
13099                                           Parse::RecDescent::_tracefirst($text),
13100                                           q{when_clause},
13101                                           $tracelevel)
13102                                                 if defined $::RD_TRACE;
13103                 $lastsep = "";
13104                 $expectation->is(q{'('})->at($text);
13105                 
13106
13107                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
13108                 {
13109                         
13110                         $expectation->failed();
13111                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
13112                                                   Parse::RecDescent::_tracefirst($text))
13113                                                         if defined $::RD_TRACE;
13114                         last;
13115                 }
13116                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13117                                                 . $& . q{])},
13118                                                   Parse::RecDescent::_tracefirst($text))
13119                                                         if defined $::RD_TRACE;
13120                 push @item, $item{__STRING1__}=$&;
13121                 
13122
13123                 Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
13124                                   Parse::RecDescent::_tracefirst($text),
13125                                   q{when_clause},
13126                                   $tracelevel)
13127                                         if defined $::RD_TRACE;
13128                 if (1) { no strict qw{refs};
13129                 $expectation->is(q{search_condition})->at($text);
13130                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
13131                 {
13132                         
13133                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
13134                                                   Parse::RecDescent::_tracefirst($text),
13135                                                   q{when_clause},
13136                                                   $tracelevel)
13137                                                         if defined $::RD_TRACE;
13138                         $expectation->failed();
13139                         last;
13140                 }
13141                 Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
13142                                         . $_tok . q{]},
13143                                           
13144                                           Parse::RecDescent::_tracefirst($text),
13145                                           q{when_clause},
13146                                           $tracelevel)
13147                                                 if defined $::RD_TRACE;
13148                 $item{q{search_condition}} = $_tok;
13149                 push @item, $_tok;
13150                 
13151                 }
13152
13153                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
13154                                           Parse::RecDescent::_tracefirst($text),
13155                                           q{when_clause},
13156                                           $tracelevel)
13157                                                 if defined $::RD_TRACE;
13158                 $lastsep = "";
13159                 $expectation->is(q{')'})->at($text);
13160                 
13161
13162                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
13163                 {
13164                         
13165                         $expectation->failed();
13166                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
13167                                                   Parse::RecDescent::_tracefirst($text))
13168                                                         if defined $::RD_TRACE;
13169                         last;
13170                 }
13171                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13172                                                 . $& . q{])},
13173                                                   Parse::RecDescent::_tracefirst($text))
13174                                                         if defined $::RD_TRACE;
13175                 push @item, $item{__STRING2__}=$&;
13176                 
13177
13178                 Parse::RecDescent::_trace(q{Trying action},
13179                                           Parse::RecDescent::_tracefirst($text),
13180                                           q{when_clause},
13181                                           $tracelevel)
13182                                                 if defined $::RD_TRACE;
13183                 
13184
13185                 $_tok = ($_noactions) ? 0 : do {$return = $item[3]};
13186                 unless (defined $_tok)
13187                 {
13188                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
13189                                         if defined $::RD_TRACE;
13190                         last;
13191                 }
13192                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
13193                                           . $_tok . q{])},
13194                                           Parse::RecDescent::_tracefirst($text))
13195                                                 if defined $::RD_TRACE;
13196                 push @item, $_tok;
13197                 $item{__ACTION1__}=$_tok;
13198                 
13199
13200
13201                 Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i '(' search_condition ')']<<},
13202                                           Parse::RecDescent::_tracefirst($text),
13203                                           q{when_clause},
13204                                           $tracelevel)
13205                                                 if defined $::RD_TRACE;
13206                 $_matched = 1;
13207                 last;
13208         }
13209
13210
13211         unless ( $_matched || defined($return) || defined($score) )
13212         {
13213                 
13214
13215                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
13216                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
13217                                          Parse::RecDescent::_tracefirst($_[1]),
13218                                          q{when_clause},
13219                                          $tracelevel)
13220                                         if defined $::RD_TRACE;
13221                 return undef;
13222         }
13223         if (!defined($return) && defined($score))
13224         {
13225                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
13226                                           q{when_clause},
13227                                           $tracelevel)
13228                                                 if defined $::RD_TRACE;
13229                 $return = $score_return;
13230         }
13231         splice @{$thisparser->{errors}}, $err_at;
13232         $return = $item[$#item] unless defined $return;
13233         if (defined $::RD_TRACE)
13234         {
13235                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13236                                           $return . q{])}, "",
13237                                           q{when_clause},
13238                                           $tracelevel);
13239                 Parse::RecDescent::_trace(q{(consumed: [} .
13240                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
13241                                           Parse::RecDescent::_tracefirst($text),
13242                                           , q{when_clause},
13243                                           $tracelevel)
13244         }
13245         $_[1] = $text;
13246         return $return;
13247 }
13248
13249 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13250 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_asc_option
13251 {
13252         my $thisparser = $_[0];
13253         use vars q{$tracelevel};
13254         local $tracelevel = ($tracelevel||0)+1;
13255         $ERRORS = 0;
13256         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_asc_option"};
13257         
13258         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_asc_option]},
13259                                   Parse::RecDescent::_tracefirst($_[1]),
13260                                   q{_alternation_1_of_production_1_of_rule_asc_option},
13261                                   $tracelevel)
13262                                         if defined $::RD_TRACE;
13263
13264         
13265         my $err_at = @{$thisparser->{errors}};
13266
13267         my $score;
13268         my $score_return;
13269         my $_tok;
13270         my $return = undef;
13271         my $_matched=0;
13272         my $commit=0;
13273         my @item = ();
13274         my %item = ();
13275         my $repeating =  defined($_[2]) && $_[2];
13276         my $_noactions = defined($_[3]) && $_[3];
13277         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
13278         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
13279         my $text;
13280         my $lastsep="";
13281         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13282         $expectation->at($_[1]);
13283         
13284         my $thisline;
13285         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13286
13287         
13288
13289         while (!$_matched && !$commit)
13290         {
13291                 
13292                 Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+FIRST/i]},
13293                                           Parse::RecDescent::_tracefirst($_[1]),
13294                                           q{_alternation_1_of_production_1_of_rule_asc_option},
13295                                           $tracelevel)
13296                                                 if defined $::RD_TRACE;
13297                 my $thisprod = $thisrule->{"prods"}[0];
13298                 $text = $_[1];
13299                 my $_savetext;
13300                 @item = (q{_alternation_1_of_production_1_of_rule_asc_option});
13301                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_asc_option});
13302                 my $repcount = 0;
13303
13304
13305                 Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+FIRST/i]}, Parse::RecDescent::_tracefirst($text),
13306                                           q{_alternation_1_of_production_1_of_rule_asc_option},
13307                                           $tracelevel)
13308                                                 if defined $::RD_TRACE;
13309                 $lastsep = "";
13310                 $expectation->is(q{})->at($text);
13311                 
13312
13313                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLS\s+FIRST)//i)
13314                 {
13315                         
13316                         $expectation->failed();
13317                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13318                                                   Parse::RecDescent::_tracefirst($text))
13319                                         if defined $::RD_TRACE;
13320
13321                         last;
13322                 }
13323                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13324                                                 . $& . q{])},
13325                                                   Parse::RecDescent::_tracefirst($text))
13326                                         if defined $::RD_TRACE;
13327                 push @item, $item{__PATTERN1__}=$&;
13328                 
13329
13330
13331                 Parse::RecDescent::_trace(q{>>Matched production: [/NULLS\\s+FIRST/i]<<},
13332                                           Parse::RecDescent::_tracefirst($text),
13333                                           q{_alternation_1_of_production_1_of_rule_asc_option},
13334                                           $tracelevel)
13335                                                 if defined $::RD_TRACE;
13336                 $_matched = 1;
13337                 last;
13338         }
13339
13340
13341         while (!$_matched && !$commit)
13342         {
13343                 
13344                 Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+LAST/i]},
13345                                           Parse::RecDescent::_tracefirst($_[1]),
13346                                           q{_alternation_1_of_production_1_of_rule_asc_option},
13347                                           $tracelevel)
13348                                                 if defined $::RD_TRACE;
13349                 my $thisprod = $thisrule->{"prods"}[1];
13350                 $text = $_[1];
13351                 my $_savetext;
13352                 @item = (q{_alternation_1_of_production_1_of_rule_asc_option});
13353                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_asc_option});
13354                 my $repcount = 0;
13355
13356
13357                 Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+LAST/i]}, Parse::RecDescent::_tracefirst($text),
13358                                           q{_alternation_1_of_production_1_of_rule_asc_option},
13359                                           $tracelevel)
13360                                                 if defined $::RD_TRACE;
13361                 $lastsep = "";
13362                 $expectation->is(q{})->at($text);
13363                 
13364
13365                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLS\s+LAST)//i)
13366                 {
13367                         
13368                         $expectation->failed();
13369                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13370                                                   Parse::RecDescent::_tracefirst($text))
13371                                         if defined $::RD_TRACE;
13372
13373                         last;
13374                 }
13375                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13376                                                 . $& . q{])},
13377                                                   Parse::RecDescent::_tracefirst($text))
13378                                         if defined $::RD_TRACE;
13379                 push @item, $item{__PATTERN1__}=$&;
13380                 
13381
13382
13383                 Parse::RecDescent::_trace(q{>>Matched production: [/NULLS\\s+LAST/i]<<},
13384                                           Parse::RecDescent::_tracefirst($text),
13385                                           q{_alternation_1_of_production_1_of_rule_asc_option},
13386                                           $tracelevel)
13387                                                 if defined $::RD_TRACE;
13388                 $_matched = 1;
13389                 last;
13390         }
13391
13392
13393         unless ( $_matched || defined($return) || defined($score) )
13394         {
13395                 
13396
13397                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
13398                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
13399                                          Parse::RecDescent::_tracefirst($_[1]),
13400                                          q{_alternation_1_of_production_1_of_rule_asc_option},
13401                                          $tracelevel)
13402                                         if defined $::RD_TRACE;
13403                 return undef;
13404         }
13405         if (!defined($return) && defined($score))
13406         {
13407                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
13408                                           q{_alternation_1_of_production_1_of_rule_asc_option},
13409                                           $tracelevel)
13410                                                 if defined $::RD_TRACE;
13411                 $return = $score_return;
13412         }
13413         splice @{$thisparser->{errors}}, $err_at;
13414         $return = $item[$#item] unless defined $return;
13415         if (defined $::RD_TRACE)
13416         {
13417                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13418                                           $return . q{])}, "",
13419                                           q{_alternation_1_of_production_1_of_rule_asc_option},
13420                                           $tracelevel);
13421                 Parse::RecDescent::_trace(q{(consumed: [} .
13422                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
13423                                           Parse::RecDescent::_tracefirst($text),
13424                                           , q{_alternation_1_of_production_1_of_rule_asc_option},
13425                                           $tracelevel)
13426         }
13427         $_[1] = $text;
13428         return $return;
13429 }
13430
13431 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13432 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name
13433 {
13434         my $thisparser = $_[0];
13435         use vars q{$tracelevel};
13436         local $tracelevel = ($tracelevel||0)+1;
13437         $ERRORS = 0;
13438         my $thisrule = $thisparser->{"rules"}{"sequence_name"};
13439         
13440         Parse::RecDescent::_trace(q{Trying rule: [sequence_name]},
13441                                   Parse::RecDescent::_tracefirst($_[1]),
13442                                   q{sequence_name},
13443                                   $tracelevel)
13444                                         if defined $::RD_TRACE;
13445
13446         
13447         my $err_at = @{$thisparser->{errors}};
13448
13449         my $score;
13450         my $score_return;
13451         my $_tok;
13452         my $return = undef;
13453         my $_matched=0;
13454         my $commit=0;
13455         my @item = ();
13456         my %item = ();
13457         my $repeating =  defined($_[2]) && $_[2];
13458         my $_noactions = defined($_[3]) && $_[3];
13459         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
13460         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
13461         my $text;
13462         my $lastsep="";
13463         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13464         $expectation->at($_[1]);
13465         
13466         my $thisline;
13467         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13468
13469         
13470
13471         while (!$_matched && !$commit)
13472         {
13473                 
13474                 Parse::RecDescent::_trace(q{Trying production: [NAME]},
13475                                           Parse::RecDescent::_tracefirst($_[1]),
13476                                           q{sequence_name},
13477                                           $tracelevel)
13478                                                 if defined $::RD_TRACE;
13479                 my $thisprod = $thisrule->{"prods"}[0];
13480                 $text = $_[1];
13481                 my $_savetext;
13482                 @item = (q{sequence_name});
13483                 %item = (__RULE__ => q{sequence_name});
13484                 my $repcount = 0;
13485
13486
13487                 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
13488                                   Parse::RecDescent::_tracefirst($text),
13489                                   q{sequence_name},
13490                                   $tracelevel)
13491                                         if defined $::RD_TRACE;
13492                 if (1) { no strict qw{refs};
13493                 $expectation->is(q{})->at($text);
13494                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
13495                 {
13496                         
13497                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
13498                                                   Parse::RecDescent::_tracefirst($text),
13499                                                   q{sequence_name},
13500                                                   $tracelevel)
13501                                                         if defined $::RD_TRACE;
13502                         $expectation->failed();
13503                         last;
13504                 }
13505                 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
13506                                         . $_tok . q{]},
13507                                           
13508                                           Parse::RecDescent::_tracefirst($text),
13509                                           q{sequence_name},
13510                                           $tracelevel)
13511                                                 if defined $::RD_TRACE;
13512                 $item{q{NAME}} = $_tok;
13513                 push @item, $_tok;
13514                 
13515                 }
13516
13517
13518                 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
13519                                           Parse::RecDescent::_tracefirst($text),
13520                                           q{sequence_name},
13521                                           $tracelevel)
13522                                                 if defined $::RD_TRACE;
13523                 $_matched = 1;
13524                 last;
13525         }
13526
13527
13528         unless ( $_matched || defined($return) || defined($score) )
13529         {
13530                 
13531
13532                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
13533                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
13534                                          Parse::RecDescent::_tracefirst($_[1]),
13535                                          q{sequence_name},
13536                                          $tracelevel)
13537                                         if defined $::RD_TRACE;
13538                 return undef;
13539         }
13540         if (!defined($return) && defined($score))
13541         {
13542                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
13543                                           q{sequence_name},
13544                                           $tracelevel)
13545                                                 if defined $::RD_TRACE;
13546                 $return = $score_return;
13547         }
13548         splice @{$thisparser->{errors}}, $err_at;
13549         $return = $item[$#item] unless defined $return;
13550         if (defined $::RD_TRACE)
13551         {
13552                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13553                                           $return . q{])}, "",
13554                                           q{sequence_name},
13555                                           $tracelevel);
13556                 Parse::RecDescent::_trace(q{(consumed: [} .
13557                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
13558                                           Parse::RecDescent::_tracefirst($text),
13559                                           , q{sequence_name},
13560                                           $tracelevel)
13561         }
13562         $_[1] = $text;
13563         return $return;
13564 }
13565
13566 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13567 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_duration
13568 {
13569         my $thisparser = $_[0];
13570         use vars q{$tracelevel};
13571         local $tracelevel = ($tracelevel||0)+1;
13572         $ERRORS = 0;
13573         my $thisrule = $thisparser->{"rules"}{"ld_duration"};
13574         
13575         Parse::RecDescent::_trace(q{Trying rule: [ld_duration]},
13576                                   Parse::RecDescent::_tracefirst($_[1]),
13577                                   q{ld_duration},
13578                                   $tracelevel)
13579                                         if defined $::RD_TRACE;
13580
13581         
13582         my $err_at = @{$thisparser->{errors}};
13583
13584         my $score;
13585         my $score_return;
13586         my $_tok;
13587         my $return = undef;
13588         my $_matched=0;
13589         my $commit=0;
13590         my @item = ();
13591         my %item = ();
13592         my $repeating =  defined($_[2]) && $_[2];
13593         my $_noactions = defined($_[3]) && $_[3];
13594         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
13595         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
13596         my $text;
13597         my $lastsep="";
13598         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13599         $expectation->at($_[1]);
13600         
13601         my $thisline;
13602         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13603
13604         
13605
13606         while (!$_matched && !$commit)
13607         {
13608                 
13609                 Parse::RecDescent::_trace(q{Trying production: [/YEARS?/i]},
13610                                           Parse::RecDescent::_tracefirst($_[1]),
13611                                           q{ld_duration},
13612                                           $tracelevel)
13613                                                 if defined $::RD_TRACE;
13614                 my $thisprod = $thisrule->{"prods"}[0];
13615                 $text = $_[1];
13616                 my $_savetext;
13617                 @item = (q{ld_duration});
13618                 %item = (__RULE__ => q{ld_duration});
13619                 my $repcount = 0;
13620
13621
13622                 Parse::RecDescent::_trace(q{Trying terminal: [/YEARS?/i]}, Parse::RecDescent::_tracefirst($text),
13623                                           q{ld_duration},
13624                                           $tracelevel)
13625                                                 if defined $::RD_TRACE;
13626                 $lastsep = "";
13627                 $expectation->is(q{})->at($text);
13628                 
13629
13630                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:YEARS?)//i)
13631                 {
13632                         
13633                         $expectation->failed();
13634                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13635                                                   Parse::RecDescent::_tracefirst($text))
13636                                         if defined $::RD_TRACE;
13637
13638                         last;
13639                 }
13640                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13641                                                 . $& . q{])},
13642                                                   Parse::RecDescent::_tracefirst($text))
13643                                         if defined $::RD_TRACE;
13644                 push @item, $item{__PATTERN1__}=$&;
13645                 
13646
13647
13648                 Parse::RecDescent::_trace(q{>>Matched production: [/YEARS?/i]<<},
13649                                           Parse::RecDescent::_tracefirst($text),
13650                                           q{ld_duration},
13651                                           $tracelevel)
13652                                                 if defined $::RD_TRACE;
13653                 $_matched = 1;
13654                 last;
13655         }
13656
13657
13658         while (!$_matched && !$commit)
13659         {
13660                 
13661                 Parse::RecDescent::_trace(q{Trying production: [/MONTHS?/i]},
13662                                           Parse::RecDescent::_tracefirst($_[1]),
13663                                           q{ld_duration},
13664                                           $tracelevel)
13665                                                 if defined $::RD_TRACE;
13666                 my $thisprod = $thisrule->{"prods"}[1];
13667                 $text = $_[1];
13668                 my $_savetext;
13669                 @item = (q{ld_duration});
13670                 %item = (__RULE__ => q{ld_duration});
13671                 my $repcount = 0;
13672
13673
13674                 Parse::RecDescent::_trace(q{Trying terminal: [/MONTHS?/i]}, Parse::RecDescent::_tracefirst($text),
13675                                           q{ld_duration},
13676                                           $tracelevel)
13677                                                 if defined $::RD_TRACE;
13678                 $lastsep = "";
13679                 $expectation->is(q{})->at($text);
13680                 
13681
13682                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MONTHS?)//i)
13683                 {
13684                         
13685                         $expectation->failed();
13686                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13687                                                   Parse::RecDescent::_tracefirst($text))
13688                                         if defined $::RD_TRACE;
13689
13690                         last;
13691                 }
13692                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13693                                                 . $& . q{])},
13694                                                   Parse::RecDescent::_tracefirst($text))
13695                                         if defined $::RD_TRACE;
13696                 push @item, $item{__PATTERN1__}=$&;
13697                 
13698
13699
13700                 Parse::RecDescent::_trace(q{>>Matched production: [/MONTHS?/i]<<},
13701                                           Parse::RecDescent::_tracefirst($text),
13702                                           q{ld_duration},
13703                                           $tracelevel)
13704                                                 if defined $::RD_TRACE;
13705                 $_matched = 1;
13706                 last;
13707         }
13708
13709
13710         while (!$_matched && !$commit)
13711         {
13712                 
13713                 Parse::RecDescent::_trace(q{Trying production: [/DAYS?/i]},
13714                                           Parse::RecDescent::_tracefirst($_[1]),
13715                                           q{ld_duration},
13716                                           $tracelevel)
13717                                                 if defined $::RD_TRACE;
13718                 my $thisprod = $thisrule->{"prods"}[2];
13719                 $text = $_[1];
13720                 my $_savetext;
13721                 @item = (q{ld_duration});
13722                 %item = (__RULE__ => q{ld_duration});
13723                 my $repcount = 0;
13724
13725
13726                 Parse::RecDescent::_trace(q{Trying terminal: [/DAYS?/i]}, Parse::RecDescent::_tracefirst($text),
13727                                           q{ld_duration},
13728                                           $tracelevel)
13729                                                 if defined $::RD_TRACE;
13730                 $lastsep = "";
13731                 $expectation->is(q{})->at($text);
13732                 
13733
13734                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYS?)//i)
13735                 {
13736                         
13737                         $expectation->failed();
13738                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13739                                                   Parse::RecDescent::_tracefirst($text))
13740                                         if defined $::RD_TRACE;
13741
13742                         last;
13743                 }
13744                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13745                                                 . $& . q{])},
13746                                                   Parse::RecDescent::_tracefirst($text))
13747                                         if defined $::RD_TRACE;
13748                 push @item, $item{__PATTERN1__}=$&;
13749                 
13750
13751
13752                 Parse::RecDescent::_trace(q{>>Matched production: [/DAYS?/i]<<},
13753                                           Parse::RecDescent::_tracefirst($text),
13754                                           q{ld_duration},
13755                                           $tracelevel)
13756                                                 if defined $::RD_TRACE;
13757                 $_matched = 1;
13758                 last;
13759         }
13760
13761
13762         while (!$_matched && !$commit)
13763         {
13764                 
13765                 Parse::RecDescent::_trace(q{Trying production: [/HOURS?/i]},
13766                                           Parse::RecDescent::_tracefirst($_[1]),
13767                                           q{ld_duration},
13768                                           $tracelevel)
13769                                                 if defined $::RD_TRACE;
13770                 my $thisprod = $thisrule->{"prods"}[3];
13771                 $text = $_[1];
13772                 my $_savetext;
13773                 @item = (q{ld_duration});
13774                 %item = (__RULE__ => q{ld_duration});
13775                 my $repcount = 0;
13776
13777
13778                 Parse::RecDescent::_trace(q{Trying terminal: [/HOURS?/i]}, Parse::RecDescent::_tracefirst($text),
13779                                           q{ld_duration},
13780                                           $tracelevel)
13781                                                 if defined $::RD_TRACE;
13782                 $lastsep = "";
13783                 $expectation->is(q{})->at($text);
13784                 
13785
13786                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:HOURS?)//i)
13787                 {
13788                         
13789                         $expectation->failed();
13790                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13791                                                   Parse::RecDescent::_tracefirst($text))
13792                                         if defined $::RD_TRACE;
13793
13794                         last;
13795                 }
13796                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13797                                                 . $& . q{])},
13798                                                   Parse::RecDescent::_tracefirst($text))
13799                                         if defined $::RD_TRACE;
13800                 push @item, $item{__PATTERN1__}=$&;
13801                 
13802
13803
13804                 Parse::RecDescent::_trace(q{>>Matched production: [/HOURS?/i]<<},
13805                                           Parse::RecDescent::_tracefirst($text),
13806                                           q{ld_duration},
13807                                           $tracelevel)
13808                                                 if defined $::RD_TRACE;
13809                 $_matched = 1;
13810                 last;
13811         }
13812
13813
13814         while (!$_matched && !$commit)
13815         {
13816                 
13817                 Parse::RecDescent::_trace(q{Trying production: [/MINUTES?/i]},
13818                                           Parse::RecDescent::_tracefirst($_[1]),
13819                                           q{ld_duration},
13820                                           $tracelevel)
13821                                                 if defined $::RD_TRACE;
13822                 my $thisprod = $thisrule->{"prods"}[4];
13823                 $text = $_[1];
13824                 my $_savetext;
13825                 @item = (q{ld_duration});
13826                 %item = (__RULE__ => q{ld_duration});
13827                 my $repcount = 0;
13828
13829
13830                 Parse::RecDescent::_trace(q{Trying terminal: [/MINUTES?/i]}, Parse::RecDescent::_tracefirst($text),
13831                                           q{ld_duration},
13832                                           $tracelevel)
13833                                                 if defined $::RD_TRACE;
13834                 $lastsep = "";
13835                 $expectation->is(q{})->at($text);
13836                 
13837
13838                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MINUTES?)//i)
13839                 {
13840                         
13841                         $expectation->failed();
13842                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13843                                                   Parse::RecDescent::_tracefirst($text))
13844                                         if defined $::RD_TRACE;
13845
13846                         last;
13847                 }
13848                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13849                                                 . $& . q{])},
13850                                                   Parse::RecDescent::_tracefirst($text))
13851                                         if defined $::RD_TRACE;
13852                 push @item, $item{__PATTERN1__}=$&;
13853                 
13854
13855
13856                 Parse::RecDescent::_trace(q{>>Matched production: [/MINUTES?/i]<<},
13857                                           Parse::RecDescent::_tracefirst($text),
13858                                           q{ld_duration},
13859                                           $tracelevel)
13860                                                 if defined $::RD_TRACE;
13861                 $_matched = 1;
13862                 last;
13863         }
13864
13865
13866         while (!$_matched && !$commit)
13867         {
13868                 
13869                 Parse::RecDescent::_trace(q{Trying production: [/SECONDS?/i]},
13870                                           Parse::RecDescent::_tracefirst($_[1]),
13871                                           q{ld_duration},
13872                                           $tracelevel)
13873                                                 if defined $::RD_TRACE;
13874                 my $thisprod = $thisrule->{"prods"}[5];
13875                 $text = $_[1];
13876                 my $_savetext;
13877                 @item = (q{ld_duration});
13878                 %item = (__RULE__ => q{ld_duration});
13879                 my $repcount = 0;
13880
13881
13882                 Parse::RecDescent::_trace(q{Trying terminal: [/SECONDS?/i]}, Parse::RecDescent::_tracefirst($text),
13883                                           q{ld_duration},
13884                                           $tracelevel)
13885                                                 if defined $::RD_TRACE;
13886                 $lastsep = "";
13887                 $expectation->is(q{})->at($text);
13888                 
13889
13890                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SECONDS?)//i)
13891                 {
13892                         
13893                         $expectation->failed();
13894                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13895                                                   Parse::RecDescent::_tracefirst($text))
13896                                         if defined $::RD_TRACE;
13897
13898                         last;
13899                 }
13900                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13901                                                 . $& . q{])},
13902                                                   Parse::RecDescent::_tracefirst($text))
13903                                         if defined $::RD_TRACE;
13904                 push @item, $item{__PATTERN1__}=$&;
13905                 
13906
13907
13908                 Parse::RecDescent::_trace(q{>>Matched production: [/SECONDS?/i]<<},
13909                                           Parse::RecDescent::_tracefirst($text),
13910                                           q{ld_duration},
13911                                           $tracelevel)
13912                                                 if defined $::RD_TRACE;
13913                 $_matched = 1;
13914                 last;
13915         }
13916
13917
13918         while (!$_matched && !$commit)
13919         {
13920                 
13921                 Parse::RecDescent::_trace(q{Trying production: [/MICROSECONDS?/i]},
13922                                           Parse::RecDescent::_tracefirst($_[1]),
13923                                           q{ld_duration},
13924                                           $tracelevel)
13925                                                 if defined $::RD_TRACE;
13926                 my $thisprod = $thisrule->{"prods"}[6];
13927                 $text = $_[1];
13928                 my $_savetext;
13929                 @item = (q{ld_duration});
13930                 %item = (__RULE__ => q{ld_duration});
13931                 my $repcount = 0;
13932
13933
13934                 Parse::RecDescent::_trace(q{Trying terminal: [/MICROSECONDS?/i]}, Parse::RecDescent::_tracefirst($text),
13935                                           q{ld_duration},
13936                                           $tracelevel)
13937                                                 if defined $::RD_TRACE;
13938                 $lastsep = "";
13939                 $expectation->is(q{})->at($text);
13940                 
13941
13942                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MICROSECONDS?)//i)
13943                 {
13944                         
13945                         $expectation->failed();
13946                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13947                                                   Parse::RecDescent::_tracefirst($text))
13948                                         if defined $::RD_TRACE;
13949
13950                         last;
13951                 }
13952                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13953                                                 . $& . q{])},
13954                                                   Parse::RecDescent::_tracefirst($text))
13955                                         if defined $::RD_TRACE;
13956                 push @item, $item{__PATTERN1__}=$&;
13957                 
13958
13959
13960                 Parse::RecDescent::_trace(q{>>Matched production: [/MICROSECONDS?/i]<<},
13961                                           Parse::RecDescent::_tracefirst($text),
13962                                           q{ld_duration},
13963                                           $tracelevel)
13964                                                 if defined $::RD_TRACE;
13965                 $_matched = 1;
13966                 last;
13967         }
13968
13969
13970         unless ( $_matched || defined($return) || defined($score) )
13971         {
13972                 
13973
13974                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
13975                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
13976                                          Parse::RecDescent::_tracefirst($_[1]),
13977                                          q{ld_duration},
13978                                          $tracelevel)
13979                                         if defined $::RD_TRACE;
13980                 return undef;
13981         }
13982         if (!defined($return) && defined($score))
13983         {
13984                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
13985                                           q{ld_duration},
13986                                           $tracelevel)
13987                                                 if defined $::RD_TRACE;
13988                 $return = $score_return;
13989         }
13990         splice @{$thisparser->{errors}}, $err_at;
13991         $return = $item[$#item] unless defined $return;
13992         if (defined $::RD_TRACE)
13993         {
13994                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13995                                           $return . q{])}, "",
13996                                           q{ld_duration},
13997                                           $tracelevel);
13998                 Parse::RecDescent::_trace(q{(consumed: [} .
13999                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
14000                                           Parse::RecDescent::_tracefirst($text),
14001                                           , q{ld_duration},
14002                                           $tracelevel)
14003         }
14004         $_[1] = $text;
14005         return $return;
14006 }
14007
14008 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14009 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_a
14010 {
14011         my $thisparser = $_[0];
14012         use vars q{$tracelevel};
14013         local $tracelevel = ($tracelevel||0)+1;
14014         $ERRORS = 0;
14015         my $thisrule = $thisparser->{"rules"}{"reference_a"};
14016         
14017         Parse::RecDescent::_trace(q{Trying rule: [reference_a]},
14018                                   Parse::RecDescent::_tracefirst($_[1]),
14019                                   q{reference_a},
14020                                   $tracelevel)
14021                                         if defined $::RD_TRACE;
14022
14023         
14024         my $err_at = @{$thisparser->{errors}};
14025
14026         my $score;
14027         my $score_return;
14028         my $_tok;
14029         my $return = undef;
14030         my $_matched=0;
14031         my $commit=0;
14032         my @item = ();
14033         my %item = ();
14034         my $repeating =  defined($_[2]) && $_[2];
14035         my $_noactions = defined($_[3]) && $_[3];
14036         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
14037         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
14038         my $text;
14039         my $lastsep="";
14040         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14041         $expectation->at($_[1]);
14042         
14043         my $thisline;
14044         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14045
14046         
14047
14048         while (!$_matched && !$commit)
14049         {
14050                 
14051                 Parse::RecDescent::_trace(q{Trying production: [/REFERENCING/i old_new_corr old_new_table]},
14052                                           Parse::RecDescent::_tracefirst($_[1]),
14053                                           q{reference_a},
14054                                           $tracelevel)
14055                                                 if defined $::RD_TRACE;
14056                 my $thisprod = $thisrule->{"prods"}[0];
14057                 $text = $_[1];
14058                 my $_savetext;
14059                 @item = (q{reference_a});
14060                 %item = (__RULE__ => q{reference_a});
14061                 my $repcount = 0;
14062
14063
14064                 Parse::RecDescent::_trace(q{Trying terminal: [/REFERENCING/i]}, Parse::RecDescent::_tracefirst($text),
14065                                           q{reference_a},
14066                                           $tracelevel)
14067                                                 if defined $::RD_TRACE;
14068                 $lastsep = "";
14069                 $expectation->is(q{})->at($text);
14070                 
14071
14072                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REFERENCING)//i)
14073                 {
14074                         
14075                         $expectation->failed();
14076                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14077                                                   Parse::RecDescent::_tracefirst($text))
14078                                         if defined $::RD_TRACE;
14079
14080                         last;
14081                 }
14082                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14083                                                 . $& . q{])},
14084                                                   Parse::RecDescent::_tracefirst($text))
14085                                         if defined $::RD_TRACE;
14086                 push @item, $item{__PATTERN1__}=$&;
14087                 
14088
14089                 Parse::RecDescent::_trace(q{Trying repeated subrule: [old_new_corr]},
14090                                   Parse::RecDescent::_tracefirst($text),
14091                                   q{reference_a},
14092                                   $tracelevel)
14093                                         if defined $::RD_TRACE;
14094                 $expectation->is(q{old_new_corr})->at($text);
14095                 
14096                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr, 0, 2, $_noactions,$expectation,undef))) 
14097                 {
14098                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [old_new_corr]>>},
14099                                                   Parse::RecDescent::_tracefirst($text),
14100                                                   q{reference_a},
14101                                                   $tracelevel)
14102                                                         if defined $::RD_TRACE;
14103                         last;
14104                 }
14105                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [old_new_corr]<< (}
14106                                         . @$_tok . q{ times)},
14107                                           
14108                                           Parse::RecDescent::_tracefirst($text),
14109                                           q{reference_a},
14110                                           $tracelevel)
14111                                                 if defined $::RD_TRACE;
14112                 $item{q{old_new_corr(0..2)}} = $_tok;
14113                 push @item, $_tok;
14114                 
14115
14116
14117                 Parse::RecDescent::_trace(q{Trying repeated subrule: [old_new_table]},
14118                                   Parse::RecDescent::_tracefirst($text),
14119                                   q{reference_a},
14120                                   $tracelevel)
14121                                         if defined $::RD_TRACE;
14122                 $expectation->is(q{old_new_table})->at($text);
14123                 
14124                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_table, 0, 2, $_noactions,$expectation,undef))) 
14125                 {
14126                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [old_new_table]>>},
14127                                                   Parse::RecDescent::_tracefirst($text),
14128                                                   q{reference_a},
14129                                                   $tracelevel)
14130                                                         if defined $::RD_TRACE;
14131                         last;
14132                 }
14133                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [old_new_table]<< (}
14134                                         . @$_tok . q{ times)},
14135                                           
14136                                           Parse::RecDescent::_tracefirst($text),
14137                                           q{reference_a},
14138                                           $tracelevel)
14139                                                 if defined $::RD_TRACE;
14140                 $item{q{old_new_table(0..2)}} = $_tok;
14141                 push @item, $_tok;
14142                 
14143
14144
14145                 Parse::RecDescent::_trace(q{Trying action},
14146                                           Parse::RecDescent::_tracefirst($text),
14147                                           q{reference_a},
14148                                           $tracelevel)
14149                                                 if defined $::RD_TRACE;
14150                 
14151
14152                 $_tok = ($_noactions) ? 0 : do { $return = join(' ', $item[1], join(' ', @{$item[2]}), join(' ', @{$item[3]})  ) };
14153                 unless (defined $_tok)
14154                 {
14155                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
14156                                         if defined $::RD_TRACE;
14157                         last;
14158                 }
14159                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
14160                                           . $_tok . q{])},
14161                                           Parse::RecDescent::_tracefirst($text))
14162                                                 if defined $::RD_TRACE;
14163                 push @item, $_tok;
14164                 $item{__ACTION1__}=$_tok;
14165                 
14166
14167
14168                 Parse::RecDescent::_trace(q{>>Matched production: [/REFERENCING/i old_new_corr old_new_table]<<},
14169                                           Parse::RecDescent::_tracefirst($text),
14170                                           q{reference_a},
14171                                           $tracelevel)
14172                                                 if defined $::RD_TRACE;
14173                 $_matched = 1;
14174                 last;
14175         }
14176
14177
14178         unless ( $_matched || defined($return) || defined($score) )
14179         {
14180                 
14181
14182                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
14183                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
14184                                          Parse::RecDescent::_tracefirst($_[1]),
14185                                          q{reference_a},
14186                                          $tracelevel)
14187                                         if defined $::RD_TRACE;
14188                 return undef;
14189         }
14190         if (!defined($return) && defined($score))
14191         {
14192                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
14193                                           q{reference_a},
14194                                           $tracelevel)
14195                                                 if defined $::RD_TRACE;
14196                 $return = $score_return;
14197         }
14198         splice @{$thisparser->{errors}}, $err_at;
14199         $return = $item[$#item] unless defined $return;
14200         if (defined $::RD_TRACE)
14201         {
14202                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
14203                                           $return . q{])}, "",
14204                                           q{reference_a},
14205                                           $tracelevel);
14206                 Parse::RecDescent::_trace(q{(consumed: [} .
14207                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
14208                                           Parse::RecDescent::_tracefirst($text),
14209                                           , q{reference_a},
14210                                           $tracelevel)
14211         }
14212         $_[1] = $text;
14213         return $return;
14214 }
14215
14216 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14217 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cast_specification
14218 {
14219         my $thisparser = $_[0];
14220         use vars q{$tracelevel};
14221         local $tracelevel = ($tracelevel||0)+1;
14222         $ERRORS = 0;
14223         my $thisrule = $thisparser->{"rules"}{"cast_specification"};
14224         
14225         Parse::RecDescent::_trace(q{Trying rule: [cast_specification]},
14226                                   Parse::RecDescent::_tracefirst($_[1]),
14227                                   q{cast_specification},
14228                                   $tracelevel)
14229                                         if defined $::RD_TRACE;
14230
14231         
14232         my $err_at = @{$thisparser->{errors}};
14233
14234         my $score;
14235         my $score_return;
14236         my $_tok;
14237         my $return = undef;
14238         my $_matched=0;
14239         my $commit=0;
14240         my @item = ();
14241         my %item = ();
14242         my $repeating =  defined($_[2]) && $_[2];
14243         my $_noactions = defined($_[3]) && $_[3];
14244         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
14245         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
14246         my $text;
14247         my $lastsep="";
14248         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14249         $expectation->at($_[1]);
14250         
14251         my $thisline;
14252         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14253
14254         
14255
14256         while (!$_matched && !$commit)
14257         {
14258                 
14259                 Parse::RecDescent::_trace(q{Trying production: [/CAST/i '(' expression, or /NULL/i, or parameter_marker /AS/i data_type /SCOPE/ ')']},
14260                                           Parse::RecDescent::_tracefirst($_[1]),
14261                                           q{cast_specification},
14262                                           $tracelevel)
14263                                                 if defined $::RD_TRACE;
14264                 my $thisprod = $thisrule->{"prods"}[0];
14265                 $text = $_[1];
14266                 my $_savetext;
14267                 @item = (q{cast_specification});
14268                 %item = (__RULE__ => q{cast_specification});
14269                 my $repcount = 0;
14270
14271
14272                 Parse::RecDescent::_trace(q{Trying terminal: [/CAST/i]}, Parse::RecDescent::_tracefirst($text),
14273                                           q{cast_specification},
14274                                           $tracelevel)
14275                                                 if defined $::RD_TRACE;
14276                 $lastsep = "";
14277                 $expectation->is(q{})->at($text);
14278                 
14279
14280                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CAST)//i)
14281                 {
14282                         
14283                         $expectation->failed();
14284                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14285                                                   Parse::RecDescent::_tracefirst($text))
14286                                         if defined $::RD_TRACE;
14287
14288                         last;
14289                 }
14290                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14291                                                 . $& . q{])},
14292                                                   Parse::RecDescent::_tracefirst($text))
14293                                         if defined $::RD_TRACE;
14294                 push @item, $item{__PATTERN1__}=$&;
14295                 
14296
14297                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
14298                                           Parse::RecDescent::_tracefirst($text),
14299                                           q{cast_specification},
14300                                           $tracelevel)
14301                                                 if defined $::RD_TRACE;
14302                 $lastsep = "";
14303                 $expectation->is(q{'('})->at($text);
14304                 
14305
14306                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
14307                 {
14308                         
14309                         $expectation->failed();
14310                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
14311                                                   Parse::RecDescent::_tracefirst($text))
14312                                                         if defined $::RD_TRACE;
14313                         last;
14314                 }
14315                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14316                                                 . $& . q{])},
14317                                                   Parse::RecDescent::_tracefirst($text))
14318                                                         if defined $::RD_TRACE;
14319                 push @item, $item{__STRING1__}=$&;
14320                 
14321
14322                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_cast_specification]},
14323                                   Parse::RecDescent::_tracefirst($text),
14324                                   q{cast_specification},
14325                                   $tracelevel)
14326                                         if defined $::RD_TRACE;
14327                 if (1) { no strict qw{refs};
14328                 $expectation->is(q{expression, or /NULL/i, or parameter_marker})->at($text);
14329                 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 })))
14330                 {
14331                         
14332                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_cast_specification]>>},
14333                                                   Parse::RecDescent::_tracefirst($text),
14334                                                   q{cast_specification},
14335                                                   $tracelevel)
14336                                                         if defined $::RD_TRACE;
14337                         $expectation->failed();
14338                         last;
14339                 }
14340                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_cast_specification]<< (return value: [}
14341                                         . $_tok . q{]},
14342                                           
14343                                           Parse::RecDescent::_tracefirst($text),
14344                                           q{cast_specification},
14345                                           $tracelevel)
14346                                                 if defined $::RD_TRACE;
14347                 $item{q{_alternation_1_of_production_1_of_rule_cast_specification}} = $_tok;
14348                 push @item, $_tok;
14349                 
14350                 }
14351
14352                 Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
14353                                           q{cast_specification},
14354                                           $tracelevel)
14355                                                 if defined $::RD_TRACE;
14356                 $lastsep = "";
14357                 $expectation->is(q{/AS/i})->at($text);
14358                 
14359
14360                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AS)//i)
14361                 {
14362                         
14363                         $expectation->failed();
14364                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14365                                                   Parse::RecDescent::_tracefirst($text))
14366                                         if defined $::RD_TRACE;
14367
14368                         last;
14369                 }
14370                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14371                                                 . $& . q{])},
14372                                                   Parse::RecDescent::_tracefirst($text))
14373                                         if defined $::RD_TRACE;
14374                 push @item, $item{__PATTERN2__}=$&;
14375                 
14376
14377                 Parse::RecDescent::_trace(q{Trying subrule: [data_type]},
14378                                   Parse::RecDescent::_tracefirst($text),
14379                                   q{cast_specification},
14380                                   $tracelevel)
14381                                         if defined $::RD_TRACE;
14382                 if (1) { no strict qw{refs};
14383                 $expectation->is(q{data_type})->at($text);
14384                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::data_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
14385                 {
14386                         
14387                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [data_type]>>},
14388                                                   Parse::RecDescent::_tracefirst($text),
14389                                                   q{cast_specification},
14390                                                   $tracelevel)
14391                                                         if defined $::RD_TRACE;
14392                         $expectation->failed();
14393                         last;
14394                 }
14395                 Parse::RecDescent::_trace(q{>>Matched subrule: [data_type]<< (return value: [}
14396                                         . $_tok . q{]},
14397                                           
14398                                           Parse::RecDescent::_tracefirst($text),
14399                                           q{cast_specification},
14400                                           $tracelevel)
14401                                                 if defined $::RD_TRACE;
14402                 $item{q{data_type}} = $_tok;
14403                 push @item, $_tok;
14404                 
14405                 }
14406
14407                 Parse::RecDescent::_trace(q{Trying repeated subrule: [/SCOPE/]},
14408                                   Parse::RecDescent::_tracefirst($text),
14409                                   q{cast_specification},
14410                                   $tracelevel)
14411                                         if defined $::RD_TRACE;
14412                 $expectation->is(q{/SCOPE/})->at($text);
14413                 
14414                 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))) 
14415                 {
14416                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/SCOPE/]>>},
14417                                                   Parse::RecDescent::_tracefirst($text),
14418                                                   q{cast_specification},
14419                                                   $tracelevel)
14420                                                         if defined $::RD_TRACE;
14421                         last;
14422                 }
14423                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_cast_specification]<< (}
14424                                         . @$_tok . q{ times)},
14425                                           
14426                                           Parse::RecDescent::_tracefirst($text),
14427                                           q{cast_specification},
14428                                           $tracelevel)
14429                                                 if defined $::RD_TRACE;
14430                 $item{q{_alternation_2_of_production_1_of_rule_cast_specification(?)}} = $_tok;
14431                 push @item, $_tok;
14432                 
14433
14434
14435                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
14436                                           Parse::RecDescent::_tracefirst($text),
14437                                           q{cast_specification},
14438                                           $tracelevel)
14439                                                 if defined $::RD_TRACE;
14440                 $lastsep = "";
14441                 $expectation->is(q{')'})->at($text);
14442                 
14443
14444                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
14445                 {
14446                         
14447                         $expectation->failed();
14448                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
14449                                                   Parse::RecDescent::_tracefirst($text))
14450                                                         if defined $::RD_TRACE;
14451                         last;
14452                 }
14453                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14454                                                 . $& . q{])},
14455                                                   Parse::RecDescent::_tracefirst($text))
14456                                                         if defined $::RD_TRACE;
14457                 push @item, $item{__STRING2__}=$&;
14458                 
14459
14460
14461                 Parse::RecDescent::_trace(q{>>Matched production: [/CAST/i '(' expression, or /NULL/i, or parameter_marker /AS/i data_type /SCOPE/ ')']<<},
14462                                           Parse::RecDescent::_tracefirst($text),
14463                                           q{cast_specification},
14464                                           $tracelevel)
14465                                                 if defined $::RD_TRACE;
14466                 $_matched = 1;
14467                 last;
14468         }
14469
14470
14471         unless ( $_matched || defined($return) || defined($score) )
14472         {
14473                 
14474
14475                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
14476                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
14477                                          Parse::RecDescent::_tracefirst($_[1]),
14478                                          q{cast_specification},
14479                                          $tracelevel)
14480                                         if defined $::RD_TRACE;
14481                 return undef;
14482         }
14483         if (!defined($return) && defined($score))
14484         {
14485                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
14486                                           q{cast_specification},
14487                                           $tracelevel)
14488                                                 if defined $::RD_TRACE;
14489                 $return = $score_return;
14490         }
14491         splice @{$thisparser->{errors}}, $err_at;
14492         $return = $item[$#item] unless defined $return;
14493         if (defined $::RD_TRACE)
14494         {
14495                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
14496                                           $return . q{])}, "",
14497                                           q{cast_specification},
14498                                           $tracelevel);
14499                 Parse::RecDescent::_trace(q{(consumed: [} .
14500                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
14501                                           Parse::RecDescent::_tracefirst($text),
14502                                           , q{cast_specification},
14503                                           $tracelevel)
14504         }
14505         $_[1] = $text;
14506         return $return;
14507 }
14508
14509 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14510 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type
14511 {
14512         my $thisparser = $_[0];
14513         use vars q{$tracelevel};
14514         local $tracelevel = ($tracelevel||0)+1;
14515         $ERRORS = 0;
14516         my $thisrule = $thisparser->{"rules"}{"type"};
14517         
14518         Parse::RecDescent::_trace(q{Trying rule: [type]},
14519                                   Parse::RecDescent::_tracefirst($_[1]),
14520                                   q{type},
14521                                   $tracelevel)
14522                                         if defined $::RD_TRACE;
14523
14524         
14525         my $err_at = @{$thisparser->{errors}};
14526
14527         my $score;
14528         my $score_return;
14529         my $_tok;
14530         my $return = undef;
14531         my $_matched=0;
14532         my $commit=0;
14533         my @item = ();
14534         my %item = ();
14535         my $repeating =  defined($_[2]) && $_[2];
14536         my $_noactions = defined($_[3]) && $_[3];
14537         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
14538         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
14539         my $text;
14540         my $lastsep="";
14541         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14542         $expectation->at($_[1]);
14543         
14544         my $thisline;
14545         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14546
14547         
14548
14549         while (!$_matched && !$commit)
14550         {
14551                 
14552                 Parse::RecDescent::_trace(q{Trying production: [/UPDATE/i /OF/i <leftop: column_name /,/ column_name>]},
14553                                           Parse::RecDescent::_tracefirst($_[1]),
14554                                           q{type},
14555                                           $tracelevel)
14556                                                 if defined $::RD_TRACE;
14557                 my $thisprod = $thisrule->{"prods"}[0];
14558                 $text = $_[1];
14559                 my $_savetext;
14560                 @item = (q{type});
14561                 %item = (__RULE__ => q{type});
14562                 my $repcount = 0;
14563
14564
14565                 Parse::RecDescent::_trace(q{Trying terminal: [/UPDATE/i]}, Parse::RecDescent::_tracefirst($text),
14566                                           q{type},
14567                                           $tracelevel)
14568                                                 if defined $::RD_TRACE;
14569                 $lastsep = "";
14570                 $expectation->is(q{})->at($text);
14571                 
14572
14573                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UPDATE)//i)
14574                 {
14575                         
14576                         $expectation->failed();
14577                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14578                                                   Parse::RecDescent::_tracefirst($text))
14579                                         if defined $::RD_TRACE;
14580
14581                         last;
14582                 }
14583                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14584                                                 . $& . q{])},
14585                                                   Parse::RecDescent::_tracefirst($text))
14586                                         if defined $::RD_TRACE;
14587                 push @item, $item{__PATTERN1__}=$&;
14588                 
14589
14590                 Parse::RecDescent::_trace(q{Trying terminal: [/OF/i]}, Parse::RecDescent::_tracefirst($text),
14591                                           q{type},
14592                                           $tracelevel)
14593                                                 if defined $::RD_TRACE;
14594                 $lastsep = "";
14595                 $expectation->is(q{/OF/i})->at($text);
14596                 
14597
14598                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OF)//i)
14599                 {
14600                         
14601                         $expectation->failed();
14602                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14603                                                   Parse::RecDescent::_tracefirst($text))
14604                                         if defined $::RD_TRACE;
14605
14606                         last;
14607                 }
14608                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14609                                                 . $& . q{])},
14610                                                   Parse::RecDescent::_tracefirst($text))
14611                                         if defined $::RD_TRACE;
14612                 push @item, $item{__PATTERN2__}=$&;
14613                 
14614
14615                 Parse::RecDescent::_trace(q{Trying operator: [<leftop: column_name /,/ column_name>]},
14616                                   Parse::RecDescent::_tracefirst($text),
14617                                   q{type},
14618                                   $tracelevel)
14619                                         if defined $::RD_TRACE;
14620                 $expectation->is(q{<leftop: column_name /,/ column_name>})->at($text);
14621
14622                 $_tok = undef;
14623                 OPLOOP: while (1)
14624                 {
14625                   $repcount = 0;
14626                   my  @item;
14627                   
14628                   # MATCH LEFTARG
14629                   
14630                 Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
14631                                   Parse::RecDescent::_tracefirst($text),
14632                                   q{type},
14633                                   $tracelevel)
14634                                         if defined $::RD_TRACE;
14635                 if (1) { no strict qw{refs};
14636                 $expectation->is(q{column_name})->at($text);
14637                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
14638                 {
14639                         
14640                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
14641                                                   Parse::RecDescent::_tracefirst($text),
14642                                                   q{type},
14643                                                   $tracelevel)
14644                                                         if defined $::RD_TRACE;
14645                         $expectation->failed();
14646                         last;
14647                 }
14648                 Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
14649                                         . $_tok . q{]},
14650                                           
14651                                           Parse::RecDescent::_tracefirst($text),
14652                                           q{type},
14653                                           $tracelevel)
14654                                                 if defined $::RD_TRACE;
14655                 $item{q{column_name}} = $_tok;
14656                 push @item, $_tok;
14657                 
14658                 }
14659
14660
14661                   $repcount++;
14662
14663                   my $savetext = $text;
14664                   my $backtrack;
14665
14666                   # MATCH (OP RIGHTARG)(s)
14667                   while ($repcount < 100000000)
14668                   {
14669                         $backtrack = 0;
14670                         
14671                 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
14672                                           q{type},
14673                                           $tracelevel)
14674                                                 if defined $::RD_TRACE;
14675                 $lastsep = "";
14676                 $expectation->is(q{/,/})->at($text);
14677                 
14678
14679                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
14680                 {
14681                         
14682                         $expectation->failed();
14683                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14684                                                   Parse::RecDescent::_tracefirst($text))
14685                                         if defined $::RD_TRACE;
14686
14687                         last;
14688                 }
14689                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14690                                                 . $& . q{])},
14691                                                   Parse::RecDescent::_tracefirst($text))
14692                                         if defined $::RD_TRACE;
14693                 push @item, $item{__PATTERN3__}=$&;
14694                 
14695
14696                         pop @item;
14697                         if (defined $1) {push @item, $item{'column_name(s)'}=$1; $backtrack=1;}
14698                         
14699                 Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
14700                                   Parse::RecDescent::_tracefirst($text),
14701                                   q{type},
14702                                   $tracelevel)
14703                                         if defined $::RD_TRACE;
14704                 if (1) { no strict qw{refs};
14705                 $expectation->is(q{column_name})->at($text);
14706                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
14707                 {
14708                         
14709                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
14710                                                   Parse::RecDescent::_tracefirst($text),
14711                                                   q{type},
14712                                                   $tracelevel)
14713                                                         if defined $::RD_TRACE;
14714                         $expectation->failed();
14715                         last;
14716                 }
14717                 Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
14718                                         . $_tok . q{]},
14719                                           
14720                                           Parse::RecDescent::_tracefirst($text),
14721                                           q{type},
14722                                           $tracelevel)
14723                                                 if defined $::RD_TRACE;
14724                 $item{q{column_name}} = $_tok;
14725                 push @item, $_tok;
14726                 
14727                 }
14728
14729                         $savetext = $text;
14730                         $repcount++;
14731                   }
14732                   $text = $savetext;
14733                   pop @item if $backtrack;
14734
14735                   unless (@item) { undef $_tok; last }
14736                   $_tok = [ @item ];
14737                   last;
14738                 } 
14739
14740                 unless ($repcount>=1)
14741                 {
14742                         Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: column_name /,/ column_name>]>>},
14743                                                   Parse::RecDescent::_tracefirst($text),
14744                                                   q{type},
14745                                                   $tracelevel)
14746                                                         if defined $::RD_TRACE;
14747                         $expectation->failed();
14748                         last;
14749                 }
14750                 Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: column_name /,/ column_name>]<< (return value: [}
14751                                           . qq{@{$_tok||[]}} . q{]},
14752                                           Parse::RecDescent::_tracefirst($text),
14753                                           q{type},
14754                                           $tracelevel)
14755                                                 if defined $::RD_TRACE;
14756
14757                 push @item, $item{'column_name(s)'}=$_tok||[];
14758
14759
14760                 Parse::RecDescent::_trace(q{Trying action},
14761                                           Parse::RecDescent::_tracefirst($text),
14762                                           q{type},
14763                                           $tracelevel)
14764                                                 if defined $::RD_TRACE;
14765                 
14766
14767                 $_tok = ($_noactions) ? 0 : do { $return = { event  => 'update_on',
14768               fields => $item[3] }
14769 };
14770                 unless (defined $_tok)
14771                 {
14772                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
14773                                         if defined $::RD_TRACE;
14774                         last;
14775                 }
14776                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
14777                                           . $_tok . q{])},
14778                                           Parse::RecDescent::_tracefirst($text))
14779                                                 if defined $::RD_TRACE;
14780                 push @item, $_tok;
14781                 $item{__ACTION1__}=$_tok;
14782                 
14783
14784
14785                 Parse::RecDescent::_trace(q{>>Matched production: [/UPDATE/i /OF/i <leftop: column_name /,/ column_name>]<<},
14786                                           Parse::RecDescent::_tracefirst($text),
14787                                           q{type},
14788                                           $tracelevel)
14789                                                 if defined $::RD_TRACE;
14790                 $_matched = 1;
14791                 last;
14792         }
14793
14794
14795         while (!$_matched && !$commit)
14796         {
14797                 
14798                 Parse::RecDescent::_trace(q{Trying production: [/INSERT/i, or /DELETE/i, or /UPDATE/i]},
14799                                           Parse::RecDescent::_tracefirst($_[1]),
14800                                           q{type},
14801                                           $tracelevel)
14802                                                 if defined $::RD_TRACE;
14803                 my $thisprod = $thisrule->{"prods"}[1];
14804                 $text = $_[1];
14805                 my $_savetext;
14806                 @item = (q{type});
14807                 %item = (__RULE__ => q{type});
14808                 my $repcount = 0;
14809
14810
14811                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_2_of_rule_type]},
14812                                   Parse::RecDescent::_tracefirst($text),
14813                                   q{type},
14814                                   $tracelevel)
14815                                         if defined $::RD_TRACE;
14816                 if (1) { no strict qw{refs};
14817                 $expectation->is(q{})->at($text);
14818                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
14819                 {
14820                         
14821                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_2_of_rule_type]>>},
14822                                                   Parse::RecDescent::_tracefirst($text),
14823                                                   q{type},
14824                                                   $tracelevel)
14825                                                         if defined $::RD_TRACE;
14826                         $expectation->failed();
14827                         last;
14828                 }
14829                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_2_of_rule_type]<< (return value: [}
14830                                         . $_tok . q{]},
14831                                           
14832                                           Parse::RecDescent::_tracefirst($text),
14833                                           q{type},
14834                                           $tracelevel)
14835                                                 if defined $::RD_TRACE;
14836                 $item{q{_alternation_1_of_production_2_of_rule_type}} = $_tok;
14837                 push @item, $_tok;
14838                 
14839                 }
14840
14841                 Parse::RecDescent::_trace(q{Trying action},
14842                                           Parse::RecDescent::_tracefirst($text),
14843                                           q{type},
14844                                           $tracelevel)
14845                                                 if defined $::RD_TRACE;
14846                 
14847
14848                 $_tok = ($_noactions) ? 0 : do { $return = { event => $item[1] } };
14849                 unless (defined $_tok)
14850                 {
14851                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
14852                                         if defined $::RD_TRACE;
14853                         last;
14854                 }
14855                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
14856                                           . $_tok . q{])},
14857                                           Parse::RecDescent::_tracefirst($text))
14858                                                 if defined $::RD_TRACE;
14859                 push @item, $_tok;
14860                 $item{__ACTION1__}=$_tok;
14861                 
14862
14863
14864                 Parse::RecDescent::_trace(q{>>Matched production: [/INSERT/i, or /DELETE/i, or /UPDATE/i]<<},
14865                                           Parse::RecDescent::_tracefirst($text),
14866                                           q{type},
14867                                           $tracelevel)
14868                                                 if defined $::RD_TRACE;
14869                 $_matched = 1;
14870                 last;
14871         }
14872
14873
14874         unless ( $_matched || defined($return) || defined($score) )
14875         {
14876                 
14877
14878                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
14879                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
14880                                          Parse::RecDescent::_tracefirst($_[1]),
14881                                          q{type},
14882                                          $tracelevel)
14883                                         if defined $::RD_TRACE;
14884                 return undef;
14885         }
14886         if (!defined($return) && defined($score))
14887         {
14888                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
14889                                           q{type},
14890                                           $tracelevel)
14891                                                 if defined $::RD_TRACE;
14892                 $return = $score_return;
14893         }
14894         splice @{$thisparser->{errors}}, $err_at;
14895         $return = $item[$#item] unless defined $return;
14896         if (defined $::RD_TRACE)
14897         {
14898                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
14899                                           $return . q{])}, "",
14900                                           q{type},
14901                                           $tracelevel);
14902                 Parse::RecDescent::_trace(q{(consumed: [} .
14903                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
14904                                           Parse::RecDescent::_tracefirst($text),
14905                                           , q{type},
14906                                           $tracelevel)
14907         }
14908         $_[1] = $text;
14909         return $return;
14910 }
14911
14912 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14913 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_12_of_rule_sysibm_function
14914 {
14915         my $thisparser = $_[0];
14916         use vars q{$tracelevel};
14917         local $tracelevel = ($tracelevel||0)+1;
14918         $ERRORS = 0;
14919         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_12_of_rule_sysibm_function"};
14920         
14921         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_12_of_rule_sysibm_function]},
14922                                   Parse::RecDescent::_tracefirst($_[1]),
14923                                   q{_alternation_1_of_production_12_of_rule_sysibm_function},
14924                                   $tracelevel)
14925                                         if defined $::RD_TRACE;
14926
14927         
14928         my $err_at = @{$thisparser->{errors}};
14929
14930         my $score;
14931         my $score_return;
14932         my $_tok;
14933         my $return = undef;
14934         my $_matched=0;
14935         my $commit=0;
14936         my @item = ();
14937         my %item = ();
14938         my $repeating =  defined($_[2]) && $_[2];
14939         my $_noactions = defined($_[3]) && $_[3];
14940         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
14941         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
14942         my $text;
14943         my $lastsep="";
14944         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14945         $expectation->at($_[1]);
14946         
14947         my $thisline;
14948         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14949
14950         
14951
14952         while (!$_matched && !$commit)
14953         {
14954                 
14955                 Parse::RecDescent::_trace(q{Trying production: [/COVARIANCE/i]},
14956                                           Parse::RecDescent::_tracefirst($_[1]),
14957                                           q{_alternation_1_of_production_12_of_rule_sysibm_function},
14958                                           $tracelevel)
14959                                                 if defined $::RD_TRACE;
14960                 my $thisprod = $thisrule->{"prods"}[0];
14961                 $text = $_[1];
14962                 my $_savetext;
14963                 @item = (q{_alternation_1_of_production_12_of_rule_sysibm_function});
14964                 %item = (__RULE__ => q{_alternation_1_of_production_12_of_rule_sysibm_function});
14965                 my $repcount = 0;
14966
14967
14968                 Parse::RecDescent::_trace(q{Trying terminal: [/COVARIANCE/i]}, Parse::RecDescent::_tracefirst($text),
14969                                           q{_alternation_1_of_production_12_of_rule_sysibm_function},
14970                                           $tracelevel)
14971                                                 if defined $::RD_TRACE;
14972                 $lastsep = "";
14973                 $expectation->is(q{})->at($text);
14974                 
14975
14976                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COVARIANCE)//i)
14977                 {
14978                         
14979                         $expectation->failed();
14980                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14981                                                   Parse::RecDescent::_tracefirst($text))
14982                                         if defined $::RD_TRACE;
14983
14984                         last;
14985                 }
14986                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14987                                                 . $& . q{])},
14988                                                   Parse::RecDescent::_tracefirst($text))
14989                                         if defined $::RD_TRACE;
14990                 push @item, $item{__PATTERN1__}=$&;
14991                 
14992
14993
14994                 Parse::RecDescent::_trace(q{>>Matched production: [/COVARIANCE/i]<<},
14995                                           Parse::RecDescent::_tracefirst($text),
14996                                           q{_alternation_1_of_production_12_of_rule_sysibm_function},
14997                                           $tracelevel)
14998                                                 if defined $::RD_TRACE;
14999                 $_matched = 1;
15000                 last;
15001         }
15002
15003
15004         while (!$_matched && !$commit)
15005         {
15006                 
15007                 Parse::RecDescent::_trace(q{Trying production: [/COVAR/i]},
15008                                           Parse::RecDescent::_tracefirst($_[1]),
15009                                           q{_alternation_1_of_production_12_of_rule_sysibm_function},
15010                                           $tracelevel)
15011                                                 if defined $::RD_TRACE;
15012                 my $thisprod = $thisrule->{"prods"}[1];
15013                 $text = $_[1];
15014                 my $_savetext;
15015                 @item = (q{_alternation_1_of_production_12_of_rule_sysibm_function});
15016                 %item = (__RULE__ => q{_alternation_1_of_production_12_of_rule_sysibm_function});
15017                 my $repcount = 0;
15018
15019
15020                 Parse::RecDescent::_trace(q{Trying terminal: [/COVAR/i]}, Parse::RecDescent::_tracefirst($text),
15021                                           q{_alternation_1_of_production_12_of_rule_sysibm_function},
15022                                           $tracelevel)
15023                                                 if defined $::RD_TRACE;
15024                 $lastsep = "";
15025                 $expectation->is(q{})->at($text);
15026                 
15027
15028                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COVAR)//i)
15029                 {
15030                         
15031                         $expectation->failed();
15032                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
15033                                                   Parse::RecDescent::_tracefirst($text))
15034                                         if defined $::RD_TRACE;
15035
15036                         last;
15037                 }
15038                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15039                                                 . $& . q{])},
15040                                                   Parse::RecDescent::_tracefirst($text))
15041                                         if defined $::RD_TRACE;
15042                 push @item, $item{__PATTERN1__}=$&;
15043                 
15044
15045
15046                 Parse::RecDescent::_trace(q{>>Matched production: [/COVAR/i]<<},
15047                                           Parse::RecDescent::_tracefirst($text),
15048                                           q{_alternation_1_of_production_12_of_rule_sysibm_function},
15049                                           $tracelevel)
15050                                                 if defined $::RD_TRACE;
15051                 $_matched = 1;
15052                 last;
15053         }
15054
15055
15056         unless ( $_matched || defined($return) || defined($score) )
15057         {
15058                 
15059
15060                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
15061                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
15062                                          Parse::RecDescent::_tracefirst($_[1]),
15063                                          q{_alternation_1_of_production_12_of_rule_sysibm_function},
15064                                          $tracelevel)
15065                                         if defined $::RD_TRACE;
15066                 return undef;
15067         }
15068         if (!defined($return) && defined($score))
15069         {
15070                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15071                                           q{_alternation_1_of_production_12_of_rule_sysibm_function},
15072                                           $tracelevel)
15073                                                 if defined $::RD_TRACE;
15074                 $return = $score_return;
15075         }
15076         splice @{$thisparser->{errors}}, $err_at;
15077         $return = $item[$#item] unless defined $return;
15078         if (defined $::RD_TRACE)
15079         {
15080                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15081                                           $return . q{])}, "",
15082                                           q{_alternation_1_of_production_12_of_rule_sysibm_function},
15083                                           $tracelevel);
15084                 Parse::RecDescent::_trace(q{(consumed: [} .
15085                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
15086                                           Parse::RecDescent::_tracefirst($text),
15087                                           , q{_alternation_1_of_production_12_of_rule_sysibm_function},
15088                                           $tracelevel)
15089         }
15090         $_[1] = $text;
15091         return $return;
15092 }
15093
15094 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15095 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scalar_fullselect
15096 {
15097         my $thisparser = $_[0];
15098         use vars q{$tracelevel};
15099         local $tracelevel = ($tracelevel||0)+1;
15100         $ERRORS = 0;
15101         my $thisrule = $thisparser->{"rules"}{"scalar_fullselect"};
15102         
15103         Parse::RecDescent::_trace(q{Trying rule: [scalar_fullselect]},
15104                                   Parse::RecDescent::_tracefirst($_[1]),
15105                                   q{scalar_fullselect},
15106                                   $tracelevel)
15107                                         if defined $::RD_TRACE;
15108
15109         
15110         my $err_at = @{$thisparser->{errors}};
15111
15112         my $score;
15113         my $score_return;
15114         my $_tok;
15115         my $return = undef;
15116         my $_matched=0;
15117         my $commit=0;
15118         my @item = ();
15119         my %item = ();
15120         my $repeating =  defined($_[2]) && $_[2];
15121         my $_noactions = defined($_[3]) && $_[3];
15122         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
15123         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
15124         my $text;
15125         my $lastsep="";
15126         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15127         $expectation->at($_[1]);
15128         
15129         my $thisline;
15130         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15131
15132         
15133
15134         while (!$_matched && !$commit)
15135         {
15136                 
15137                 Parse::RecDescent::_trace(q{Trying production: ['(' fullselect ')']},
15138                                           Parse::RecDescent::_tracefirst($_[1]),
15139                                           q{scalar_fullselect},
15140                                           $tracelevel)
15141                                                 if defined $::RD_TRACE;
15142                 my $thisprod = $thisrule->{"prods"}[0];
15143                 $text = $_[1];
15144                 my $_savetext;
15145                 @item = (q{scalar_fullselect});
15146                 %item = (__RULE__ => q{scalar_fullselect});
15147                 my $repcount = 0;
15148
15149
15150                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
15151                                           Parse::RecDescent::_tracefirst($text),
15152                                           q{scalar_fullselect},
15153                                           $tracelevel)
15154                                                 if defined $::RD_TRACE;
15155                 $lastsep = "";
15156                 $expectation->is(q{})->at($text);
15157                 
15158
15159                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
15160                 {
15161                         
15162                         $expectation->failed();
15163                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
15164                                                   Parse::RecDescent::_tracefirst($text))
15165                                                         if defined $::RD_TRACE;
15166                         last;
15167                 }
15168                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15169                                                 . $& . q{])},
15170                                                   Parse::RecDescent::_tracefirst($text))
15171                                                         if defined $::RD_TRACE;
15172                 push @item, $item{__STRING1__}=$&;
15173                 
15174
15175                 Parse::RecDescent::_trace(q{Trying subrule: [fullselect]},
15176                                   Parse::RecDescent::_tracefirst($text),
15177                                   q{scalar_fullselect},
15178                                   $tracelevel)
15179                                         if defined $::RD_TRACE;
15180                 if (1) { no strict qw{refs};
15181                 $expectation->is(q{fullselect})->at($text);
15182                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
15183                 {
15184                         
15185                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [fullselect]>>},
15186                                                   Parse::RecDescent::_tracefirst($text),
15187                                                   q{scalar_fullselect},
15188                                                   $tracelevel)
15189                                                         if defined $::RD_TRACE;
15190                         $expectation->failed();
15191                         last;
15192                 }
15193                 Parse::RecDescent::_trace(q{>>Matched subrule: [fullselect]<< (return value: [}
15194                                         . $_tok . q{]},
15195                                           
15196                                           Parse::RecDescent::_tracefirst($text),
15197                                           q{scalar_fullselect},
15198                                           $tracelevel)
15199                                                 if defined $::RD_TRACE;
15200                 $item{q{fullselect}} = $_tok;
15201                 push @item, $_tok;
15202                 
15203                 }
15204
15205                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
15206                                           Parse::RecDescent::_tracefirst($text),
15207                                           q{scalar_fullselect},
15208                                           $tracelevel)
15209                                                 if defined $::RD_TRACE;
15210                 $lastsep = "";
15211                 $expectation->is(q{')'})->at($text);
15212                 
15213
15214                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
15215                 {
15216                         
15217                         $expectation->failed();
15218                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
15219                                                   Parse::RecDescent::_tracefirst($text))
15220                                                         if defined $::RD_TRACE;
15221                         last;
15222                 }
15223                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15224                                                 . $& . q{])},
15225                                                   Parse::RecDescent::_tracefirst($text))
15226                                                         if defined $::RD_TRACE;
15227                 push @item, $item{__STRING2__}=$&;
15228                 
15229
15230
15231                 Parse::RecDescent::_trace(q{>>Matched production: ['(' fullselect ')']<<},
15232                                           Parse::RecDescent::_tracefirst($text),
15233                                           q{scalar_fullselect},
15234                                           $tracelevel)
15235                                                 if defined $::RD_TRACE;
15236                 $_matched = 1;
15237                 last;
15238         }
15239
15240
15241         unless ( $_matched || defined($return) || defined($score) )
15242         {
15243                 
15244
15245                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
15246                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
15247                                          Parse::RecDescent::_tracefirst($_[1]),
15248                                          q{scalar_fullselect},
15249                                          $tracelevel)
15250                                         if defined $::RD_TRACE;
15251                 return undef;
15252         }
15253         if (!defined($return) && defined($score))
15254         {
15255                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15256                                           q{scalar_fullselect},
15257                                           $tracelevel)
15258                                                 if defined $::RD_TRACE;
15259                 $return = $score_return;
15260         }
15261         splice @{$thisparser->{errors}}, $err_at;
15262         $return = $item[$#item] unless defined $return;
15263         if (defined $::RD_TRACE)
15264         {
15265                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15266                                           $return . q{])}, "",
15267                                           q{scalar_fullselect},
15268                                           $tracelevel);
15269                 Parse::RecDescent::_trace(q{(consumed: [} .
15270                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
15271                                           Parse::RecDescent::_tracefirst($text),
15272                                           , q{scalar_fullselect},
15273                                           $tracelevel)
15274         }
15275         $_[1] = $text;
15276         return $return;
15277 }
15278
15279 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15280 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_options
15281 {
15282         my $thisparser = $_[0];
15283         use vars q{$tracelevel};
15284         local $tracelevel = ($tracelevel||0)+1;
15285         $ERRORS = 0;
15286         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_options"};
15287         
15288         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_options]},
15289                                   Parse::RecDescent::_tracefirst($_[1]),
15290                                   q{_alternation_1_of_production_1_of_rule_options},
15291                                   $tracelevel)
15292                                         if defined $::RD_TRACE;
15293
15294         
15295         my $err_at = @{$thisparser->{errors}};
15296
15297         my $score;
15298         my $score_return;
15299         my $_tok;
15300         my $return = undef;
15301         my $_matched=0;
15302         my $commit=0;
15303         my @item = ();
15304         my %item = ();
15305         my $repeating =  defined($_[2]) && $_[2];
15306         my $_noactions = defined($_[3]) && $_[3];
15307         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
15308         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
15309         my $text;
15310         my $lastsep="";
15311         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15312         $expectation->at($_[1]);
15313         
15314         my $thisline;
15315         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15316
15317         
15318
15319         while (!$_matched && !$commit)
15320         {
15321                 
15322                 Parse::RecDescent::_trace(q{Trying production: [/CASCADED/i]},
15323                                           Parse::RecDescent::_tracefirst($_[1]),
15324                                           q{_alternation_1_of_production_1_of_rule_options},
15325                                           $tracelevel)
15326                                                 if defined $::RD_TRACE;
15327                 my $thisprod = $thisrule->{"prods"}[0];
15328                 $text = $_[1];
15329                 my $_savetext;
15330                 @item = (q{_alternation_1_of_production_1_of_rule_options});
15331                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_options});
15332                 my $repcount = 0;
15333
15334
15335                 Parse::RecDescent::_trace(q{Trying terminal: [/CASCADED/i]}, Parse::RecDescent::_tracefirst($text),
15336                                           q{_alternation_1_of_production_1_of_rule_options},
15337                                           $tracelevel)
15338                                                 if defined $::RD_TRACE;
15339                 $lastsep = "";
15340                 $expectation->is(q{})->at($text);
15341                 
15342
15343                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CASCADED)//i)
15344                 {
15345                         
15346                         $expectation->failed();
15347                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
15348                                                   Parse::RecDescent::_tracefirst($text))
15349                                         if defined $::RD_TRACE;
15350
15351                         last;
15352                 }
15353                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15354                                                 . $& . q{])},
15355                                                   Parse::RecDescent::_tracefirst($text))
15356                                         if defined $::RD_TRACE;
15357                 push @item, $item{__PATTERN1__}=$&;
15358                 
15359
15360
15361                 Parse::RecDescent::_trace(q{>>Matched production: [/CASCADED/i]<<},
15362                                           Parse::RecDescent::_tracefirst($text),
15363                                           q{_alternation_1_of_production_1_of_rule_options},
15364                                           $tracelevel)
15365                                                 if defined $::RD_TRACE;
15366                 $_matched = 1;
15367                 last;
15368         }
15369
15370
15371         while (!$_matched && !$commit)
15372         {
15373                 
15374                 Parse::RecDescent::_trace(q{Trying production: [/LOCAL/i]},
15375                                           Parse::RecDescent::_tracefirst($_[1]),
15376                                           q{_alternation_1_of_production_1_of_rule_options},
15377                                           $tracelevel)
15378                                                 if defined $::RD_TRACE;
15379                 my $thisprod = $thisrule->{"prods"}[1];
15380                 $text = $_[1];
15381                 my $_savetext;
15382                 @item = (q{_alternation_1_of_production_1_of_rule_options});
15383                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_options});
15384                 my $repcount = 0;
15385
15386
15387                 Parse::RecDescent::_trace(q{Trying terminal: [/LOCAL/i]}, Parse::RecDescent::_tracefirst($text),
15388                                           q{_alternation_1_of_production_1_of_rule_options},
15389                                           $tracelevel)
15390                                                 if defined $::RD_TRACE;
15391                 $lastsep = "";
15392                 $expectation->is(q{})->at($text);
15393                 
15394
15395                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOCAL)//i)
15396                 {
15397                         
15398                         $expectation->failed();
15399                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
15400                                                   Parse::RecDescent::_tracefirst($text))
15401                                         if defined $::RD_TRACE;
15402
15403                         last;
15404                 }
15405                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15406                                                 . $& . q{])},
15407                                                   Parse::RecDescent::_tracefirst($text))
15408                                         if defined $::RD_TRACE;
15409                 push @item, $item{__PATTERN1__}=$&;
15410                 
15411
15412
15413                 Parse::RecDescent::_trace(q{>>Matched production: [/LOCAL/i]<<},
15414                                           Parse::RecDescent::_tracefirst($text),
15415                                           q{_alternation_1_of_production_1_of_rule_options},
15416                                           $tracelevel)
15417                                                 if defined $::RD_TRACE;
15418                 $_matched = 1;
15419                 last;
15420         }
15421
15422
15423         unless ( $_matched || defined($return) || defined($score) )
15424         {
15425                 
15426
15427                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
15428                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
15429                                          Parse::RecDescent::_tracefirst($_[1]),
15430                                          q{_alternation_1_of_production_1_of_rule_options},
15431                                          $tracelevel)
15432                                         if defined $::RD_TRACE;
15433                 return undef;
15434         }
15435         if (!defined($return) && defined($score))
15436         {
15437                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15438                                           q{_alternation_1_of_production_1_of_rule_options},
15439                                           $tracelevel)
15440                                                 if defined $::RD_TRACE;
15441                 $return = $score_return;
15442         }
15443         splice @{$thisparser->{errors}}, $err_at;
15444         $return = $item[$#item] unless defined $return;
15445         if (defined $::RD_TRACE)
15446         {
15447                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15448                                           $return . q{])}, "",
15449                                           q{_alternation_1_of_production_1_of_rule_options},
15450                                           $tracelevel);
15451                 Parse::RecDescent::_trace(q{(consumed: [} .
15452                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
15453                                           Parse::RecDescent::_tracefirst($text),
15454                                           , q{_alternation_1_of_production_1_of_rule_options},
15455                                           $tracelevel)
15456         }
15457         $_[1] = $text;
15458         return $return;
15459 }
15460
15461 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15462 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args
15463 {
15464         my $thisparser = $_[0];
15465         use vars q{$tracelevel};
15466         local $tracelevel = ($tracelevel||0)+1;
15467         $ERRORS = 0;
15468         my $thisrule = $thisparser->{"rules"}{"func_args"};
15469         
15470         Parse::RecDescent::_trace(q{Trying rule: [func_args]},
15471                                   Parse::RecDescent::_tracefirst($_[1]),
15472                                   q{func_args},
15473                                   $tracelevel)
15474                                         if defined $::RD_TRACE;
15475
15476         
15477         my $err_at = @{$thisparser->{errors}};
15478
15479         my $score;
15480         my $score_return;
15481         my $_tok;
15482         my $return = undef;
15483         my $_matched=0;
15484         my $commit=0;
15485         my @item = ();
15486         my %item = ();
15487         my $repeating =  defined($_[2]) && $_[2];
15488         my $_noactions = defined($_[3]) && $_[3];
15489         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
15490         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
15491         my $text;
15492         my $lastsep="";
15493         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15494         $expectation->at($_[1]);
15495         
15496         my $thisline;
15497         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15498
15499         
15500
15501         while (!$_matched && !$commit)
15502         {
15503                 
15504                 Parse::RecDescent::_trace(q{Trying production: [expression]},
15505                                           Parse::RecDescent::_tracefirst($_[1]),
15506                                           q{func_args},
15507                                           $tracelevel)
15508                                                 if defined $::RD_TRACE;
15509                 my $thisprod = $thisrule->{"prods"}[0];
15510                 $text = $_[1];
15511                 my $_savetext;
15512                 @item = (q{func_args});
15513                 %item = (__RULE__ => q{func_args});
15514                 my $repcount = 0;
15515
15516
15517                 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
15518                                   Parse::RecDescent::_tracefirst($text),
15519                                   q{func_args},
15520                                   $tracelevel)
15521                                         if defined $::RD_TRACE;
15522                 if (1) { no strict qw{refs};
15523                 $expectation->is(q{})->at($text);
15524                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
15525                 {
15526                         
15527                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
15528                                                   Parse::RecDescent::_tracefirst($text),
15529                                                   q{func_args},
15530                                                   $tracelevel)
15531                                                         if defined $::RD_TRACE;
15532                         $expectation->failed();
15533                         last;
15534                 }
15535                 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
15536                                         . $_tok . q{]},
15537                                           
15538                                           Parse::RecDescent::_tracefirst($text),
15539                                           q{func_args},
15540                                           $tracelevel)
15541                                                 if defined $::RD_TRACE;
15542                 $item{q{expression}} = $_tok;
15543                 push @item, $_tok;
15544                 
15545                 }
15546
15547
15548                 Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
15549                                           Parse::RecDescent::_tracefirst($text),
15550                                           q{func_args},
15551                                           $tracelevel)
15552                                                 if defined $::RD_TRACE;
15553                 $_matched = 1;
15554                 last;
15555         }
15556
15557
15558         unless ( $_matched || defined($return) || defined($score) )
15559         {
15560                 
15561
15562                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
15563                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
15564                                          Parse::RecDescent::_tracefirst($_[1]),
15565                                          q{func_args},
15566                                          $tracelevel)
15567                                         if defined $::RD_TRACE;
15568                 return undef;
15569         }
15570         if (!defined($return) && defined($score))
15571         {
15572                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15573                                           q{func_args},
15574                                           $tracelevel)
15575                                                 if defined $::RD_TRACE;
15576                 $return = $score_return;
15577         }
15578         splice @{$thisparser->{errors}}, $err_at;
15579         $return = $item[$#item] unless defined $return;
15580         if (defined $::RD_TRACE)
15581         {
15582                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15583                                           $return . q{])}, "",
15584                                           q{func_args},
15585                                           $tracelevel);
15586                 Parse::RecDescent::_trace(q{(consumed: [} .
15587                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
15588                                           Parse::RecDescent::_tracefirst($text),
15589                                           , q{func_args},
15590                                           $tracelevel)
15591         }
15592         $_[1] = $text;
15593         return $return;
15594 }
15595
15596 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15597 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::trigger_name
15598 {
15599         my $thisparser = $_[0];
15600         use vars q{$tracelevel};
15601         local $tracelevel = ($tracelevel||0)+1;
15602         $ERRORS = 0;
15603         my $thisrule = $thisparser->{"rules"}{"trigger_name"};
15604         
15605         Parse::RecDescent::_trace(q{Trying rule: [trigger_name]},
15606                                   Parse::RecDescent::_tracefirst($_[1]),
15607                                   q{trigger_name},
15608                                   $tracelevel)
15609                                         if defined $::RD_TRACE;
15610
15611         
15612         my $err_at = @{$thisparser->{errors}};
15613
15614         my $score;
15615         my $score_return;
15616         my $_tok;
15617         my $return = undef;
15618         my $_matched=0;
15619         my $commit=0;
15620         my @item = ();
15621         my %item = ();
15622         my $repeating =  defined($_[2]) && $_[2];
15623         my $_noactions = defined($_[3]) && $_[3];
15624         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
15625         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
15626         my $text;
15627         my $lastsep="";
15628         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15629         $expectation->at($_[1]);
15630         
15631         my $thisline;
15632         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15633
15634         
15635
15636         while (!$_matched && !$commit)
15637         {
15638                 
15639                 Parse::RecDescent::_trace(q{Trying production: [SCHEMA '.' NAME]},
15640                                           Parse::RecDescent::_tracefirst($_[1]),
15641                                           q{trigger_name},
15642                                           $tracelevel)
15643                                                 if defined $::RD_TRACE;
15644                 my $thisprod = $thisrule->{"prods"}[0];
15645                 $text = $_[1];
15646                 my $_savetext;
15647                 @item = (q{trigger_name});
15648                 %item = (__RULE__ => q{trigger_name});
15649                 my $repcount = 0;
15650
15651
15652                 Parse::RecDescent::_trace(q{Trying subrule: [SCHEMA]},
15653                                   Parse::RecDescent::_tracefirst($text),
15654                                   q{trigger_name},
15655                                   $tracelevel)
15656                                         if defined $::RD_TRACE;
15657                 if (1) { no strict qw{refs};
15658                 $expectation->is(q{})->at($text);
15659                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
15660                 {
15661                         
15662                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [SCHEMA]>>},
15663                                                   Parse::RecDescent::_tracefirst($text),
15664                                                   q{trigger_name},
15665                                                   $tracelevel)
15666                                                         if defined $::RD_TRACE;
15667                         $expectation->failed();
15668                         last;
15669                 }
15670                 Parse::RecDescent::_trace(q{>>Matched subrule: [SCHEMA]<< (return value: [}
15671                                         . $_tok . q{]},
15672                                           
15673                                           Parse::RecDescent::_tracefirst($text),
15674                                           q{trigger_name},
15675                                           $tracelevel)
15676                                                 if defined $::RD_TRACE;
15677                 $item{q{SCHEMA}} = $_tok;
15678                 push @item, $_tok;
15679                 
15680                 }
15681
15682                 Parse::RecDescent::_trace(q{Trying terminal: ['.']},
15683                                           Parse::RecDescent::_tracefirst($text),
15684                                           q{trigger_name},
15685                                           $tracelevel)
15686                                                 if defined $::RD_TRACE;
15687                 $lastsep = "";
15688                 $expectation->is(q{'.'})->at($text);
15689                 
15690
15691                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\.//)
15692                 {
15693                         
15694                         $expectation->failed();
15695                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
15696                                                   Parse::RecDescent::_tracefirst($text))
15697                                                         if defined $::RD_TRACE;
15698                         last;
15699                 }
15700                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15701                                                 . $& . q{])},
15702                                                   Parse::RecDescent::_tracefirst($text))
15703                                                         if defined $::RD_TRACE;
15704                 push @item, $item{__STRING1__}=$&;
15705                 
15706
15707                 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
15708                                   Parse::RecDescent::_tracefirst($text),
15709                                   q{trigger_name},
15710                                   $tracelevel)
15711                                         if defined $::RD_TRACE;
15712                 if (1) { no strict qw{refs};
15713                 $expectation->is(q{NAME})->at($text);
15714                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
15715                 {
15716                         
15717                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
15718                                                   Parse::RecDescent::_tracefirst($text),
15719                                                   q{trigger_name},
15720                                                   $tracelevel)
15721                                                         if defined $::RD_TRACE;
15722                         $expectation->failed();
15723                         last;
15724                 }
15725                 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
15726                                         . $_tok . q{]},
15727                                           
15728                                           Parse::RecDescent::_tracefirst($text),
15729                                           q{trigger_name},
15730                                           $tracelevel)
15731                                                 if defined $::RD_TRACE;
15732                 $item{q{NAME}} = $_tok;
15733                 push @item, $_tok;
15734                 
15735                 }
15736
15737                 Parse::RecDescent::_trace(q{Trying action},
15738                                           Parse::RecDescent::_tracefirst($text),
15739                                           q{trigger_name},
15740                                           $tracelevel)
15741                                                 if defined $::RD_TRACE;
15742                 
15743
15744                 $_tok = ($_noactions) ? 0 : do { $return = { schema => $item[1], name => $item[3] } };
15745                 unless (defined $_tok)
15746                 {
15747                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
15748                                         if defined $::RD_TRACE;
15749                         last;
15750                 }
15751                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
15752                                           . $_tok . q{])},
15753                                           Parse::RecDescent::_tracefirst($text))
15754                                                 if defined $::RD_TRACE;
15755                 push @item, $_tok;
15756                 $item{__ACTION1__}=$_tok;
15757                 
15758
15759
15760                 Parse::RecDescent::_trace(q{>>Matched production: [SCHEMA '.' NAME]<<},
15761                                           Parse::RecDescent::_tracefirst($text),
15762                                           q{trigger_name},
15763                                           $tracelevel)
15764                                                 if defined $::RD_TRACE;
15765                 $_matched = 1;
15766                 last;
15767         }
15768
15769
15770         while (!$_matched && !$commit)
15771         {
15772                 
15773                 Parse::RecDescent::_trace(q{Trying production: [NAME]},
15774                                           Parse::RecDescent::_tracefirst($_[1]),
15775                                           q{trigger_name},
15776                                           $tracelevel)
15777                                                 if defined $::RD_TRACE;
15778                 my $thisprod = $thisrule->{"prods"}[1];
15779                 $text = $_[1];
15780                 my $_savetext;
15781                 @item = (q{trigger_name});
15782                 %item = (__RULE__ => q{trigger_name});
15783                 my $repcount = 0;
15784
15785
15786                 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
15787                                   Parse::RecDescent::_tracefirst($text),
15788                                   q{trigger_name},
15789                                   $tracelevel)
15790                                         if defined $::RD_TRACE;
15791                 if (1) { no strict qw{refs};
15792                 $expectation->is(q{})->at($text);
15793                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
15794                 {
15795                         
15796                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
15797                                                   Parse::RecDescent::_tracefirst($text),
15798                                                   q{trigger_name},
15799                                                   $tracelevel)
15800                                                         if defined $::RD_TRACE;
15801                         $expectation->failed();
15802                         last;
15803                 }
15804                 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
15805                                         . $_tok . q{]},
15806                                           
15807                                           Parse::RecDescent::_tracefirst($text),
15808                                           q{trigger_name},
15809                                           $tracelevel)
15810                                                 if defined $::RD_TRACE;
15811                 $item{q{NAME}} = $_tok;
15812                 push @item, $_tok;
15813                 
15814                 }
15815
15816                 Parse::RecDescent::_trace(q{Trying action},
15817                                           Parse::RecDescent::_tracefirst($text),
15818                                           q{trigger_name},
15819                                           $tracelevel)
15820                                                 if defined $::RD_TRACE;
15821                 
15822
15823                 $_tok = ($_noactions) ? 0 : do { $return = { name => $item[1] } };
15824                 unless (defined $_tok)
15825                 {
15826                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
15827                                         if defined $::RD_TRACE;
15828                         last;
15829                 }
15830                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
15831                                           . $_tok . q{])},
15832                                           Parse::RecDescent::_tracefirst($text))
15833                                                 if defined $::RD_TRACE;
15834                 push @item, $_tok;
15835                 $item{__ACTION1__}=$_tok;
15836                 
15837
15838
15839                 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
15840                                           Parse::RecDescent::_tracefirst($text),
15841                                           q{trigger_name},
15842                                           $tracelevel)
15843                                                 if defined $::RD_TRACE;
15844                 $_matched = 1;
15845                 last;
15846         }
15847
15848
15849         unless ( $_matched || defined($return) || defined($score) )
15850         {
15851                 
15852
15853                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
15854                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
15855                                          Parse::RecDescent::_tracefirst($_[1]),
15856                                          q{trigger_name},
15857                                          $tracelevel)
15858                                         if defined $::RD_TRACE;
15859                 return undef;
15860         }
15861         if (!defined($return) && defined($score))
15862         {
15863                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15864                                           q{trigger_name},
15865                                           $tracelevel)
15866                                                 if defined $::RD_TRACE;
15867                 $return = $score_return;
15868         }
15869         splice @{$thisparser->{errors}}, $err_at;
15870         $return = $item[$#item] unless defined $return;
15871         if (defined $::RD_TRACE)
15872         {
15873                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15874                                           $return . q{])}, "",
15875                                           q{trigger_name},
15876                                           $tracelevel);
15877                 Parse::RecDescent::_trace(q{(consumed: [} .
15878                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
15879                                           Parse::RecDescent::_tracefirst($text),
15880                                           , q{trigger_name},
15881                                           $tracelevel)
15882         }
15883         $_[1] = $text;
15884         return $return;
15885 }
15886
15887 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15888 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_numbering_function
15889 {
15890         my $thisparser = $_[0];
15891         use vars q{$tracelevel};
15892         local $tracelevel = ($tracelevel||0)+1;
15893         $ERRORS = 0;
15894         my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_numbering_function"};
15895         
15896         Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_numbering_function]},
15897                                   Parse::RecDescent::_tracefirst($_[1]),
15898                                   q{_alternation_2_of_production_1_of_rule_numbering_function},
15899                                   $tracelevel)
15900                                         if defined $::RD_TRACE;
15901
15902         
15903         my $err_at = @{$thisparser->{errors}};
15904
15905         my $score;
15906         my $score_return;
15907         my $_tok;
15908         my $return = undef;
15909         my $_matched=0;
15910         my $commit=0;
15911         my @item = ();
15912         my %item = ();
15913         my $repeating =  defined($_[2]) && $_[2];
15914         my $_noactions = defined($_[3]) && $_[3];
15915         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
15916         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
15917         my $text;
15918         my $lastsep="";
15919         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15920         $expectation->at($_[1]);
15921         
15922         my $thisline;
15923         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15924
15925         
15926
15927         while (!$_matched && !$commit)
15928         {
15929                 
15930                 Parse::RecDescent::_trace(q{Trying production: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]},
15931                                           Parse::RecDescent::_tracefirst($_[1]),
15932                                           q{_alternation_2_of_production_1_of_rule_numbering_function},
15933                                           $tracelevel)
15934                                                 if defined $::RD_TRACE;
15935                 my $thisprod = $thisrule->{"prods"}[0];
15936                 $text = $_[1];
15937                 my $_savetext;
15938                 @item = (q{_alternation_2_of_production_1_of_rule_numbering_function});
15939                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_numbering_function});
15940                 my $repcount = 0;
15941
15942
15943                 Parse::RecDescent::_trace(q{Trying terminal: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
15944                                           q{_alternation_2_of_production_1_of_rule_numbering_function},
15945                                           $tracelevel)
15946                                                 if defined $::RD_TRACE;
15947                 $lastsep = "";
15948                 $expectation->is(q{})->at($text);
15949                 
15950
15951                 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)
15952                 {
15953                         
15954                         $expectation->failed();
15955                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
15956                                                   Parse::RecDescent::_tracefirst($text))
15957                                         if defined $::RD_TRACE;
15958
15959                         last;
15960                 }
15961                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15962                                                 . $& . q{])},
15963                                                   Parse::RecDescent::_tracefirst($text))
15964                                         if defined $::RD_TRACE;
15965                 push @item, $item{__PATTERN1__}=$&;
15966                 
15967
15968
15969                 Parse::RecDescent::_trace(q{>>Matched production: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]<<},
15970                                           Parse::RecDescent::_tracefirst($text),
15971                                           q{_alternation_2_of_production_1_of_rule_numbering_function},
15972                                           $tracelevel)
15973                                                 if defined $::RD_TRACE;
15974                 $_matched = 1;
15975                 last;
15976         }
15977
15978
15979         while (!$_matched && !$commit)
15980         {
15981                 
15982                 Parse::RecDescent::_trace(q{Trying production: [window_aggregation_group_clause]},
15983                                           Parse::RecDescent::_tracefirst($_[1]),
15984                                           q{_alternation_2_of_production_1_of_rule_numbering_function},
15985                                           $tracelevel)
15986                                                 if defined $::RD_TRACE;
15987                 my $thisprod = $thisrule->{"prods"}[1];
15988                 $text = $_[1];
15989                 my $_savetext;
15990                 @item = (q{_alternation_2_of_production_1_of_rule_numbering_function});
15991                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_numbering_function});
15992                 my $repcount = 0;
15993
15994
15995                 Parse::RecDescent::_trace(q{Trying subrule: [window_aggregation_group_clause]},
15996                                   Parse::RecDescent::_tracefirst($text),
15997                                   q{_alternation_2_of_production_1_of_rule_numbering_function},
15998                                   $tracelevel)
15999                                         if defined $::RD_TRACE;
16000                 if (1) { no strict qw{refs};
16001                 $expectation->is(q{})->at($text);
16002                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16003                 {
16004                         
16005                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [window_aggregation_group_clause]>>},
16006                                                   Parse::RecDescent::_tracefirst($text),
16007                                                   q{_alternation_2_of_production_1_of_rule_numbering_function},
16008                                                   $tracelevel)
16009                                                         if defined $::RD_TRACE;
16010                         $expectation->failed();
16011                         last;
16012                 }
16013                 Parse::RecDescent::_trace(q{>>Matched subrule: [window_aggregation_group_clause]<< (return value: [}
16014                                         . $_tok . q{]},
16015                                           
16016                                           Parse::RecDescent::_tracefirst($text),
16017                                           q{_alternation_2_of_production_1_of_rule_numbering_function},
16018                                           $tracelevel)
16019                                                 if defined $::RD_TRACE;
16020                 $item{q{window_aggregation_group_clause}} = $_tok;
16021                 push @item, $_tok;
16022                 
16023                 }
16024
16025
16026                 Parse::RecDescent::_trace(q{>>Matched production: [window_aggregation_group_clause]<<},
16027                                           Parse::RecDescent::_tracefirst($text),
16028                                           q{_alternation_2_of_production_1_of_rule_numbering_function},
16029                                           $tracelevel)
16030                                                 if defined $::RD_TRACE;
16031                 $_matched = 1;
16032                 last;
16033         }
16034
16035
16036         unless ( $_matched || defined($return) || defined($score) )
16037         {
16038                 
16039
16040                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
16041                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
16042                                          Parse::RecDescent::_tracefirst($_[1]),
16043                                          q{_alternation_2_of_production_1_of_rule_numbering_function},
16044                                          $tracelevel)
16045                                         if defined $::RD_TRACE;
16046                 return undef;
16047         }
16048         if (!defined($return) && defined($score))
16049         {
16050                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
16051                                           q{_alternation_2_of_production_1_of_rule_numbering_function},
16052                                           $tracelevel)
16053                                                 if defined $::RD_TRACE;
16054                 $return = $score_return;
16055         }
16056         splice @{$thisparser->{errors}}, $err_at;
16057         $return = $item[$#item] unless defined $return;
16058         if (defined $::RD_TRACE)
16059         {
16060                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
16061                                           $return . q{])}, "",
16062                                           q{_alternation_2_of_production_1_of_rule_numbering_function},
16063                                           $tracelevel);
16064                 Parse::RecDescent::_trace(q{(consumed: [} .
16065                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
16066                                           Parse::RecDescent::_tracefirst($text),
16067                                           , q{_alternation_2_of_production_1_of_rule_numbering_function},
16068                                           $tracelevel)
16069         }
16070         $_[1] = $text;
16071         return $return;
16072 }
16073
16074 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16075 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_name
16076 {
16077         my $thisparser = $_[0];
16078         use vars q{$tracelevel};
16079         local $tracelevel = ($tracelevel||0)+1;
16080         $ERRORS = 0;
16081         my $thisrule = $thisparser->{"rules"}{"method_name"};
16082         
16083         Parse::RecDescent::_trace(q{Trying rule: [method_name]},
16084                                   Parse::RecDescent::_tracefirst($_[1]),
16085                                   q{method_name},
16086                                   $tracelevel)
16087                                         if defined $::RD_TRACE;
16088
16089         
16090         my $err_at = @{$thisparser->{errors}};
16091
16092         my $score;
16093         my $score_return;
16094         my $_tok;
16095         my $return = undef;
16096         my $_matched=0;
16097         my $commit=0;
16098         my @item = ();
16099         my %item = ();
16100         my $repeating =  defined($_[2]) && $_[2];
16101         my $_noactions = defined($_[3]) && $_[3];
16102         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
16103         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
16104         my $text;
16105         my $lastsep="";
16106         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16107         $expectation->at($_[1]);
16108         
16109         my $thisline;
16110         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16111
16112         
16113
16114         while (!$_matched && !$commit)
16115         {
16116                 
16117                 Parse::RecDescent::_trace(q{Trying production: [NAME]},
16118                                           Parse::RecDescent::_tracefirst($_[1]),
16119                                           q{method_name},
16120                                           $tracelevel)
16121                                                 if defined $::RD_TRACE;
16122                 my $thisprod = $thisrule->{"prods"}[0];
16123                 $text = $_[1];
16124                 my $_savetext;
16125                 @item = (q{method_name});
16126                 %item = (__RULE__ => q{method_name});
16127                 my $repcount = 0;
16128
16129
16130                 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
16131                                   Parse::RecDescent::_tracefirst($text),
16132                                   q{method_name},
16133                                   $tracelevel)
16134                                         if defined $::RD_TRACE;
16135                 if (1) { no strict qw{refs};
16136                 $expectation->is(q{})->at($text);
16137                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16138                 {
16139                         
16140                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
16141                                                   Parse::RecDescent::_tracefirst($text),
16142                                                   q{method_name},
16143                                                   $tracelevel)
16144                                                         if defined $::RD_TRACE;
16145                         $expectation->failed();
16146                         last;
16147                 }
16148                 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
16149                                         . $_tok . q{]},
16150                                           
16151                                           Parse::RecDescent::_tracefirst($text),
16152                                           q{method_name},
16153                                           $tracelevel)
16154                                                 if defined $::RD_TRACE;
16155                 $item{q{NAME}} = $_tok;
16156                 push @item, $_tok;
16157                 
16158                 }
16159
16160                 Parse::RecDescent::_trace(q{Trying action},
16161                                           Parse::RecDescent::_tracefirst($text),
16162                                           q{method_name},
16163                                           $tracelevel)
16164                                                 if defined $::RD_TRACE;
16165                 
16166
16167                 $_tok = ($_noactions) ? 0 : do { # must be a method of subject_expression 
16168 };
16169                 unless (defined $_tok)
16170                 {
16171                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
16172                                         if defined $::RD_TRACE;
16173                         last;
16174                 }
16175                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
16176                                           . $_tok . q{])},
16177                                           Parse::RecDescent::_tracefirst($text))
16178                                                 if defined $::RD_TRACE;
16179                 push @item, $_tok;
16180                 $item{__ACTION1__}=$_tok;
16181                 
16182
16183
16184                 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
16185                                           Parse::RecDescent::_tracefirst($text),
16186                                           q{method_name},
16187                                           $tracelevel)
16188                                                 if defined $::RD_TRACE;
16189                 $_matched = 1;
16190                 last;
16191         }
16192
16193
16194         unless ( $_matched || defined($return) || defined($score) )
16195         {
16196                 
16197
16198                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
16199                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
16200                                          Parse::RecDescent::_tracefirst($_[1]),
16201                                          q{method_name},
16202                                          $tracelevel)
16203                                         if defined $::RD_TRACE;
16204                 return undef;
16205         }
16206         if (!defined($return) && defined($score))
16207         {
16208                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
16209                                           q{method_name},
16210                                           $tracelevel)
16211                                                 if defined $::RD_TRACE;
16212                 $return = $score_return;
16213         }
16214         splice @{$thisparser->{errors}}, $err_at;
16215         $return = $item[$#item] unless defined $return;
16216         if (defined $::RD_TRACE)
16217         {
16218                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
16219                                           $return . q{])}, "",
16220                                           q{method_name},
16221                                           $tracelevel);
16222                 Parse::RecDescent::_trace(q{(consumed: [} .
16223                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
16224                                           Parse::RecDescent::_tracefirst($text),
16225                                           , q{method_name},
16226                                           $tracelevel)
16227         }
16228         $_[1] = $text;
16229         return $return;
16230 }
16231
16232 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16233 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::quantified_p
16234 {
16235         my $thisparser = $_[0];
16236         use vars q{$tracelevel};
16237         local $tracelevel = ($tracelevel||0)+1;
16238         $ERRORS = 0;
16239         my $thisrule = $thisparser->{"rules"}{"quantified_p"};
16240         
16241         Parse::RecDescent::_trace(q{Trying rule: [quantified_p]},
16242                                   Parse::RecDescent::_tracefirst($_[1]),
16243                                   q{quantified_p},
16244                                   $tracelevel)
16245                                         if defined $::RD_TRACE;
16246
16247         
16248         my $err_at = @{$thisparser->{errors}};
16249
16250         my $score;
16251         my $score_return;
16252         my $_tok;
16253         my $return = undef;
16254         my $_matched=0;
16255         my $commit=0;
16256         my @item = ();
16257         my %item = ();
16258         my $repeating =  defined($_[2]) && $_[2];
16259         my $_noactions = defined($_[3]) && $_[3];
16260         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
16261         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
16262         my $text;
16263         my $lastsep="";
16264         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16265         $expectation->at($_[1]);
16266         
16267         my $thisline;
16268         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16269
16270         
16271
16272         while (!$_matched && !$commit)
16273         {
16274                 
16275                 Parse::RecDescent::_trace(q{Trying production: [expression1 /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ /SOME|ANY|ALL/i '(' fullselect ')']},
16276                                           Parse::RecDescent::_tracefirst($_[1]),
16277                                           q{quantified_p},
16278                                           $tracelevel)
16279                                                 if defined $::RD_TRACE;
16280                 my $thisprod = $thisrule->{"prods"}[0];
16281                 $text = $_[1];
16282                 my $_savetext;
16283                 @item = (q{quantified_p});
16284                 %item = (__RULE__ => q{quantified_p});
16285                 my $repcount = 0;
16286
16287
16288                 Parse::RecDescent::_trace(q{Trying subrule: [expression1]},
16289                                   Parse::RecDescent::_tracefirst($text),
16290                                   q{quantified_p},
16291                                   $tracelevel)
16292                                         if defined $::RD_TRACE;
16293                 if (1) { no strict qw{refs};
16294                 $expectation->is(q{})->at($text);
16295                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression1($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16296                 {
16297                         
16298                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression1]>>},
16299                                                   Parse::RecDescent::_tracefirst($text),
16300                                                   q{quantified_p},
16301                                                   $tracelevel)
16302                                                         if defined $::RD_TRACE;
16303                         $expectation->failed();
16304                         last;
16305                 }
16306                 Parse::RecDescent::_trace(q{>>Matched subrule: [expression1]<< (return value: [}
16307                                         . $_tok . q{]},
16308                                           
16309                                           Parse::RecDescent::_tracefirst($text),
16310                                           q{quantified_p},
16311                                           $tracelevel)
16312                                                 if defined $::RD_TRACE;
16313                 $item{q{expression1}} = $_tok;
16314                 push @item, $_tok;
16315                 
16316                 }
16317
16318                 Parse::RecDescent::_trace(q{Trying terminal: [/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/]}, Parse::RecDescent::_tracefirst($text),
16319                                           q{quantified_p},
16320                                           $tracelevel)
16321                                                 if defined $::RD_TRACE;
16322                 $lastsep = "";
16323                 $expectation->is(q{/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/})->at($text);
16324                 
16325
16326                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(=|<>|<|>|<=|=>|\^=|\^<|\^>|\!=))//)
16327                 {
16328                         
16329                         $expectation->failed();
16330                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
16331                                                   Parse::RecDescent::_tracefirst($text))
16332                                         if defined $::RD_TRACE;
16333
16334                         last;
16335                 }
16336                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16337                                                 . $& . q{])},
16338                                                   Parse::RecDescent::_tracefirst($text))
16339                                         if defined $::RD_TRACE;
16340                 push @item, $item{__PATTERN1__}=$&;
16341                 
16342
16343                 Parse::RecDescent::_trace(q{Trying terminal: [/SOME|ANY|ALL/i]}, Parse::RecDescent::_tracefirst($text),
16344                                           q{quantified_p},
16345                                           $tracelevel)
16346                                                 if defined $::RD_TRACE;
16347                 $lastsep = "";
16348                 $expectation->is(q{/SOME|ANY|ALL/i})->at($text);
16349                 
16350
16351                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SOME|ANY|ALL)//i)
16352                 {
16353                         
16354                         $expectation->failed();
16355                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
16356                                                   Parse::RecDescent::_tracefirst($text))
16357                                         if defined $::RD_TRACE;
16358
16359                         last;
16360                 }
16361                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16362                                                 . $& . q{])},
16363                                                   Parse::RecDescent::_tracefirst($text))
16364                                         if defined $::RD_TRACE;
16365                 push @item, $item{__PATTERN2__}=$&;
16366                 
16367
16368                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
16369                                           Parse::RecDescent::_tracefirst($text),
16370                                           q{quantified_p},
16371                                           $tracelevel)
16372                                                 if defined $::RD_TRACE;
16373                 $lastsep = "";
16374                 $expectation->is(q{'('})->at($text);
16375                 
16376
16377                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
16378                 {
16379                         
16380                         $expectation->failed();
16381                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
16382                                                   Parse::RecDescent::_tracefirst($text))
16383                                                         if defined $::RD_TRACE;
16384                         last;
16385                 }
16386                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16387                                                 . $& . q{])},
16388                                                   Parse::RecDescent::_tracefirst($text))
16389                                                         if defined $::RD_TRACE;
16390                 push @item, $item{__STRING1__}=$&;
16391                 
16392
16393                 Parse::RecDescent::_trace(q{Trying subrule: [fullselect]},
16394                                   Parse::RecDescent::_tracefirst($text),
16395                                   q{quantified_p},
16396                                   $tracelevel)
16397                                         if defined $::RD_TRACE;
16398                 if (1) { no strict qw{refs};
16399                 $expectation->is(q{fullselect})->at($text);
16400                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16401                 {
16402                         
16403                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [fullselect]>>},
16404                                                   Parse::RecDescent::_tracefirst($text),
16405                                                   q{quantified_p},
16406                                                   $tracelevel)
16407                                                         if defined $::RD_TRACE;
16408                         $expectation->failed();
16409                         last;
16410                 }
16411                 Parse::RecDescent::_trace(q{>>Matched subrule: [fullselect]<< (return value: [}
16412                                         . $_tok . q{]},
16413                                           
16414                                           Parse::RecDescent::_tracefirst($text),
16415                                           q{quantified_p},
16416                                           $tracelevel)
16417                                                 if defined $::RD_TRACE;
16418                 $item{q{fullselect}} = $_tok;
16419                 push @item, $_tok;
16420                 
16421                 }
16422
16423                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
16424                                           Parse::RecDescent::_tracefirst($text),
16425                                           q{quantified_p},
16426                                           $tracelevel)
16427                                                 if defined $::RD_TRACE;
16428                 $lastsep = "";
16429                 $expectation->is(q{')'})->at($text);
16430                 
16431
16432                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
16433                 {
16434                         
16435                         $expectation->failed();
16436                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
16437                                                   Parse::RecDescent::_tracefirst($text))
16438                                                         if defined $::RD_TRACE;
16439                         last;
16440                 }
16441                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16442                                                 . $& . q{])},
16443                                                   Parse::RecDescent::_tracefirst($text))
16444                                                         if defined $::RD_TRACE;
16445                 push @item, $item{__STRING2__}=$&;
16446                 
16447
16448
16449                 Parse::RecDescent::_trace(q{>>Matched production: [expression1 /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ /SOME|ANY|ALL/i '(' fullselect ')']<<},
16450                                           Parse::RecDescent::_tracefirst($text),
16451                                           q{quantified_p},
16452                                           $tracelevel)
16453                                                 if defined $::RD_TRACE;
16454                 $_matched = 1;
16455                 last;
16456         }
16457
16458
16459         unless ( $_matched || defined($return) || defined($score) )
16460         {
16461                 
16462
16463                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
16464                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
16465                                          Parse::RecDescent::_tracefirst($_[1]),
16466                                          q{quantified_p},
16467                                          $tracelevel)
16468                                         if defined $::RD_TRACE;
16469                 return undef;
16470         }
16471         if (!defined($return) && defined($score))
16472         {
16473                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
16474                                           q{quantified_p},
16475                                           $tracelevel)
16476                                                 if defined $::RD_TRACE;
16477                 $return = $score_return;
16478         }
16479         splice @{$thisparser->{errors}}, $err_at;
16480         $return = $item[$#item] unless defined $return;
16481         if (defined $::RD_TRACE)
16482         {
16483                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
16484                                           $return . q{])}, "",
16485                                           q{quantified_p},
16486                                           $tracelevel);
16487                 Parse::RecDescent::_trace(q{(consumed: [} .
16488                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
16489                                           Parse::RecDescent::_tracefirst($text),
16490                                           , q{quantified_p},
16491                                           $tracelevel)
16492         }
16493         $_[1] = $text;
16494         return $return;
16495 }
16496
16497 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16498 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression
16499 {
16500         my $thisparser = $_[0];
16501         use vars q{$tracelevel};
16502         local $tracelevel = ($tracelevel||0)+1;
16503         $ERRORS = 0;
16504         my $thisrule = $thisparser->{"rules"}{"common_table_expression"};
16505         
16506         Parse::RecDescent::_trace(q{Trying rule: [common_table_expression]},
16507                                   Parse::RecDescent::_tracefirst($_[1]),
16508                                   q{common_table_expression},
16509                                   $tracelevel)
16510                                         if defined $::RD_TRACE;
16511
16512         
16513         my $err_at = @{$thisparser->{errors}};
16514
16515         my $score;
16516         my $score_return;
16517         my $_tok;
16518         my $return = undef;
16519         my $_matched=0;
16520         my $commit=0;
16521         my @item = ();
16522         my %item = ();
16523         my $repeating =  defined($_[2]) && $_[2];
16524         my $_noactions = defined($_[3]) && $_[3];
16525         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
16526         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
16527         my $text;
16528         my $lastsep="";
16529         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16530         $expectation->at($_[1]);
16531         
16532         my $thisline;
16533         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16534
16535         
16536
16537         while (!$_matched && !$commit)
16538         {
16539                 
16540                 Parse::RecDescent::_trace(q{Trying production: [table_name column_list /AS/i get_bracketed]},
16541                                           Parse::RecDescent::_tracefirst($_[1]),
16542                                           q{common_table_expression},
16543                                           $tracelevel)
16544                                                 if defined $::RD_TRACE;
16545                 my $thisprod = $thisrule->{"prods"}[0];
16546                 $text = $_[1];
16547                 my $_savetext;
16548                 @item = (q{common_table_expression});
16549                 %item = (__RULE__ => q{common_table_expression});
16550                 my $repcount = 0;
16551
16552
16553                 Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
16554                                   Parse::RecDescent::_tracefirst($text),
16555                                   q{common_table_expression},
16556                                   $tracelevel)
16557                                         if defined $::RD_TRACE;
16558                 if (1) { no strict qw{refs};
16559                 $expectation->is(q{})->at($text);
16560                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16561                 {
16562                         
16563                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
16564                                                   Parse::RecDescent::_tracefirst($text),
16565                                                   q{common_table_expression},
16566                                                   $tracelevel)
16567                                                         if defined $::RD_TRACE;
16568                         $expectation->failed();
16569                         last;
16570                 }
16571                 Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
16572                                         . $_tok . q{]},
16573                                           
16574                                           Parse::RecDescent::_tracefirst($text),
16575                                           q{common_table_expression},
16576                                           $tracelevel)
16577                                                 if defined $::RD_TRACE;
16578                 $item{q{table_name}} = $_tok;
16579                 push @item, $_tok;
16580                 
16581                 }
16582
16583                 Parse::RecDescent::_trace(q{Trying subrule: [column_list]},
16584                                   Parse::RecDescent::_tracefirst($text),
16585                                   q{common_table_expression},
16586                                   $tracelevel)
16587                                         if defined $::RD_TRACE;
16588                 if (1) { no strict qw{refs};
16589                 $expectation->is(q{column_list})->at($text);
16590                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16591                 {
16592                         
16593                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_list]>>},
16594                                                   Parse::RecDescent::_tracefirst($text),
16595                                                   q{common_table_expression},
16596                                                   $tracelevel)
16597                                                         if defined $::RD_TRACE;
16598                         $expectation->failed();
16599                         last;
16600                 }
16601                 Parse::RecDescent::_trace(q{>>Matched subrule: [column_list]<< (return value: [}
16602                                         . $_tok . q{]},
16603                                           
16604                                           Parse::RecDescent::_tracefirst($text),
16605                                           q{common_table_expression},
16606                                           $tracelevel)
16607                                                 if defined $::RD_TRACE;
16608                 $item{q{column_list}} = $_tok;
16609                 push @item, $_tok;
16610                 
16611                 }
16612
16613                 Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
16614                                           q{common_table_expression},
16615                                           $tracelevel)
16616                                                 if defined $::RD_TRACE;
16617                 $lastsep = "";
16618                 $expectation->is(q{/AS/i})->at($text);
16619                 
16620
16621                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AS)//i)
16622                 {
16623                         
16624                         $expectation->failed();
16625                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
16626                                                   Parse::RecDescent::_tracefirst($text))
16627                                         if defined $::RD_TRACE;
16628
16629                         last;
16630                 }
16631                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16632                                                 . $& . q{])},
16633                                                   Parse::RecDescent::_tracefirst($text))
16634                                         if defined $::RD_TRACE;
16635                 push @item, $item{__PATTERN1__}=$&;
16636                 
16637
16638                 Parse::RecDescent::_trace(q{Trying subrule: [get_bracketed]},
16639                                   Parse::RecDescent::_tracefirst($text),
16640                                   q{common_table_expression},
16641                                   $tracelevel)
16642                                         if defined $::RD_TRACE;
16643                 if (1) { no strict qw{refs};
16644                 $expectation->is(q{get_bracketed})->at($text);
16645                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::get_bracketed($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16646                 {
16647                         
16648                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [get_bracketed]>>},
16649                                                   Parse::RecDescent::_tracefirst($text),
16650                                                   q{common_table_expression},
16651                                                   $tracelevel)
16652                                                         if defined $::RD_TRACE;
16653                         $expectation->failed();
16654                         last;
16655                 }
16656                 Parse::RecDescent::_trace(q{>>Matched subrule: [get_bracketed]<< (return value: [}
16657                                         . $_tok . q{]},
16658                                           
16659                                           Parse::RecDescent::_tracefirst($text),
16660                                           q{common_table_expression},
16661                                           $tracelevel)
16662                                                 if defined $::RD_TRACE;
16663                 $item{q{get_bracketed}} = $_tok;
16664                 push @item, $_tok;
16665                 
16666                 }
16667
16668                 Parse::RecDescent::_trace(q{Trying action},
16669                                           Parse::RecDescent::_tracefirst($text),
16670                                           q{common_table_expression},
16671                                           $tracelevel)
16672                                                 if defined $::RD_TRACE;
16673                 
16674
16675                 $_tok = ($_noactions) ? 0 : do {
16676     $return = { name  => $item{table_name}{name}, 
16677                 query => $item[4]
16678                 };
16679 };
16680                 unless (defined $_tok)
16681                 {
16682                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
16683                                         if defined $::RD_TRACE;
16684                         last;
16685                 }
16686                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
16687                                           . $_tok . q{])},
16688                                           Parse::RecDescent::_tracefirst($text))
16689                                                 if defined $::RD_TRACE;
16690                 push @item, $_tok;
16691                 $item{__ACTION1__}=$_tok;
16692                 
16693
16694
16695                 Parse::RecDescent::_trace(q{>>Matched production: [table_name column_list /AS/i get_bracketed]<<},
16696                                           Parse::RecDescent::_tracefirst($text),
16697                                           q{common_table_expression},
16698                                           $tracelevel)
16699                                                 if defined $::RD_TRACE;
16700                 $_matched = 1;
16701                 last;
16702         }
16703
16704
16705         while (!$_matched && !$commit)
16706         {
16707                 
16708                 Parse::RecDescent::_trace(q{Trying production: [table_name column_list /AS/i '(' fullselect ')']},
16709                                           Parse::RecDescent::_tracefirst($_[1]),
16710                                           q{common_table_expression},
16711                                           $tracelevel)
16712                                                 if defined $::RD_TRACE;
16713                 my $thisprod = $thisrule->{"prods"}[1];
16714                 $text = $_[1];
16715                 my $_savetext;
16716                 @item = (q{common_table_expression});
16717                 %item = (__RULE__ => q{common_table_expression});
16718                 my $repcount = 0;
16719
16720
16721                 Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
16722                                   Parse::RecDescent::_tracefirst($text),
16723                                   q{common_table_expression},
16724                                   $tracelevel)
16725                                         if defined $::RD_TRACE;
16726                 if (1) { no strict qw{refs};
16727                 $expectation->is(q{})->at($text);
16728                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16729                 {
16730                         
16731                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
16732                                                   Parse::RecDescent::_tracefirst($text),
16733                                                   q{common_table_expression},
16734                                                   $tracelevel)
16735                                                         if defined $::RD_TRACE;
16736                         $expectation->failed();
16737                         last;
16738                 }
16739                 Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
16740                                         . $_tok . q{]},
16741                                           
16742                                           Parse::RecDescent::_tracefirst($text),
16743                                           q{common_table_expression},
16744                                           $tracelevel)
16745                                                 if defined $::RD_TRACE;
16746                 $item{q{table_name}} = $_tok;
16747                 push @item, $_tok;
16748                 
16749                 }
16750
16751                 Parse::RecDescent::_trace(q{Trying subrule: [column_list]},
16752                                   Parse::RecDescent::_tracefirst($text),
16753                                   q{common_table_expression},
16754                                   $tracelevel)
16755                                         if defined $::RD_TRACE;
16756                 if (1) { no strict qw{refs};
16757                 $expectation->is(q{column_list})->at($text);
16758                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16759                 {
16760                         
16761                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_list]>>},
16762                                                   Parse::RecDescent::_tracefirst($text),
16763                                                   q{common_table_expression},
16764                                                   $tracelevel)
16765                                                         if defined $::RD_TRACE;
16766                         $expectation->failed();
16767                         last;
16768                 }
16769                 Parse::RecDescent::_trace(q{>>Matched subrule: [column_list]<< (return value: [}
16770                                         . $_tok . q{]},
16771                                           
16772                                           Parse::RecDescent::_tracefirst($text),
16773                                           q{common_table_expression},
16774                                           $tracelevel)
16775                                                 if defined $::RD_TRACE;
16776                 $item{q{column_list}} = $_tok;
16777                 push @item, $_tok;
16778                 
16779                 }
16780
16781                 Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
16782                                           q{common_table_expression},
16783                                           $tracelevel)
16784                                                 if defined $::RD_TRACE;
16785                 $lastsep = "";
16786                 $expectation->is(q{/AS/i})->at($text);
16787                 
16788
16789                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AS)//i)
16790                 {
16791                         
16792                         $expectation->failed();
16793                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
16794                                                   Parse::RecDescent::_tracefirst($text))
16795                                         if defined $::RD_TRACE;
16796
16797                         last;
16798                 }
16799                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16800                                                 . $& . q{])},
16801                                                   Parse::RecDescent::_tracefirst($text))
16802                                         if defined $::RD_TRACE;
16803                 push @item, $item{__PATTERN1__}=$&;
16804                 
16805
16806                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
16807                                           Parse::RecDescent::_tracefirst($text),
16808                                           q{common_table_expression},
16809                                           $tracelevel)
16810                                                 if defined $::RD_TRACE;
16811                 $lastsep = "";
16812                 $expectation->is(q{'('})->at($text);
16813                 
16814
16815                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
16816                 {
16817                         
16818                         $expectation->failed();
16819                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
16820                                                   Parse::RecDescent::_tracefirst($text))
16821                                                         if defined $::RD_TRACE;
16822                         last;
16823                 }
16824                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16825                                                 . $& . q{])},
16826                                                   Parse::RecDescent::_tracefirst($text))
16827                                                         if defined $::RD_TRACE;
16828                 push @item, $item{__STRING1__}=$&;
16829                 
16830
16831                 Parse::RecDescent::_trace(q{Trying subrule: [fullselect]},
16832                                   Parse::RecDescent::_tracefirst($text),
16833                                   q{common_table_expression},
16834                                   $tracelevel)
16835                                         if defined $::RD_TRACE;
16836                 if (1) { no strict qw{refs};
16837                 $expectation->is(q{fullselect})->at($text);
16838                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16839                 {
16840                         
16841                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [fullselect]>>},
16842                                                   Parse::RecDescent::_tracefirst($text),
16843                                                   q{common_table_expression},
16844                                                   $tracelevel)
16845                                                         if defined $::RD_TRACE;
16846                         $expectation->failed();
16847                         last;
16848                 }
16849                 Parse::RecDescent::_trace(q{>>Matched subrule: [fullselect]<< (return value: [}
16850                                         . $_tok . q{]},
16851                                           
16852                                           Parse::RecDescent::_tracefirst($text),
16853                                           q{common_table_expression},
16854                                           $tracelevel)
16855                                                 if defined $::RD_TRACE;
16856                 $item{q{fullselect}} = $_tok;
16857                 push @item, $_tok;
16858                 
16859                 }
16860
16861                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
16862                                           Parse::RecDescent::_tracefirst($text),
16863                                           q{common_table_expression},
16864                                           $tracelevel)
16865                                                 if defined $::RD_TRACE;
16866                 $lastsep = "";
16867                 $expectation->is(q{')'})->at($text);
16868                 
16869
16870                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
16871                 {
16872                         
16873                         $expectation->failed();
16874                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
16875                                                   Parse::RecDescent::_tracefirst($text))
16876                                                         if defined $::RD_TRACE;
16877                         last;
16878                 }
16879                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16880                                                 . $& . q{])},
16881                                                   Parse::RecDescent::_tracefirst($text))
16882                                                         if defined $::RD_TRACE;
16883                 push @item, $item{__STRING2__}=$&;
16884                 
16885
16886
16887                 Parse::RecDescent::_trace(q{>>Matched production: [table_name column_list /AS/i '(' fullselect ')']<<},
16888                                           Parse::RecDescent::_tracefirst($text),
16889                                           q{common_table_expression},
16890                                           $tracelevel)
16891                                                 if defined $::RD_TRACE;
16892                 $_matched = 1;
16893                 last;
16894         }
16895
16896
16897         unless ( $_matched || defined($return) || defined($score) )
16898         {
16899                 
16900
16901                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
16902                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
16903                                          Parse::RecDescent::_tracefirst($_[1]),
16904                                          q{common_table_expression},
16905                                          $tracelevel)
16906                                         if defined $::RD_TRACE;
16907                 return undef;
16908         }
16909         if (!defined($return) && defined($score))
16910         {
16911                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
16912                                           q{common_table_expression},
16913                                           $tracelevel)
16914                                                 if defined $::RD_TRACE;
16915                 $return = $score_return;
16916         }
16917         splice @{$thisparser->{errors}}, $err_at;
16918         $return = $item[$#item] unless defined $return;
16919         if (defined $::RD_TRACE)
16920         {
16921                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
16922                                           $return . q{])}, "",
16923                                           q{common_table_expression},
16924                                           $tracelevel);
16925                 Parse::RecDescent::_trace(q{(consumed: [} .
16926                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
16927                                           Parse::RecDescent::_tracefirst($text),
16928                                           , q{common_table_expression},
16929                                           $tracelevel)
16930         }
16931         $_[1] = $text;
16932         return $return;
16933 }
16934
16935 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16936 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::after
16937 {
16938         my $thisparser = $_[0];
16939         use vars q{$tracelevel};
16940         local $tracelevel = ($tracelevel||0)+1;
16941         $ERRORS = 0;
16942         my $thisrule = $thisparser->{"rules"}{"after"};
16943         
16944         Parse::RecDescent::_trace(q{Trying rule: [after]},
16945                                   Parse::RecDescent::_tracefirst($_[1]),
16946                                   q{after},
16947                                   $tracelevel)
16948                                         if defined $::RD_TRACE;
16949
16950         
16951         my $err_at = @{$thisparser->{errors}};
16952
16953         my $score;
16954         my $score_return;
16955         my $_tok;
16956         my $return = undef;
16957         my $_matched=0;
16958         my $commit=0;
16959         my @item = ();
16960         my %item = ();
16961         my $repeating =  defined($_[2]) && $_[2];
16962         my $_noactions = defined($_[3]) && $_[3];
16963         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
16964         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
16965         my $text;
16966         my $lastsep="";
16967         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16968         $expectation->at($_[1]);
16969         
16970         my $thisline;
16971         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16972
16973         
16974
16975         while (!$_matched && !$commit)
16976         {
16977                 
16978                 Parse::RecDescent::_trace(q{Trying production: [/AFTER/i]},
16979                                           Parse::RecDescent::_tracefirst($_[1]),
16980                                           q{after},
16981                                           $tracelevel)
16982                                                 if defined $::RD_TRACE;
16983                 my $thisprod = $thisrule->{"prods"}[0];
16984                 $text = $_[1];
16985                 my $_savetext;
16986                 @item = (q{after});
16987                 %item = (__RULE__ => q{after});
16988                 my $repcount = 0;
16989
16990
16991                 Parse::RecDescent::_trace(q{Trying terminal: [/AFTER/i]}, Parse::RecDescent::_tracefirst($text),
16992                                           q{after},
16993                                           $tracelevel)
16994                                                 if defined $::RD_TRACE;
16995                 $lastsep = "";
16996                 $expectation->is(q{})->at($text);
16997                 
16998
16999                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AFTER)//i)
17000                 {
17001                         
17002                         $expectation->failed();
17003                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
17004                                                   Parse::RecDescent::_tracefirst($text))
17005                                         if defined $::RD_TRACE;
17006
17007                         last;
17008                 }
17009                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
17010                                                 . $& . q{])},
17011                                                   Parse::RecDescent::_tracefirst($text))
17012                                         if defined $::RD_TRACE;
17013                 push @item, $item{__PATTERN1__}=$&;
17014                 
17015
17016
17017                 Parse::RecDescent::_trace(q{>>Matched production: [/AFTER/i]<<},
17018                                           Parse::RecDescent::_tracefirst($text),
17019                                           q{after},
17020                                           $tracelevel)
17021                                                 if defined $::RD_TRACE;
17022                 $_matched = 1;
17023                 last;
17024         }
17025
17026
17027         unless ( $_matched || defined($return) || defined($score) )
17028         {
17029                 
17030
17031                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
17032                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
17033                                          Parse::RecDescent::_tracefirst($_[1]),
17034                                          q{after},
17035                                          $tracelevel)
17036                                         if defined $::RD_TRACE;
17037                 return undef;
17038         }
17039         if (!defined($return) && defined($score))
17040         {
17041                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
17042                                           q{after},
17043                                           $tracelevel)
17044                                                 if defined $::RD_TRACE;
17045                 $return = $score_return;
17046         }
17047         splice @{$thisparser->{errors}}, $err_at;
17048         $return = $item[$#item] unless defined $return;
17049         if (defined $::RD_TRACE)
17050         {
17051                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
17052                                           $return . q{])}, "",
17053                                           q{after},
17054                                           $tracelevel);
17055                 Parse::RecDescent::_trace(q{(consumed: [} .
17056                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
17057                                           Parse::RecDescent::_tracefirst($text),
17058                                           , q{after},
17059                                           $tracelevel)
17060         }
17061         $_[1] = $text;
17062         return $return;
17063 }
17064
17065 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17066 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate
17067 {
17068         my $thisparser = $_[0];
17069         use vars q{$tracelevel};
17070         local $tracelevel = ($tracelevel||0)+1;
17071         $ERRORS = 0;
17072         my $thisrule = $thisparser->{"rules"}{"predicate"};
17073         
17074         Parse::RecDescent::_trace(q{Trying rule: [predicate]},
17075                                   Parse::RecDescent::_tracefirst($_[1]),
17076                                   q{predicate},
17077                                   $tracelevel)
17078                                         if defined $::RD_TRACE;
17079
17080         
17081         my $err_at = @{$thisparser->{errors}};
17082
17083         my $score;
17084         my $score_return;
17085         my $_tok;
17086         my $return = undef;
17087         my $_matched=0;
17088         my $commit=0;
17089         my @item = ();
17090         my %item = ();
17091         my $repeating =  defined($_[2]) && $_[2];
17092         my $_noactions = defined($_[3]) && $_[3];
17093         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
17094         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
17095         my $text;
17096         my $lastsep="";
17097         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17098         $expectation->at($_[1]);
17099         
17100         my $thisline;
17101         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17102
17103         
17104
17105         while (!$_matched && !$commit)
17106         {
17107                 
17108                 Parse::RecDescent::_trace(q{Trying production: [basic_p]},
17109                                           Parse::RecDescent::_tracefirst($_[1]),
17110                                           q{predicate},
17111                                           $tracelevel)
17112                                                 if defined $::RD_TRACE;
17113                 my $thisprod = $thisrule->{"prods"}[0];
17114                 $text = $_[1];
17115                 my $_savetext;
17116                 @item = (q{predicate});
17117                 %item = (__RULE__ => q{predicate});
17118                 my $repcount = 0;
17119
17120
17121                 Parse::RecDescent::_trace(q{Trying subrule: [basic_p]},
17122                                   Parse::RecDescent::_tracefirst($text),
17123                                   q{predicate},
17124                                   $tracelevel)
17125                                         if defined $::RD_TRACE;
17126                 if (1) { no strict qw{refs};
17127                 $expectation->is(q{})->at($text);
17128                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::basic_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17129                 {
17130                         
17131                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [basic_p]>>},
17132                                                   Parse::RecDescent::_tracefirst($text),
17133                                                   q{predicate},
17134                                                   $tracelevel)
17135                                                         if defined $::RD_TRACE;
17136                         $expectation->failed();
17137                         last;
17138                 }
17139                 Parse::RecDescent::_trace(q{>>Matched subrule: [basic_p]<< (return value: [}
17140                                         . $_tok . q{]},
17141                                           
17142                                           Parse::RecDescent::_tracefirst($text),
17143                                           q{predicate},
17144                                           $tracelevel)
17145                                                 if defined $::RD_TRACE;
17146                 $item{q{basic_p}} = $_tok;
17147                 push @item, $_tok;
17148                 
17149                 }
17150
17151
17152                 Parse::RecDescent::_trace(q{>>Matched production: [basic_p]<<},
17153                                           Parse::RecDescent::_tracefirst($text),
17154                                           q{predicate},
17155                                           $tracelevel)
17156                                                 if defined $::RD_TRACE;
17157                 $_matched = 1;
17158                 last;
17159         }
17160
17161
17162         while (!$_matched && !$commit)
17163         {
17164                 
17165                 Parse::RecDescent::_trace(q{Trying production: [quantified_p]},
17166                                           Parse::RecDescent::_tracefirst($_[1]),
17167                                           q{predicate},
17168                                           $tracelevel)
17169                                                 if defined $::RD_TRACE;
17170                 my $thisprod = $thisrule->{"prods"}[1];
17171                 $text = $_[1];
17172                 my $_savetext;
17173                 @item = (q{predicate});
17174                 %item = (__RULE__ => q{predicate});
17175                 my $repcount = 0;
17176
17177
17178                 Parse::RecDescent::_trace(q{Trying subrule: [quantified_p]},
17179                                   Parse::RecDescent::_tracefirst($text),
17180                                   q{predicate},
17181                                   $tracelevel)
17182                                         if defined $::RD_TRACE;
17183                 if (1) { no strict qw{refs};
17184                 $expectation->is(q{})->at($text);
17185                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::quantified_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17186                 {
17187                         
17188                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [quantified_p]>>},
17189                                                   Parse::RecDescent::_tracefirst($text),
17190                                                   q{predicate},
17191                                                   $tracelevel)
17192                                                         if defined $::RD_TRACE;
17193                         $expectation->failed();
17194                         last;
17195                 }
17196                 Parse::RecDescent::_trace(q{>>Matched subrule: [quantified_p]<< (return value: [}
17197                                         . $_tok . q{]},
17198                                           
17199                                           Parse::RecDescent::_tracefirst($text),
17200                                           q{predicate},
17201                                           $tracelevel)
17202                                                 if defined $::RD_TRACE;
17203                 $item{q{quantified_p}} = $_tok;
17204                 push @item, $_tok;
17205                 
17206                 }
17207
17208
17209                 Parse::RecDescent::_trace(q{>>Matched production: [quantified_p]<<},
17210                                           Parse::RecDescent::_tracefirst($text),
17211                                           q{predicate},
17212                                           $tracelevel)
17213                                                 if defined $::RD_TRACE;
17214                 $_matched = 1;
17215                 last;
17216         }
17217
17218
17219         while (!$_matched && !$commit)
17220         {
17221                 
17222                 Parse::RecDescent::_trace(q{Trying production: [between_p]},
17223                                           Parse::RecDescent::_tracefirst($_[1]),
17224                                           q{predicate},
17225                                           $tracelevel)
17226                                                 if defined $::RD_TRACE;
17227                 my $thisprod = $thisrule->{"prods"}[2];
17228                 $text = $_[1];
17229                 my $_savetext;
17230                 @item = (q{predicate});
17231                 %item = (__RULE__ => q{predicate});
17232                 my $repcount = 0;
17233
17234
17235                 Parse::RecDescent::_trace(q{Trying subrule: [between_p]},
17236                                   Parse::RecDescent::_tracefirst($text),
17237                                   q{predicate},
17238                                   $tracelevel)
17239                                         if defined $::RD_TRACE;
17240                 if (1) { no strict qw{refs};
17241                 $expectation->is(q{})->at($text);
17242                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::between_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17243                 {
17244                         
17245                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [between_p]>>},
17246                                                   Parse::RecDescent::_tracefirst($text),
17247                                                   q{predicate},
17248                                                   $tracelevel)
17249                                                         if defined $::RD_TRACE;
17250                         $expectation->failed();
17251                         last;
17252                 }
17253                 Parse::RecDescent::_trace(q{>>Matched subrule: [between_p]<< (return value: [}
17254                                         . $_tok . q{]},
17255                                           
17256                                           Parse::RecDescent::_tracefirst($text),
17257                                           q{predicate},
17258                                           $tracelevel)
17259                                                 if defined $::RD_TRACE;
17260                 $item{q{between_p}} = $_tok;
17261                 push @item, $_tok;
17262                 
17263                 }
17264
17265
17266                 Parse::RecDescent::_trace(q{>>Matched production: [between_p]<<},
17267                                           Parse::RecDescent::_tracefirst($text),
17268                                           q{predicate},
17269                                           $tracelevel)
17270                                                 if defined $::RD_TRACE;
17271                 $_matched = 1;
17272                 last;
17273         }
17274
17275
17276         while (!$_matched && !$commit)
17277         {
17278                 
17279                 Parse::RecDescent::_trace(q{Trying production: [exists_p]},
17280                                           Parse::RecDescent::_tracefirst($_[1]),
17281                                           q{predicate},
17282                                           $tracelevel)
17283                                                 if defined $::RD_TRACE;
17284                 my $thisprod = $thisrule->{"prods"}[3];
17285                 $text = $_[1];
17286                 my $_savetext;
17287                 @item = (q{predicate});
17288                 %item = (__RULE__ => q{predicate});
17289                 my $repcount = 0;
17290
17291
17292                 Parse::RecDescent::_trace(q{Trying subrule: [exists_p]},
17293                                   Parse::RecDescent::_tracefirst($text),
17294                                   q{predicate},
17295                                   $tracelevel)
17296                                         if defined $::RD_TRACE;
17297                 if (1) { no strict qw{refs};
17298                 $expectation->is(q{})->at($text);
17299                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::exists_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17300                 {
17301                         
17302                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [exists_p]>>},
17303                                                   Parse::RecDescent::_tracefirst($text),
17304                                                   q{predicate},
17305                                                   $tracelevel)
17306                                                         if defined $::RD_TRACE;
17307                         $expectation->failed();
17308                         last;
17309                 }
17310                 Parse::RecDescent::_trace(q{>>Matched subrule: [exists_p]<< (return value: [}
17311                                         . $_tok . q{]},
17312                                           
17313                                           Parse::RecDescent::_tracefirst($text),
17314                                           q{predicate},
17315                                           $tracelevel)
17316                                                 if defined $::RD_TRACE;
17317                 $item{q{exists_p}} = $_tok;
17318                 push @item, $_tok;
17319                 
17320                 }
17321
17322
17323                 Parse::RecDescent::_trace(q{>>Matched production: [exists_p]<<},
17324                                           Parse::RecDescent::_tracefirst($text),
17325                                           q{predicate},
17326                                           $tracelevel)
17327                                                 if defined $::RD_TRACE;
17328                 $_matched = 1;
17329                 last;
17330         }
17331
17332
17333         while (!$_matched && !$commit)
17334         {
17335                 
17336                 Parse::RecDescent::_trace(q{Trying production: [in_p]},
17337                                           Parse::RecDescent::_tracefirst($_[1]),
17338                                           q{predicate},
17339                                           $tracelevel)
17340                                                 if defined $::RD_TRACE;
17341                 my $thisprod = $thisrule->{"prods"}[4];
17342                 $text = $_[1];
17343                 my $_savetext;
17344                 @item = (q{predicate});
17345                 %item = (__RULE__ => q{predicate});
17346                 my $repcount = 0;
17347
17348
17349                 Parse::RecDescent::_trace(q{Trying subrule: [in_p]},
17350                                   Parse::RecDescent::_tracefirst($text),
17351                                   q{predicate},
17352                                   $tracelevel)
17353                                         if defined $::RD_TRACE;
17354                 if (1) { no strict qw{refs};
17355                 $expectation->is(q{})->at($text);
17356                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::in_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17357                 {
17358                         
17359                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [in_p]>>},
17360                                                   Parse::RecDescent::_tracefirst($text),
17361                                                   q{predicate},
17362                                                   $tracelevel)
17363                                                         if defined $::RD_TRACE;
17364                         $expectation->failed();
17365                         last;
17366                 }
17367                 Parse::RecDescent::_trace(q{>>Matched subrule: [in_p]<< (return value: [}
17368                                         . $_tok . q{]},
17369                                           
17370                                           Parse::RecDescent::_tracefirst($text),
17371                                           q{predicate},
17372                                           $tracelevel)
17373                                                 if defined $::RD_TRACE;
17374                 $item{q{in_p}} = $_tok;
17375                 push @item, $_tok;
17376                 
17377                 }
17378
17379
17380                 Parse::RecDescent::_trace(q{>>Matched production: [in_p]<<},
17381                                           Parse::RecDescent::_tracefirst($text),
17382                                           q{predicate},
17383                                           $tracelevel)
17384                                                 if defined $::RD_TRACE;
17385                 $_matched = 1;
17386                 last;
17387         }
17388
17389
17390         while (!$_matched && !$commit)
17391         {
17392                 
17393                 Parse::RecDescent::_trace(q{Trying production: [like_p]},
17394                                           Parse::RecDescent::_tracefirst($_[1]),
17395                                           q{predicate},
17396                                           $tracelevel)
17397                                                 if defined $::RD_TRACE;
17398                 my $thisprod = $thisrule->{"prods"}[5];
17399                 $text = $_[1];
17400                 my $_savetext;
17401                 @item = (q{predicate});
17402                 %item = (__RULE__ => q{predicate});
17403                 my $repcount = 0;
17404
17405
17406                 Parse::RecDescent::_trace(q{Trying subrule: [like_p]},
17407                                   Parse::RecDescent::_tracefirst($text),
17408                                   q{predicate},
17409                                   $tracelevel)
17410                                         if defined $::RD_TRACE;
17411                 if (1) { no strict qw{refs};
17412                 $expectation->is(q{})->at($text);
17413                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::like_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17414                 {
17415                         
17416                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [like_p]>>},
17417                                                   Parse::RecDescent::_tracefirst($text),
17418                                                   q{predicate},
17419                                                   $tracelevel)
17420                                                         if defined $::RD_TRACE;
17421                         $expectation->failed();
17422                         last;
17423                 }
17424                 Parse::RecDescent::_trace(q{>>Matched subrule: [like_p]<< (return value: [}
17425                                         . $_tok . q{]},
17426                                           
17427                                           Parse::RecDescent::_tracefirst($text),
17428                                           q{predicate},
17429                                           $tracelevel)
17430                                                 if defined $::RD_TRACE;
17431                 $item{q{like_p}} = $_tok;
17432                 push @item, $_tok;
17433                 
17434                 }
17435
17436
17437                 Parse::RecDescent::_trace(q{>>Matched production: [like_p]<<},
17438                                           Parse::RecDescent::_tracefirst($text),
17439                                           q{predicate},
17440                                           $tracelevel)
17441                                                 if defined $::RD_TRACE;
17442                 $_matched = 1;
17443                 last;
17444         }
17445
17446
17447         while (!$_matched && !$commit)
17448         {
17449                 
17450                 Parse::RecDescent::_trace(q{Trying production: [null_p]},
17451                                           Parse::RecDescent::_tracefirst($_[1]),
17452                                           q{predicate},
17453                                           $tracelevel)
17454                                                 if defined $::RD_TRACE;
17455                 my $thisprod = $thisrule->{"prods"}[6];
17456                 $text = $_[1];
17457                 my $_savetext;
17458                 @item = (q{predicate});
17459                 %item = (__RULE__ => q{predicate});
17460                 my $repcount = 0;
17461
17462
17463                 Parse::RecDescent::_trace(q{Trying subrule: [null_p]},
17464                                   Parse::RecDescent::_tracefirst($text),
17465                                   q{predicate},
17466                                   $tracelevel)
17467                                         if defined $::RD_TRACE;
17468                 if (1) { no strict qw{refs};
17469                 $expectation->is(q{})->at($text);
17470                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::null_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17471                 {
17472                         
17473                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [null_p]>>},
17474                                                   Parse::RecDescent::_tracefirst($text),
17475                                                   q{predicate},
17476                                                   $tracelevel)
17477                                                         if defined $::RD_TRACE;
17478                         $expectation->failed();
17479                         last;
17480                 }
17481                 Parse::RecDescent::_trace(q{>>Matched subrule: [null_p]<< (return value: [}
17482                                         . $_tok . q{]},
17483                                           
17484                                           Parse::RecDescent::_tracefirst($text),
17485                                           q{predicate},
17486                                           $tracelevel)
17487                                                 if defined $::RD_TRACE;
17488                 $item{q{null_p}} = $_tok;
17489                 push @item, $_tok;
17490                 
17491                 }
17492
17493
17494                 Parse::RecDescent::_trace(q{>>Matched production: [null_p]<<},
17495                                           Parse::RecDescent::_tracefirst($text),
17496                                           q{predicate},
17497                                           $tracelevel)
17498                                                 if defined $::RD_TRACE;
17499                 $_matched = 1;
17500                 last;
17501         }
17502
17503
17504         while (!$_matched && !$commit)
17505         {
17506                 
17507                 Parse::RecDescent::_trace(q{Trying production: [type_p]},
17508                                           Parse::RecDescent::_tracefirst($_[1]),
17509                                           q{predicate},
17510                                           $tracelevel)
17511                                                 if defined $::RD_TRACE;
17512                 my $thisprod = $thisrule->{"prods"}[7];
17513                 $text = $_[1];
17514                 my $_savetext;
17515                 @item = (q{predicate});
17516                 %item = (__RULE__ => q{predicate});
17517                 my $repcount = 0;
17518
17519
17520                 Parse::RecDescent::_trace(q{Trying subrule: [type_p]},
17521                                   Parse::RecDescent::_tracefirst($text),
17522                                   q{predicate},
17523                                   $tracelevel)
17524                                         if defined $::RD_TRACE;
17525                 if (1) { no strict qw{refs};
17526                 $expectation->is(q{})->at($text);
17527                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17528                 {
17529                         
17530                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [type_p]>>},
17531                                                   Parse::RecDescent::_tracefirst($text),
17532                                                   q{predicate},
17533                                                   $tracelevel)
17534                                                         if defined $::RD_TRACE;
17535                         $expectation->failed();
17536                         last;
17537                 }
17538                 Parse::RecDescent::_trace(q{>>Matched subrule: [type_p]<< (return value: [}
17539                                         . $_tok . q{]},
17540                                           
17541                                           Parse::RecDescent::_tracefirst($text),
17542                                           q{predicate},
17543                                           $tracelevel)
17544                                                 if defined $::RD_TRACE;
17545                 $item{q{type_p}} = $_tok;
17546                 push @item, $_tok;
17547                 
17548                 }
17549
17550
17551                 Parse::RecDescent::_trace(q{>>Matched production: [type_p]<<},
17552                                           Parse::RecDescent::_tracefirst($text),
17553                                           q{predicate},
17554                                           $tracelevel)
17555                                                 if defined $::RD_TRACE;
17556                 $_matched = 1;
17557                 last;
17558         }
17559
17560
17561         unless ( $_matched || defined($return) || defined($score) )
17562         {
17563                 
17564
17565                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
17566                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
17567                                          Parse::RecDescent::_tracefirst($_[1]),
17568                                          q{predicate},
17569                                          $tracelevel)
17570                                         if defined $::RD_TRACE;
17571                 return undef;
17572         }
17573         if (!defined($return) && defined($score))
17574         {
17575                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
17576                                           q{predicate},
17577                                           $tracelevel)
17578                                                 if defined $::RD_TRACE;
17579                 $return = $score_return;
17580         }
17581         splice @{$thisparser->{errors}}, $err_at;
17582         $return = $item[$#item] unless defined $return;
17583         if (defined $::RD_TRACE)
17584         {
17585                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
17586                                           $return . q{])}, "",
17587                                           q{predicate},
17588                                           $tracelevel);
17589                 Parse::RecDescent::_trace(q{(consumed: [} .
17590                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
17591                                           Parse::RecDescent::_tracefirst($text),
17592                                           , q{predicate},
17593                                           $tracelevel)
17594         }
17595         $_[1] = $text;
17596         return $return;
17597 }
17598
17599 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17600 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name
17601 {
17602         my $thisparser = $_[0];
17603         use vars q{$tracelevel};
17604         local $tracelevel = ($tracelevel||0)+1;
17605         $ERRORS = 0;
17606         my $thisrule = $thisparser->{"rules"}{"column_name"};
17607         
17608         Parse::RecDescent::_trace(q{Trying rule: [column_name]},
17609                                   Parse::RecDescent::_tracefirst($_[1]),
17610                                   q{column_name},
17611                                   $tracelevel)
17612                                         if defined $::RD_TRACE;
17613
17614         
17615         my $err_at = @{$thisparser->{errors}};
17616
17617         my $score;
17618         my $score_return;
17619         my $_tok;
17620         my $return = undef;
17621         my $_matched=0;
17622         my $commit=0;
17623         my @item = ();
17624         my %item = ();
17625         my $repeating =  defined($_[2]) && $_[2];
17626         my $_noactions = defined($_[3]) && $_[3];
17627         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
17628         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
17629         my $text;
17630         my $lastsep="";
17631         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17632         $expectation->at($_[1]);
17633         
17634         my $thisline;
17635         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17636
17637         
17638
17639         while (!$_matched && !$commit)
17640         {
17641                 
17642                 Parse::RecDescent::_trace(q{Trying production: [NAME]},
17643                                           Parse::RecDescent::_tracefirst($_[1]),
17644                                           q{column_name},
17645                                           $tracelevel)
17646                                                 if defined $::RD_TRACE;
17647                 my $thisprod = $thisrule->{"prods"}[0];
17648                 $text = $_[1];
17649                 my $_savetext;
17650                 @item = (q{column_name});
17651                 %item = (__RULE__ => q{column_name});
17652                 my $repcount = 0;
17653
17654
17655                 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
17656                                   Parse::RecDescent::_tracefirst($text),
17657                                   q{column_name},
17658                                   $tracelevel)
17659                                         if defined $::RD_TRACE;
17660                 if (1) { no strict qw{refs};
17661                 $expectation->is(q{})->at($text);
17662                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17663                 {
17664                         
17665                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
17666                                                   Parse::RecDescent::_tracefirst($text),
17667                                                   q{column_name},
17668                                                   $tracelevel)
17669                                                         if defined $::RD_TRACE;
17670                         $expectation->failed();
17671                         last;
17672                 }
17673                 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
17674                                         . $_tok . q{]},
17675                                           
17676                                           Parse::RecDescent::_tracefirst($text),
17677                                           q{column_name},
17678                                           $tracelevel)
17679                                                 if defined $::RD_TRACE;
17680                 $item{q{NAME}} = $_tok;
17681                 push @item, $_tok;
17682                 
17683                 }
17684
17685
17686                 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
17687                                           Parse::RecDescent::_tracefirst($text),
17688                                           q{column_name},
17689                                           $tracelevel)
17690                                                 if defined $::RD_TRACE;
17691                 $_matched = 1;
17692                 last;
17693         }
17694
17695
17696         unless ( $_matched || defined($return) || defined($score) )
17697         {
17698                 
17699
17700                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
17701                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
17702                                          Parse::RecDescent::_tracefirst($_[1]),
17703                                          q{column_name},
17704                                          $tracelevel)
17705                                         if defined $::RD_TRACE;
17706                 return undef;
17707         }
17708         if (!defined($return) && defined($score))
17709         {
17710                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
17711                                           q{column_name},
17712                                           $tracelevel)
17713                                                 if defined $::RD_TRACE;
17714                 $return = $score_return;
17715         }
17716         splice @{$thisparser->{errors}}, $err_at;
17717         $return = $item[$#item] unless defined $return;
17718         if (defined $::RD_TRACE)
17719         {
17720                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
17721                                           $return . q{])}, "",
17722                                           q{column_name},
17723                                           $tracelevel);
17724                 Parse::RecDescent::_trace(q{(consumed: [} .
17725                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
17726                                           Parse::RecDescent::_tracefirst($text),
17727                                           , q{column_name},
17728                                           $tracelevel)
17729         }
17730         $_[1] = $text;
17731         return $return;
17732 }
17733
17734 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17735 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_invocation
17736 {
17737         my $thisparser = $_[0];
17738         use vars q{$tracelevel};
17739         local $tracelevel = ($tracelevel||0)+1;
17740         $ERRORS = 0;
17741         my $thisrule = $thisparser->{"rules"}{"method_invocation"};
17742         
17743         Parse::RecDescent::_trace(q{Trying rule: [method_invocation]},
17744                                   Parse::RecDescent::_tracefirst($_[1]),
17745                                   q{method_invocation},
17746                                   $tracelevel)
17747                                         if defined $::RD_TRACE;
17748
17749         
17750         my $err_at = @{$thisparser->{errors}};
17751
17752         my $score;
17753         my $score_return;
17754         my $_tok;
17755         my $return = undef;
17756         my $_matched=0;
17757         my $commit=0;
17758         my @item = ();
17759         my %item = ();
17760         my $repeating =  defined($_[2]) && $_[2];
17761         my $_noactions = defined($_[3]) && $_[3];
17762         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
17763         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
17764         my $text;
17765         my $lastsep="";
17766         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17767         $expectation->at($_[1]);
17768         
17769         my $thisline;
17770         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17771
17772         
17773
17774         while (!$_matched && !$commit)
17775         {
17776                 
17777                 Parse::RecDescent::_trace(q{Trying production: [subject_expression '..' method_name '(']},
17778                                           Parse::RecDescent::_tracefirst($_[1]),
17779                                           q{method_invocation},
17780                                           $tracelevel)
17781                                                 if defined $::RD_TRACE;
17782                 my $thisprod = $thisrule->{"prods"}[0];
17783                 $text = $_[1];
17784                 my $_savetext;
17785                 @item = (q{method_invocation});
17786                 %item = (__RULE__ => q{method_invocation});
17787                 my $repcount = 0;
17788
17789
17790                 Parse::RecDescent::_trace(q{Trying subrule: [subject_expression]},
17791                                   Parse::RecDescent::_tracefirst($text),
17792                                   q{method_invocation},
17793                                   $tracelevel)
17794                                         if defined $::RD_TRACE;
17795                 if (1) { no strict qw{refs};
17796                 $expectation->is(q{})->at($text);
17797                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subject_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17798                 {
17799                         
17800                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [subject_expression]>>},
17801                                                   Parse::RecDescent::_tracefirst($text),
17802                                                   q{method_invocation},
17803                                                   $tracelevel)
17804                                                         if defined $::RD_TRACE;
17805                         $expectation->failed();
17806                         last;
17807                 }
17808                 Parse::RecDescent::_trace(q{>>Matched subrule: [subject_expression]<< (return value: [}
17809                                         . $_tok . q{]},
17810                                           
17811                                           Parse::RecDescent::_tracefirst($text),
17812                                           q{method_invocation},
17813                                           $tracelevel)
17814                                                 if defined $::RD_TRACE;
17815                 $item{q{subject_expression}} = $_tok;
17816                 push @item, $_tok;
17817                 
17818                 }
17819
17820                 Parse::RecDescent::_trace(q{Trying terminal: ['..']},
17821                                           Parse::RecDescent::_tracefirst($text),
17822                                           q{method_invocation},
17823                                           $tracelevel)
17824                                                 if defined $::RD_TRACE;
17825                 $lastsep = "";
17826                 $expectation->is(q{'..'})->at($text);
17827                 
17828
17829                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\.\.//)
17830                 {
17831                         
17832                         $expectation->failed();
17833                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
17834                                                   Parse::RecDescent::_tracefirst($text))
17835                                                         if defined $::RD_TRACE;
17836                         last;
17837                 }
17838                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
17839                                                 . $& . q{])},
17840                                                   Parse::RecDescent::_tracefirst($text))
17841                                                         if defined $::RD_TRACE;
17842                 push @item, $item{__STRING1__}=$&;
17843                 
17844
17845                 Parse::RecDescent::_trace(q{Trying subrule: [method_name]},
17846                                   Parse::RecDescent::_tracefirst($text),
17847                                   q{method_invocation},
17848                                   $tracelevel)
17849                                         if defined $::RD_TRACE;
17850                 if (1) { no strict qw{refs};
17851                 $expectation->is(q{method_name})->at($text);
17852                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17853                 {
17854                         
17855                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [method_name]>>},
17856                                                   Parse::RecDescent::_tracefirst($text),
17857                                                   q{method_invocation},
17858                                                   $tracelevel)
17859                                                         if defined $::RD_TRACE;
17860                         $expectation->failed();
17861                         last;
17862                 }
17863                 Parse::RecDescent::_trace(q{>>Matched subrule: [method_name]<< (return value: [}
17864                                         . $_tok . q{]},
17865                                           
17866                                           Parse::RecDescent::_tracefirst($text),
17867                                           q{method_invocation},
17868                                           $tracelevel)
17869                                                 if defined $::RD_TRACE;
17870                 $item{q{method_name}} = $_tok;
17871                 push @item, $_tok;
17872                 
17873                 }
17874
17875                 Parse::RecDescent::_trace(q{Trying repeated subrule: ['(']},
17876                                   Parse::RecDescent::_tracefirst($text),
17877                                   q{method_invocation},
17878                                   $tracelevel)
17879                                         if defined $::RD_TRACE;
17880                 $expectation->is(q{'('})->at($text);
17881                 
17882                 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))) 
17883                 {
17884                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: ['(']>>},
17885                                                   Parse::RecDescent::_tracefirst($text),
17886                                                   q{method_invocation},
17887                                                   $tracelevel)
17888                                                         if defined $::RD_TRACE;
17889                         last;
17890                 }
17891                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_method_invocation]<< (}
17892                                         . @$_tok . q{ times)},
17893                                           
17894                                           Parse::RecDescent::_tracefirst($text),
17895                                           q{method_invocation},
17896                                           $tracelevel)
17897                                                 if defined $::RD_TRACE;
17898                 $item{q{_alternation_1_of_production_1_of_rule_method_invocation(?)}} = $_tok;
17899                 push @item, $_tok;
17900                 
17901
17902
17903
17904                 Parse::RecDescent::_trace(q{>>Matched production: [subject_expression '..' method_name '(']<<},
17905                                           Parse::RecDescent::_tracefirst($text),
17906                                           q{method_invocation},
17907                                           $tracelevel)
17908                                                 if defined $::RD_TRACE;
17909                 $_matched = 1;
17910                 last;
17911         }
17912
17913
17914         unless ( $_matched || defined($return) || defined($score) )
17915         {
17916                 
17917
17918                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
17919                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
17920                                          Parse::RecDescent::_tracefirst($_[1]),
17921                                          q{method_invocation},
17922                                          $tracelevel)
17923                                         if defined $::RD_TRACE;
17924                 return undef;
17925         }
17926         if (!defined($return) && defined($score))
17927         {
17928                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
17929                                           q{method_invocation},
17930                                           $tracelevel)
17931                                                 if defined $::RD_TRACE;
17932                 $return = $score_return;
17933         }
17934         splice @{$thisparser->{errors}}, $err_at;
17935         $return = $item[$#item] unless defined $return;
17936         if (defined $::RD_TRACE)
17937         {
17938                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
17939                                           $return . q{])}, "",
17940                                           q{method_invocation},
17941                                           $tracelevel);
17942                 Parse::RecDescent::_trace(q{(consumed: [} .
17943                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
17944                                           Parse::RecDescent::_tracefirst($text),
17945                                           , q{method_invocation},
17946                                           $tracelevel)
17947         }
17948         $_[1] = $text;
17949         return $return;
17950 }
17951
17952 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17953 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_dereference_operation
17954 {
17955         my $thisparser = $_[0];
17956         use vars q{$tracelevel};
17957         local $tracelevel = ($tracelevel||0)+1;
17958         $ERRORS = 0;
17959         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_dereference_operation"};
17960         
17961         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_dereference_operation]},
17962                                   Parse::RecDescent::_tracefirst($_[1]),
17963                                   q{_alternation_1_of_production_1_of_rule_dereference_operation},
17964                                   $tracelevel)
17965                                         if defined $::RD_TRACE;
17966
17967         
17968         my $err_at = @{$thisparser->{errors}};
17969
17970         my $score;
17971         my $score_return;
17972         my $_tok;
17973         my $return = undef;
17974         my $_matched=0;
17975         my $commit=0;
17976         my @item = ();
17977         my %item = ();
17978         my $repeating =  defined($_[2]) && $_[2];
17979         my $_noactions = defined($_[3]) && $_[3];
17980         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
17981         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
17982         my $text;
17983         my $lastsep="";
17984         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17985         $expectation->at($_[1]);
17986         
17987         my $thisline;
17988         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17989
17990         
17991
17992         while (!$_matched && !$commit)
17993         {
17994                 
17995                 Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
17996                                           Parse::RecDescent::_tracefirst($_[1]),
17997                                           q{_alternation_1_of_production_1_of_rule_dereference_operation},
17998                                           $tracelevel)
17999                                                 if defined $::RD_TRACE;
18000                 my $thisprod = $thisrule->{"prods"}[0];
18001                 $text = $_[1];
18002                 my $_savetext;
18003                 @item = (q{_alternation_1_of_production_1_of_rule_dereference_operation});
18004                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_dereference_operation});
18005                 my $repcount = 0;
18006
18007
18008                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
18009                                           Parse::RecDescent::_tracefirst($text),
18010                                           q{_alternation_1_of_production_1_of_rule_dereference_operation},
18011                                           $tracelevel)
18012                                                 if defined $::RD_TRACE;
18013                 $lastsep = "";
18014                 $expectation->is(q{})->at($text);
18015                 
18016
18017                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
18018                 {
18019                         
18020                         $expectation->failed();
18021                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
18022                                                   Parse::RecDescent::_tracefirst($text))
18023                                                         if defined $::RD_TRACE;
18024                         last;
18025                 }
18026                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18027                                                 . $& . q{])},
18028                                                   Parse::RecDescent::_tracefirst($text))
18029                                                         if defined $::RD_TRACE;
18030                 push @item, $item{__STRING1__}=$&;
18031                 
18032
18033                 Parse::RecDescent::_trace(q{Trying repeated subrule: [expression]},
18034                                   Parse::RecDescent::_tracefirst($text),
18035                                   q{_alternation_1_of_production_1_of_rule_dereference_operation},
18036                                   $tracelevel)
18037                                         if defined $::RD_TRACE;
18038                 $expectation->is(q{expression})->at($text);
18039                 
18040                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression, 1, 100000000, $_noactions,$expectation,undef))) 
18041                 {
18042                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [expression]>>},
18043                                                   Parse::RecDescent::_tracefirst($text),
18044                                                   q{_alternation_1_of_production_1_of_rule_dereference_operation},
18045                                                   $tracelevel)
18046                                                         if defined $::RD_TRACE;
18047                         last;
18048                 }
18049                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [expression]<< (}
18050                                         . @$_tok . q{ times)},
18051                                           
18052                                           Parse::RecDescent::_tracefirst($text),
18053                                           q{_alternation_1_of_production_1_of_rule_dereference_operation},
18054                                           $tracelevel)
18055                                                 if defined $::RD_TRACE;
18056                 $item{q{expression(s)}} = $_tok;
18057                 push @item, $_tok;
18058                 
18059
18060
18061                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
18062                                           Parse::RecDescent::_tracefirst($text),
18063                                           q{_alternation_1_of_production_1_of_rule_dereference_operation},
18064                                           $tracelevel)
18065                                                 if defined $::RD_TRACE;
18066                 $lastsep = "";
18067                 $expectation->is(q{')'})->at($text);
18068                 
18069
18070                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
18071                 {
18072                         
18073                         $expectation->failed();
18074                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
18075                                                   Parse::RecDescent::_tracefirst($text))
18076                                                         if defined $::RD_TRACE;
18077                         last;
18078                 }
18079                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18080                                                 . $& . q{])},
18081                                                   Parse::RecDescent::_tracefirst($text))
18082                                                         if defined $::RD_TRACE;
18083                 push @item, $item{__STRING2__}=$&;
18084                 
18085
18086
18087                 Parse::RecDescent::_trace(q{>>Matched production: ['(' expression ')']<<},
18088                                           Parse::RecDescent::_tracefirst($text),
18089                                           q{_alternation_1_of_production_1_of_rule_dereference_operation},
18090                                           $tracelevel)
18091                                                 if defined $::RD_TRACE;
18092                 $_matched = 1;
18093                 last;
18094         }
18095
18096
18097         unless ( $_matched || defined($return) || defined($score) )
18098         {
18099                 
18100
18101                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
18102                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
18103                                          Parse::RecDescent::_tracefirst($_[1]),
18104                                          q{_alternation_1_of_production_1_of_rule_dereference_operation},
18105                                          $tracelevel)
18106                                         if defined $::RD_TRACE;
18107                 return undef;
18108         }
18109         if (!defined($return) && defined($score))
18110         {
18111                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18112                                           q{_alternation_1_of_production_1_of_rule_dereference_operation},
18113                                           $tracelevel)
18114                                                 if defined $::RD_TRACE;
18115                 $return = $score_return;
18116         }
18117         splice @{$thisparser->{errors}}, $err_at;
18118         $return = $item[$#item] unless defined $return;
18119         if (defined $::RD_TRACE)
18120         {
18121                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
18122                                           $return . q{])}, "",
18123                                           q{_alternation_1_of_production_1_of_rule_dereference_operation},
18124                                           $tracelevel);
18125                 Parse::RecDescent::_trace(q{(consumed: [} .
18126                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
18127                                           Parse::RecDescent::_tracefirst($text),
18128                                           , q{_alternation_1_of_production_1_of_rule_dereference_operation},
18129                                           $tracelevel)
18130         }
18131         $_[1] = $text;
18132         return $return;
18133 }
18134
18135 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18136 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_searched_when_clause
18137 {
18138         my $thisparser = $_[0];
18139         use vars q{$tracelevel};
18140         local $tracelevel = ($tracelevel||0)+1;
18141         $ERRORS = 0;
18142         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_searched_when_clause"};
18143         
18144         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_searched_when_clause]},
18145                                   Parse::RecDescent::_tracefirst($_[1]),
18146                                   q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18147                                   $tracelevel)
18148                                         if defined $::RD_TRACE;
18149
18150         
18151         my $err_at = @{$thisparser->{errors}};
18152
18153         my $score;
18154         my $score_return;
18155         my $_tok;
18156         my $return = undef;
18157         my $_matched=0;
18158         my $commit=0;
18159         my @item = ();
18160         my %item = ();
18161         my $repeating =  defined($_[2]) && $_[2];
18162         my $_noactions = defined($_[3]) && $_[3];
18163         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
18164         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
18165         my $text;
18166         my $lastsep="";
18167         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18168         $expectation->at($_[1]);
18169         
18170         my $thisline;
18171         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18172
18173         
18174
18175         while (!$_matched && !$commit)
18176         {
18177                 
18178                 Parse::RecDescent::_trace(q{Trying production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]},
18179                                           Parse::RecDescent::_tracefirst($_[1]),
18180                                           q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18181                                           $tracelevel)
18182                                                 if defined $::RD_TRACE;
18183                 my $thisprod = $thisrule->{"prods"}[0];
18184                 $text = $_[1];
18185                 my $_savetext;
18186                 @item = (q{_alternation_1_of_production_1_of_rule_searched_when_clause});
18187                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_searched_when_clause});
18188                 my $repcount = 0;
18189
18190
18191                 Parse::RecDescent::_trace(q{Trying terminal: [/WHEN/i]}, Parse::RecDescent::_tracefirst($text),
18192                                           q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18193                                           $tracelevel)
18194                                                 if defined $::RD_TRACE;
18195                 $lastsep = "";
18196                 $expectation->is(q{})->at($text);
18197                 
18198
18199                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WHEN)//i)
18200                 {
18201                         
18202                         $expectation->failed();
18203                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18204                                                   Parse::RecDescent::_tracefirst($text))
18205                                         if defined $::RD_TRACE;
18206
18207                         last;
18208                 }
18209                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18210                                                 . $& . q{])},
18211                                                   Parse::RecDescent::_tracefirst($text))
18212                                         if defined $::RD_TRACE;
18213                 push @item, $item{__PATTERN1__}=$&;
18214                 
18215
18216                 Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
18217                                   Parse::RecDescent::_tracefirst($text),
18218                                   q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18219                                   $tracelevel)
18220                                         if defined $::RD_TRACE;
18221                 if (1) { no strict qw{refs};
18222                 $expectation->is(q{search_condition})->at($text);
18223                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
18224                 {
18225                         
18226                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
18227                                                   Parse::RecDescent::_tracefirst($text),
18228                                                   q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18229                                                   $tracelevel)
18230                                                         if defined $::RD_TRACE;
18231                         $expectation->failed();
18232                         last;
18233                 }
18234                 Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
18235                                         . $_tok . q{]},
18236                                           
18237                                           Parse::RecDescent::_tracefirst($text),
18238                                           q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18239                                           $tracelevel)
18240                                                 if defined $::RD_TRACE;
18241                 $item{q{search_condition}} = $_tok;
18242                 push @item, $_tok;
18243                 
18244                 }
18245
18246                 Parse::RecDescent::_trace(q{Trying terminal: [/THEN/i]}, Parse::RecDescent::_tracefirst($text),
18247                                           q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18248                                           $tracelevel)
18249                                                 if defined $::RD_TRACE;
18250                 $lastsep = "";
18251                 $expectation->is(q{/THEN/i})->at($text);
18252                 
18253
18254                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:THEN)//i)
18255                 {
18256                         
18257                         $expectation->failed();
18258                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18259                                                   Parse::RecDescent::_tracefirst($text))
18260                                         if defined $::RD_TRACE;
18261
18262                         last;
18263                 }
18264                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18265                                                 . $& . q{])},
18266                                                   Parse::RecDescent::_tracefirst($text))
18267                                         if defined $::RD_TRACE;
18268                 push @item, $item{__PATTERN2__}=$&;
18269                 
18270
18271                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]},
18272                                   Parse::RecDescent::_tracefirst($text),
18273                                   q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18274                                   $tracelevel)
18275                                         if defined $::RD_TRACE;
18276                 if (1) { no strict qw{refs};
18277                 $expectation->is(q{result_expression, or /NULL/i})->at($text);
18278                 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 })))
18279                 {
18280                         
18281                         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]>>},
18282                                                   Parse::RecDescent::_tracefirst($text),
18283                                                   q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18284                                                   $tracelevel)
18285                                                         if defined $::RD_TRACE;
18286                         $expectation->failed();
18287                         last;
18288                 }
18289                 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: [}
18290                                         . $_tok . q{]},
18291                                           
18292                                           Parse::RecDescent::_tracefirst($text),
18293                                           q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18294                                           $tracelevel)
18295                                                 if defined $::RD_TRACE;
18296                 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause}} = $_tok;
18297                 push @item, $_tok;
18298                 
18299                 }
18300
18301
18302                 Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]<<},
18303                                           Parse::RecDescent::_tracefirst($text),
18304                                           q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18305                                           $tracelevel)
18306                                                 if defined $::RD_TRACE;
18307                 $_matched = 1;
18308                 last;
18309         }
18310
18311
18312         unless ( $_matched || defined($return) || defined($score) )
18313         {
18314                 
18315
18316                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
18317                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
18318                                          Parse::RecDescent::_tracefirst($_[1]),
18319                                          q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18320                                          $tracelevel)
18321                                         if defined $::RD_TRACE;
18322                 return undef;
18323         }
18324         if (!defined($return) && defined($score))
18325         {
18326                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18327                                           q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18328                                           $tracelevel)
18329                                                 if defined $::RD_TRACE;
18330                 $return = $score_return;
18331         }
18332         splice @{$thisparser->{errors}}, $err_at;
18333         $return = $item[$#item] unless defined $return;
18334         if (defined $::RD_TRACE)
18335         {
18336                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
18337                                           $return . q{])}, "",
18338                                           q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18339                                           $tracelevel);
18340                 Parse::RecDescent::_trace(q{(consumed: [} .
18341                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
18342                                           Parse::RecDescent::_tracefirst($text),
18343                                           , q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18344                                           $tracelevel)
18345         }
18346         $_[1] = $text;
18347         return $return;
18348 }
18349
18350 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18351 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound2
18352 {
18353         my $thisparser = $_[0];
18354         use vars q{$tracelevel};
18355         local $tracelevel = ($tracelevel||0)+1;
18356         $ERRORS = 0;
18357         my $thisrule = $thisparser->{"rules"}{"group_bound2"};
18358         
18359         Parse::RecDescent::_trace(q{Trying rule: [group_bound2]},
18360                                   Parse::RecDescent::_tracefirst($_[1]),
18361                                   q{group_bound2},
18362                                   $tracelevel)
18363                                         if defined $::RD_TRACE;
18364
18365         
18366         my $err_at = @{$thisparser->{errors}};
18367
18368         my $score;
18369         my $score_return;
18370         my $_tok;
18371         my $return = undef;
18372         my $_matched=0;
18373         my $commit=0;
18374         my @item = ();
18375         my %item = ();
18376         my $repeating =  defined($_[2]) && $_[2];
18377         my $_noactions = defined($_[3]) && $_[3];
18378         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
18379         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
18380         my $text;
18381         my $lastsep="";
18382         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18383         $expectation->at($_[1]);
18384         
18385         my $thisline;
18386         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18387
18388         
18389
18390         while (!$_matched && !$commit)
18391         {
18392                 
18393                 Parse::RecDescent::_trace(q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
18394                                           Parse::RecDescent::_tracefirst($_[1]),
18395                                           q{group_bound2},
18396                                           $tracelevel)
18397                                                 if defined $::RD_TRACE;
18398                 my $thisprod = $thisrule->{"prods"}[0];
18399                 $text = $_[1];
18400                 my $_savetext;
18401                 @item = (q{group_bound2});
18402                 %item = (__RULE__ => q{group_bound2});
18403                 my $repcount = 0;
18404
18405
18406                 Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
18407                                           q{group_bound2},
18408                                           $tracelevel)
18409                                                 if defined $::RD_TRACE;
18410                 $lastsep = "";
18411                 $expectation->is(q{})->at($text);
18412                 
18413
18414                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i)
18415                 {
18416                         
18417                         $expectation->failed();
18418                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18419                                                   Parse::RecDescent::_tracefirst($text))
18420                                         if defined $::RD_TRACE;
18421
18422                         last;
18423                 }
18424                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18425                                                 . $& . q{])},
18426                                                   Parse::RecDescent::_tracefirst($text))
18427                                         if defined $::RD_TRACE;
18428                 push @item, $item{__PATTERN1__}=$&;
18429                 
18430
18431
18432                 Parse::RecDescent::_trace(q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
18433                                           Parse::RecDescent::_tracefirst($text),
18434                                           q{group_bound2},
18435                                           $tracelevel)
18436                                                 if defined $::RD_TRACE;
18437                 $_matched = 1;
18438                 last;
18439         }
18440
18441
18442         while (!$_matched && !$commit)
18443         {
18444                 
18445                 Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /PRECEDING/i]},
18446                                           Parse::RecDescent::_tracefirst($_[1]),
18447                                           q{group_bound2},
18448                                           $tracelevel)
18449                                                 if defined $::RD_TRACE;
18450                 my $thisprod = $thisrule->{"prods"}[1];
18451                 $text = $_[1];
18452                 my $_savetext;
18453                 @item = (q{group_bound2});
18454                 %item = (__RULE__ => q{group_bound2});
18455                 my $repcount = 0;
18456
18457
18458                 Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
18459                                   Parse::RecDescent::_tracefirst($text),
18460                                   q{group_bound2},
18461                                   $tracelevel)
18462                                         if defined $::RD_TRACE;
18463                 if (1) { no strict qw{refs};
18464                 $expectation->is(q{})->at($text);
18465                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
18466                 {
18467                         
18468                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
18469                                                   Parse::RecDescent::_tracefirst($text),
18470                                                   q{group_bound2},
18471                                                   $tracelevel)
18472                                                         if defined $::RD_TRACE;
18473                         $expectation->failed();
18474                         last;
18475                 }
18476                 Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
18477                                         . $_tok . q{]},
18478                                           
18479                                           Parse::RecDescent::_tracefirst($text),
18480                                           q{group_bound2},
18481                                           $tracelevel)
18482                                                 if defined $::RD_TRACE;
18483                 $item{q{unsigned_constant}} = $_tok;
18484                 push @item, $_tok;
18485                 
18486                 }
18487
18488                 Parse::RecDescent::_trace(q{Trying terminal: [/PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
18489                                           q{group_bound2},
18490                                           $tracelevel)
18491                                                 if defined $::RD_TRACE;
18492                 $lastsep = "";
18493                 $expectation->is(q{/PRECEDING/i})->at($text);
18494                 
18495
18496                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PRECEDING)//i)
18497                 {
18498                         
18499                         $expectation->failed();
18500                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18501                                                   Parse::RecDescent::_tracefirst($text))
18502                                         if defined $::RD_TRACE;
18503
18504                         last;
18505                 }
18506                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18507                                                 . $& . q{])},
18508                                                   Parse::RecDescent::_tracefirst($text))
18509                                         if defined $::RD_TRACE;
18510                 push @item, $item{__PATTERN1__}=$&;
18511                 
18512
18513
18514                 Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /PRECEDING/i]<<},
18515                                           Parse::RecDescent::_tracefirst($text),
18516                                           q{group_bound2},
18517                                           $tracelevel)
18518                                                 if defined $::RD_TRACE;
18519                 $_matched = 1;
18520                 last;
18521         }
18522
18523
18524         while (!$_matched && !$commit)
18525         {
18526                 
18527                 Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /FOLLOWING/i]},
18528                                           Parse::RecDescent::_tracefirst($_[1]),
18529                                           q{group_bound2},
18530                                           $tracelevel)
18531                                                 if defined $::RD_TRACE;
18532                 my $thisprod = $thisrule->{"prods"}[2];
18533                 $text = $_[1];
18534                 my $_savetext;
18535                 @item = (q{group_bound2});
18536                 %item = (__RULE__ => q{group_bound2});
18537                 my $repcount = 0;
18538
18539
18540                 Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
18541                                   Parse::RecDescent::_tracefirst($text),
18542                                   q{group_bound2},
18543                                   $tracelevel)
18544                                         if defined $::RD_TRACE;
18545                 if (1) { no strict qw{refs};
18546                 $expectation->is(q{})->at($text);
18547                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
18548                 {
18549                         
18550                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
18551                                                   Parse::RecDescent::_tracefirst($text),
18552                                                   q{group_bound2},
18553                                                   $tracelevel)
18554                                                         if defined $::RD_TRACE;
18555                         $expectation->failed();
18556                         last;
18557                 }
18558                 Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
18559                                         . $_tok . q{]},
18560                                           
18561                                           Parse::RecDescent::_tracefirst($text),
18562                                           q{group_bound2},
18563                                           $tracelevel)
18564                                                 if defined $::RD_TRACE;
18565                 $item{q{unsigned_constant}} = $_tok;
18566                 push @item, $_tok;
18567                 
18568                 }
18569
18570                 Parse::RecDescent::_trace(q{Trying terminal: [/FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
18571                                           q{group_bound2},
18572                                           $tracelevel)
18573                                                 if defined $::RD_TRACE;
18574                 $lastsep = "";
18575                 $expectation->is(q{/FOLLOWING/i})->at($text);
18576                 
18577
18578                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOLLOWING)//i)
18579                 {
18580                         
18581                         $expectation->failed();
18582                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18583                                                   Parse::RecDescent::_tracefirst($text))
18584                                         if defined $::RD_TRACE;
18585
18586                         last;
18587                 }
18588                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18589                                                 . $& . q{])},
18590                                                   Parse::RecDescent::_tracefirst($text))
18591                                         if defined $::RD_TRACE;
18592                 push @item, $item{__PATTERN1__}=$&;
18593                 
18594
18595
18596                 Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /FOLLOWING/i]<<},
18597                                           Parse::RecDescent::_tracefirst($text),
18598                                           q{group_bound2},
18599                                           $tracelevel)
18600                                                 if defined $::RD_TRACE;
18601                 $_matched = 1;
18602                 last;
18603         }
18604
18605
18606         while (!$_matched && !$commit)
18607         {
18608                 
18609                 Parse::RecDescent::_trace(q{Trying production: [/CURRENT\\s+ROW/i]},
18610                                           Parse::RecDescent::_tracefirst($_[1]),
18611                                           q{group_bound2},
18612                                           $tracelevel)
18613                                                 if defined $::RD_TRACE;
18614                 my $thisprod = $thisrule->{"prods"}[3];
18615                 $text = $_[1];
18616                 my $_savetext;
18617                 @item = (q{group_bound2});
18618                 %item = (__RULE__ => q{group_bound2});
18619                 my $repcount = 0;
18620
18621
18622                 Parse::RecDescent::_trace(q{Trying terminal: [/CURRENT\\s+ROW/i]}, Parse::RecDescent::_tracefirst($text),
18623                                           q{group_bound2},
18624                                           $tracelevel)
18625                                                 if defined $::RD_TRACE;
18626                 $lastsep = "";
18627                 $expectation->is(q{})->at($text);
18628                 
18629
18630                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CURRENT\s+ROW)//i)
18631                 {
18632                         
18633                         $expectation->failed();
18634                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18635                                                   Parse::RecDescent::_tracefirst($text))
18636                                         if defined $::RD_TRACE;
18637
18638                         last;
18639                 }
18640                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18641                                                 . $& . q{])},
18642                                                   Parse::RecDescent::_tracefirst($text))
18643                                         if defined $::RD_TRACE;
18644                 push @item, $item{__PATTERN1__}=$&;
18645                 
18646
18647
18648                 Parse::RecDescent::_trace(q{>>Matched production: [/CURRENT\\s+ROW/i]<<},
18649                                           Parse::RecDescent::_tracefirst($text),
18650                                           q{group_bound2},
18651                                           $tracelevel)
18652                                                 if defined $::RD_TRACE;
18653                 $_matched = 1;
18654                 last;
18655         }
18656
18657
18658         unless ( $_matched || defined($return) || defined($score) )
18659         {
18660                 
18661
18662                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
18663                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
18664                                          Parse::RecDescent::_tracefirst($_[1]),
18665                                          q{group_bound2},
18666                                          $tracelevel)
18667                                         if defined $::RD_TRACE;
18668                 return undef;
18669         }
18670         if (!defined($return) && defined($score))
18671         {
18672                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18673                                           q{group_bound2},
18674                                           $tracelevel)
18675                                                 if defined $::RD_TRACE;
18676                 $return = $score_return;
18677         }
18678         splice @{$thisparser->{errors}}, $err_at;
18679         $return = $item[$#item] unless defined $return;
18680         if (defined $::RD_TRACE)
18681         {
18682                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
18683                                           $return . q{])}, "",
18684                                           q{group_bound2},
18685                                           $tracelevel);
18686                 Parse::RecDescent::_trace(q{(consumed: [} .
18687                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
18688                                           Parse::RecDescent::_tracefirst($text),
18689                                           , q{group_bound2},
18690                                           $tracelevel)
18691         }
18692         $_[1] = $text;
18693         return $return;
18694 }
18695
18696 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18697 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::searched_when_clause
18698 {
18699         my $thisparser = $_[0];
18700         use vars q{$tracelevel};
18701         local $tracelevel = ($tracelevel||0)+1;
18702         $ERRORS = 0;
18703         my $thisrule = $thisparser->{"rules"}{"searched_when_clause"};
18704         
18705         Parse::RecDescent::_trace(q{Trying rule: [searched_when_clause]},
18706                                   Parse::RecDescent::_tracefirst($_[1]),
18707                                   q{searched_when_clause},
18708                                   $tracelevel)
18709                                         if defined $::RD_TRACE;
18710
18711         
18712         my $err_at = @{$thisparser->{errors}};
18713
18714         my $score;
18715         my $score_return;
18716         my $_tok;
18717         my $return = undef;
18718         my $_matched=0;
18719         my $commit=0;
18720         my @item = ();
18721         my %item = ();
18722         my $repeating =  defined($_[2]) && $_[2];
18723         my $_noactions = defined($_[3]) && $_[3];
18724         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
18725         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
18726         my $text;
18727         my $lastsep="";
18728         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18729         $expectation->at($_[1]);
18730         
18731         my $thisline;
18732         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18733
18734         
18735
18736         while (!$_matched && !$commit)
18737         {
18738                 
18739                 Parse::RecDescent::_trace(q{Trying production: [/WHEN/i]},
18740                                           Parse::RecDescent::_tracefirst($_[1]),
18741                                           q{searched_when_clause},
18742                                           $tracelevel)
18743                                                 if defined $::RD_TRACE;
18744                 my $thisprod = $thisrule->{"prods"}[0];
18745                 $text = $_[1];
18746                 my $_savetext;
18747                 @item = (q{searched_when_clause});
18748                 %item = (__RULE__ => q{searched_when_clause});
18749                 my $repcount = 0;
18750
18751
18752                 Parse::RecDescent::_trace(q{Trying repeated subrule: [/WHEN/i]},
18753                                   Parse::RecDescent::_tracefirst($text),
18754                                   q{searched_when_clause},
18755                                   $tracelevel)
18756                                         if defined $::RD_TRACE;
18757                 $expectation->is(q{})->at($text);
18758                 
18759                 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))) 
18760                 {
18761                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/WHEN/i]>>},
18762                                                   Parse::RecDescent::_tracefirst($text),
18763                                                   q{searched_when_clause},
18764                                                   $tracelevel)
18765                                                         if defined $::RD_TRACE;
18766                         last;
18767                 }
18768                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_searched_when_clause]<< (}
18769                                         . @$_tok . q{ times)},
18770                                           
18771                                           Parse::RecDescent::_tracefirst($text),
18772                                           q{searched_when_clause},
18773                                           $tracelevel)
18774                                                 if defined $::RD_TRACE;
18775                 $item{q{_alternation_1_of_production_1_of_rule_searched_when_clause(s)}} = $_tok;
18776                 push @item, $_tok;
18777                 
18778
18779
18780
18781                 Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i]<<},
18782                                           Parse::RecDescent::_tracefirst($text),
18783                                           q{searched_when_clause},
18784                                           $tracelevel)
18785                                                 if defined $::RD_TRACE;
18786                 $_matched = 1;
18787                 last;
18788         }
18789
18790
18791         unless ( $_matched || defined($return) || defined($score) )
18792         {
18793                 
18794
18795                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
18796                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
18797                                          Parse::RecDescent::_tracefirst($_[1]),
18798                                          q{searched_when_clause},
18799                                          $tracelevel)
18800                                         if defined $::RD_TRACE;
18801                 return undef;
18802         }
18803         if (!defined($return) && defined($score))
18804         {
18805                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18806                                           q{searched_when_clause},
18807                                           $tracelevel)
18808                                                 if defined $::RD_TRACE;
18809                 $return = $score_return;
18810         }
18811         splice @{$thisparser->{errors}}, $err_at;
18812         $return = $item[$#item] unless defined $return;
18813         if (defined $::RD_TRACE)
18814         {
18815                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
18816                                           $return . q{])}, "",
18817                                           q{searched_when_clause},
18818                                           $tracelevel);
18819                 Parse::RecDescent::_trace(q{(consumed: [} .
18820                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
18821                                           Parse::RecDescent::_tracefirst($text),
18822                                           , q{searched_when_clause},
18823                                           $tracelevel)
18824         }
18825         $_[1] = $text;
18826         return $return;
18827 }
18828
18829 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18830 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::basic_p
18831 {
18832         my $thisparser = $_[0];
18833         use vars q{$tracelevel};
18834         local $tracelevel = ($tracelevel||0)+1;
18835         $ERRORS = 0;
18836         my $thisrule = $thisparser->{"rules"}{"basic_p"};
18837         
18838         Parse::RecDescent::_trace(q{Trying rule: [basic_p]},
18839                                   Parse::RecDescent::_tracefirst($_[1]),
18840                                   q{basic_p},
18841                                   $tracelevel)
18842                                         if defined $::RD_TRACE;
18843
18844         
18845         my $err_at = @{$thisparser->{errors}};
18846
18847         my $score;
18848         my $score_return;
18849         my $_tok;
18850         my $return = undef;
18851         my $_matched=0;
18852         my $commit=0;
18853         my @item = ();
18854         my %item = ();
18855         my $repeating =  defined($_[2]) && $_[2];
18856         my $_noactions = defined($_[3]) && $_[3];
18857         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
18858         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
18859         my $text;
18860         my $lastsep="";
18861         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18862         $expectation->at($_[1]);
18863         
18864         my $thisline;
18865         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18866
18867         
18868
18869         while (!$_matched && !$commit)
18870         {
18871                 
18872                 Parse::RecDescent::_trace(q{Trying production: [expression /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ expression]},
18873                                           Parse::RecDescent::_tracefirst($_[1]),
18874                                           q{basic_p},
18875                                           $tracelevel)
18876                                                 if defined $::RD_TRACE;
18877                 my $thisprod = $thisrule->{"prods"}[0];
18878                 $text = $_[1];
18879                 my $_savetext;
18880                 @item = (q{basic_p});
18881                 %item = (__RULE__ => q{basic_p});
18882                 my $repcount = 0;
18883
18884
18885                 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
18886                                   Parse::RecDescent::_tracefirst($text),
18887                                   q{basic_p},
18888                                   $tracelevel)
18889                                         if defined $::RD_TRACE;
18890                 if (1) { no strict qw{refs};
18891                 $expectation->is(q{})->at($text);
18892                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
18893                 {
18894                         
18895                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
18896                                                   Parse::RecDescent::_tracefirst($text),
18897                                                   q{basic_p},
18898                                                   $tracelevel)
18899                                                         if defined $::RD_TRACE;
18900                         $expectation->failed();
18901                         last;
18902                 }
18903                 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
18904                                         . $_tok . q{]},
18905                                           
18906                                           Parse::RecDescent::_tracefirst($text),
18907                                           q{basic_p},
18908                                           $tracelevel)
18909                                                 if defined $::RD_TRACE;
18910                 $item{q{expression}} = $_tok;
18911                 push @item, $_tok;
18912                 
18913                 }
18914
18915                 Parse::RecDescent::_trace(q{Trying terminal: [/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/]}, Parse::RecDescent::_tracefirst($text),
18916                                           q{basic_p},
18917                                           $tracelevel)
18918                                                 if defined $::RD_TRACE;
18919                 $lastsep = "";
18920                 $expectation->is(q{/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/})->at($text);
18921                 
18922
18923                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(=|<>|<|>|<=|=>|\^=|\^<|\^>|\!=))//)
18924                 {
18925                         
18926                         $expectation->failed();
18927                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18928                                                   Parse::RecDescent::_tracefirst($text))
18929                                         if defined $::RD_TRACE;
18930
18931                         last;
18932                 }
18933                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18934                                                 . $& . q{])},
18935                                                   Parse::RecDescent::_tracefirst($text))
18936                                         if defined $::RD_TRACE;
18937                 push @item, $item{__PATTERN1__}=$&;
18938                 
18939
18940                 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
18941                                   Parse::RecDescent::_tracefirst($text),
18942                                   q{basic_p},
18943                                   $tracelevel)
18944                                         if defined $::RD_TRACE;
18945                 if (1) { no strict qw{refs};
18946                 $expectation->is(q{expression})->at($text);
18947                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
18948                 {
18949                         
18950                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
18951                                                   Parse::RecDescent::_tracefirst($text),
18952                                                   q{basic_p},
18953                                                   $tracelevel)
18954                                                         if defined $::RD_TRACE;
18955                         $expectation->failed();
18956                         last;
18957                 }
18958                 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
18959                                         . $_tok . q{]},
18960                                           
18961                                           Parse::RecDescent::_tracefirst($text),
18962                                           q{basic_p},
18963                                           $tracelevel)
18964                                                 if defined $::RD_TRACE;
18965                 $item{q{expression}} = $_tok;
18966                 push @item, $_tok;
18967                 
18968                 }
18969
18970
18971                 Parse::RecDescent::_trace(q{>>Matched production: [expression /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ expression]<<},
18972                                           Parse::RecDescent::_tracefirst($text),
18973                                           q{basic_p},
18974                                           $tracelevel)
18975                                                 if defined $::RD_TRACE;
18976                 $_matched = 1;
18977                 last;
18978         }
18979
18980
18981         unless ( $_matched || defined($return) || defined($score) )
18982         {
18983                 
18984
18985                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
18986                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
18987                                          Parse::RecDescent::_tracefirst($_[1]),
18988                                          q{basic_p},
18989                                          $tracelevel)
18990                                         if defined $::RD_TRACE;
18991                 return undef;
18992         }
18993         if (!defined($return) && defined($score))
18994         {
18995                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18996                                           q{basic_p},
18997                                           $tracelevel)
18998                                                 if defined $::RD_TRACE;
18999                 $return = $score_return;
19000         }
19001         splice @{$thisparser->{errors}}, $err_at;
19002         $return = $item[$#item] unless defined $return;
19003         if (defined $::RD_TRACE)
19004         {
19005                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19006                                           $return . q{])}, "",
19007                                           q{basic_p},
19008                                           $tracelevel);
19009                 Parse::RecDescent::_trace(q{(consumed: [} .
19010                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
19011                                           Parse::RecDescent::_tracefirst($text),
19012                                           , q{basic_p},
19013                                           $tracelevel)
19014         }
19015         $_[1] = $text;
19016         return $return;
19017 }
19018
19019 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19020 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::asc_option
19021 {
19022         my $thisparser = $_[0];
19023         use vars q{$tracelevel};
19024         local $tracelevel = ($tracelevel||0)+1;
19025         $ERRORS = 0;
19026         my $thisrule = $thisparser->{"rules"}{"asc_option"};
19027         
19028         Parse::RecDescent::_trace(q{Trying rule: [asc_option]},
19029                                   Parse::RecDescent::_tracefirst($_[1]),
19030                                   q{asc_option},
19031                                   $tracelevel)
19032                                         if defined $::RD_TRACE;
19033
19034         
19035         my $err_at = @{$thisparser->{errors}};
19036
19037         my $score;
19038         my $score_return;
19039         my $_tok;
19040         my $return = undef;
19041         my $_matched=0;
19042         my $commit=0;
19043         my @item = ();
19044         my %item = ();
19045         my $repeating =  defined($_[2]) && $_[2];
19046         my $_noactions = defined($_[3]) && $_[3];
19047         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
19048         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
19049         my $text;
19050         my $lastsep="";
19051         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19052         $expectation->at($_[1]);
19053         
19054         my $thisline;
19055         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19056
19057         
19058
19059         while (!$_matched && !$commit)
19060         {
19061                 
19062                 Parse::RecDescent::_trace(q{Trying production: [/ASC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
19063                                           Parse::RecDescent::_tracefirst($_[1]),
19064                                           q{asc_option},
19065                                           $tracelevel)
19066                                                 if defined $::RD_TRACE;
19067                 my $thisprod = $thisrule->{"prods"}[0];
19068                 $text = $_[1];
19069                 my $_savetext;
19070                 @item = (q{asc_option});
19071                 %item = (__RULE__ => q{asc_option});
19072                 my $repcount = 0;
19073
19074
19075                 Parse::RecDescent::_trace(q{Trying terminal: [/ASC/i]}, Parse::RecDescent::_tracefirst($text),
19076                                           q{asc_option},
19077                                           $tracelevel)
19078                                                 if defined $::RD_TRACE;
19079                 $lastsep = "";
19080                 $expectation->is(q{})->at($text);
19081                 
19082
19083                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ASC)//i)
19084                 {
19085                         
19086                         $expectation->failed();
19087                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
19088                                                   Parse::RecDescent::_tracefirst($text))
19089                                         if defined $::RD_TRACE;
19090
19091                         last;
19092                 }
19093                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19094                                                 . $& . q{])},
19095                                                   Parse::RecDescent::_tracefirst($text))
19096                                         if defined $::RD_TRACE;
19097                 push @item, $item{__PATTERN1__}=$&;
19098                 
19099
19100                 Parse::RecDescent::_trace(q{Trying repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
19101                                   Parse::RecDescent::_tracefirst($text),
19102                                   q{asc_option},
19103                                   $tracelevel)
19104                                         if defined $::RD_TRACE;
19105                 $expectation->is(q{/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i})->at($text);
19106                 
19107                 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))) 
19108                 {
19109                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]>>},
19110                                                   Parse::RecDescent::_tracefirst($text),
19111                                                   q{asc_option},
19112                                                   $tracelevel)
19113                                                         if defined $::RD_TRACE;
19114                         last;
19115                 }
19116                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_asc_option]<< (}
19117                                         . @$_tok . q{ times)},
19118                                           
19119                                           Parse::RecDescent::_tracefirst($text),
19120                                           q{asc_option},
19121                                           $tracelevel)
19122                                                 if defined $::RD_TRACE;
19123                 $item{q{_alternation_1_of_production_1_of_rule_asc_option(?)}} = $_tok;
19124                 push @item, $_tok;
19125                 
19126
19127
19128
19129                 Parse::RecDescent::_trace(q{>>Matched production: [/ASC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]<<},
19130                                           Parse::RecDescent::_tracefirst($text),
19131                                           q{asc_option},
19132                                           $tracelevel)
19133                                                 if defined $::RD_TRACE;
19134                 $_matched = 1;
19135                 last;
19136         }
19137
19138
19139         unless ( $_matched || defined($return) || defined($score) )
19140         {
19141                 
19142
19143                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
19144                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
19145                                          Parse::RecDescent::_tracefirst($_[1]),
19146                                          q{asc_option},
19147                                          $tracelevel)
19148                                         if defined $::RD_TRACE;
19149                 return undef;
19150         }
19151         if (!defined($return) && defined($score))
19152         {
19153                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19154                                           q{asc_option},
19155                                           $tracelevel)
19156                                                 if defined $::RD_TRACE;
19157                 $return = $score_return;
19158         }
19159         splice @{$thisparser->{errors}}, $err_at;
19160         $return = $item[$#item] unless defined $return;
19161         if (defined $::RD_TRACE)
19162         {
19163                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19164                                           $return . q{])}, "",
19165                                           q{asc_option},
19166                                           $tracelevel);
19167                 Parse::RecDescent::_trace(q{(consumed: [} .
19168                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
19169                                           Parse::RecDescent::_tracefirst($text),
19170                                           , q{asc_option},
19171                                           $tracelevel)
19172         }
19173         $_[1] = $text;
19174         return $return;
19175 }
19176
19177 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19178 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition
19179 {
19180         my $thisparser = $_[0];
19181         use vars q{$tracelevel};
19182         local $tracelevel = ($tracelevel||0)+1;
19183         $ERRORS = 0;
19184         my $thisrule = $thisparser->{"rules"}{"search_condition"};
19185         
19186         Parse::RecDescent::_trace(q{Trying rule: [search_condition]},
19187                                   Parse::RecDescent::_tracefirst($_[1]),
19188                                   q{search_condition},
19189                                   $tracelevel)
19190                                         if defined $::RD_TRACE;
19191
19192         
19193         my $err_at = @{$thisparser->{errors}};
19194
19195         my $score;
19196         my $score_return;
19197         my $_tok;
19198         my $return = undef;
19199         my $_matched=0;
19200         my $commit=0;
19201         my @item = ();
19202         my %item = ();
19203         my $repeating =  defined($_[2]) && $_[2];
19204         my $_noactions = defined($_[3]) && $_[3];
19205         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
19206         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
19207         my $text;
19208         my $lastsep="";
19209         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19210         $expectation->at($_[1]);
19211         
19212         my $thisline;
19213         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19214
19215         
19216
19217         while (!$_matched && !$commit)
19218         {
19219                 
19220                 Parse::RecDescent::_trace(q{Trying production: [/[^)]+/]},
19221                                           Parse::RecDescent::_tracefirst($_[1]),
19222                                           q{search_condition},
19223                                           $tracelevel)
19224                                                 if defined $::RD_TRACE;
19225                 my $thisprod = $thisrule->{"prods"}[0];
19226                 $text = $_[1];
19227                 my $_savetext;
19228                 @item = (q{search_condition});
19229                 %item = (__RULE__ => q{search_condition});
19230                 my $repcount = 0;
19231
19232
19233                 Parse::RecDescent::_trace(q{Trying terminal: [/[^)]+/]}, Parse::RecDescent::_tracefirst($text),
19234                                           q{search_condition},
19235                                           $tracelevel)
19236                                                 if defined $::RD_TRACE;
19237                 $lastsep = "";
19238                 $expectation->is(q{})->at($text);
19239                 
19240
19241                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:[^)]+)//)
19242                 {
19243                         
19244                         $expectation->failed();
19245                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
19246                                                   Parse::RecDescent::_tracefirst($text))
19247                                         if defined $::RD_TRACE;
19248
19249                         last;
19250                 }
19251                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19252                                                 . $& . q{])},
19253                                                   Parse::RecDescent::_tracefirst($text))
19254                                         if defined $::RD_TRACE;
19255                 push @item, $item{__PATTERN1__}=$&;
19256                 
19257
19258
19259                 Parse::RecDescent::_trace(q{>>Matched production: [/[^)]+/]<<},
19260                                           Parse::RecDescent::_tracefirst($text),
19261                                           q{search_condition},
19262                                           $tracelevel)
19263                                                 if defined $::RD_TRACE;
19264                 $_matched = 1;
19265                 last;
19266         }
19267
19268
19269         while (!$_matched && !$commit)
19270         {
19271                 
19272                 Parse::RecDescent::_trace(q{Trying production: [/NOT|/i predicate, or '(' cond]},
19273                                           Parse::RecDescent::_tracefirst($_[1]),
19274                                           q{search_condition},
19275                                           $tracelevel)
19276                                                 if defined $::RD_TRACE;
19277                 my $thisprod = $thisrule->{"prods"}[1];
19278                 $text = $_[1];
19279                 my $_savetext;
19280                 @item = (q{search_condition});
19281                 %item = (__RULE__ => q{search_condition});
19282                 my $repcount = 0;
19283
19284
19285                 Parse::RecDescent::_trace(q{Trying terminal: [/NOT|/i]}, Parse::RecDescent::_tracefirst($text),
19286                                           q{search_condition},
19287                                           $tracelevel)
19288                                                 if defined $::RD_TRACE;
19289                 $lastsep = "";
19290                 $expectation->is(q{})->at($text);
19291                 
19292
19293                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NOT|)//i)
19294                 {
19295                         
19296                         $expectation->failed();
19297                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
19298                                                   Parse::RecDescent::_tracefirst($text))
19299                                         if defined $::RD_TRACE;
19300
19301                         last;
19302                 }
19303                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19304                                                 . $& . q{])},
19305                                                   Parse::RecDescent::_tracefirst($text))
19306                                         if defined $::RD_TRACE;
19307                 push @item, $item{__PATTERN1__}=$&;
19308                 
19309
19310                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_2_of_rule_search_condition]},
19311                                   Parse::RecDescent::_tracefirst($text),
19312                                   q{search_condition},
19313                                   $tracelevel)
19314                                         if defined $::RD_TRACE;
19315                 if (1) { no strict qw{refs};
19316                 $expectation->is(q{predicate, or '('})->at($text);
19317                 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 })))
19318                 {
19319                         
19320                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_2_of_rule_search_condition]>>},
19321                                                   Parse::RecDescent::_tracefirst($text),
19322                                                   q{search_condition},
19323                                                   $tracelevel)
19324                                                         if defined $::RD_TRACE;
19325                         $expectation->failed();
19326                         last;
19327                 }
19328                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_2_of_rule_search_condition]<< (return value: [}
19329                                         . $_tok . q{]},
19330                                           
19331                                           Parse::RecDescent::_tracefirst($text),
19332                                           q{search_condition},
19333                                           $tracelevel)
19334                                                 if defined $::RD_TRACE;
19335                 $item{q{_alternation_1_of_production_2_of_rule_search_condition}} = $_tok;
19336                 push @item, $_tok;
19337                 
19338                 }
19339
19340                 Parse::RecDescent::_trace(q{Trying repeated subrule: [cond]},
19341                                   Parse::RecDescent::_tracefirst($text),
19342                                   q{search_condition},
19343                                   $tracelevel)
19344                                         if defined $::RD_TRACE;
19345                 $expectation->is(q{cond})->at($text);
19346                 
19347                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cond, 0, 100000000, $_noactions,$expectation,undef))) 
19348                 {
19349                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [cond]>>},
19350                                                   Parse::RecDescent::_tracefirst($text),
19351                                                   q{search_condition},
19352                                                   $tracelevel)
19353                                                         if defined $::RD_TRACE;
19354                         last;
19355                 }
19356                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [cond]<< (}
19357                                         . @$_tok . q{ times)},
19358                                           
19359                                           Parse::RecDescent::_tracefirst($text),
19360                                           q{search_condition},
19361                                           $tracelevel)
19362                                                 if defined $::RD_TRACE;
19363                 $item{q{cond(s?)}} = $_tok;
19364                 push @item, $_tok;
19365                 
19366
19367
19368
19369                 Parse::RecDescent::_trace(q{>>Matched production: [/NOT|/i predicate, or '(' cond]<<},
19370                                           Parse::RecDescent::_tracefirst($text),
19371                                           q{search_condition},
19372                                           $tracelevel)
19373                                                 if defined $::RD_TRACE;
19374                 $_matched = 1;
19375                 last;
19376         }
19377
19378
19379         unless ( $_matched || defined($return) || defined($score) )
19380         {
19381                 
19382
19383                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
19384                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
19385                                          Parse::RecDescent::_tracefirst($_[1]),
19386                                          q{search_condition},
19387                                          $tracelevel)
19388                                         if defined $::RD_TRACE;
19389                 return undef;
19390         }
19391         if (!defined($return) && defined($score))
19392         {
19393                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19394                                           q{search_condition},
19395                                           $tracelevel)
19396                                                 if defined $::RD_TRACE;
19397                 $return = $score_return;
19398         }
19399         splice @{$thisparser->{errors}}, $err_at;
19400         $return = $item[$#item] unless defined $return;
19401         if (defined $::RD_TRACE)
19402         {
19403                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19404                                           $return . q{])}, "",
19405                                           q{search_condition},
19406                                           $tracelevel);
19407                 Parse::RecDescent::_trace(q{(consumed: [} .
19408                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
19409                                           Parse::RecDescent::_tracefirst($text),
19410                                           , q{search_condition},
19411                                           $tracelevel)
19412         }
19413         $_[1] = $text;
19414         return $return;
19415 }
19416
19417 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19418 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_operator
19419 {
19420         my $thisparser = $_[0];
19421         use vars q{$tracelevel};
19422         local $tracelevel = ($tracelevel||0)+1;
19423         $ERRORS = 0;
19424         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_operator"};
19425         
19426         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_operator]},
19427                                   Parse::RecDescent::_tracefirst($_[1]),
19428                                   q{_alternation_1_of_production_1_of_rule_operator},
19429                                   $tracelevel)
19430                                         if defined $::RD_TRACE;
19431
19432         
19433         my $err_at = @{$thisparser->{errors}};
19434
19435         my $score;
19436         my $score_return;
19437         my $_tok;
19438         my $return = undef;
19439         my $_matched=0;
19440         my $commit=0;
19441         my @item = ();
19442         my %item = ();
19443         my $repeating =  defined($_[2]) && $_[2];
19444         my $_noactions = defined($_[3]) && $_[3];
19445         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
19446         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
19447         my $text;
19448         my $lastsep="";
19449         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19450         $expectation->at($_[1]);
19451         
19452         my $thisline;
19453         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19454
19455         
19456
19457         while (!$_matched && !$commit)
19458         {
19459                 
19460                 Parse::RecDescent::_trace(q{Trying production: [/CONCAT/i]},
19461                                           Parse::RecDescent::_tracefirst($_[1]),
19462                                           q{_alternation_1_of_production_1_of_rule_operator},
19463                                           $tracelevel)
19464                                                 if defined $::RD_TRACE;
19465                 my $thisprod = $thisrule->{"prods"}[0];
19466                 $text = $_[1];
19467                 my $_savetext;
19468                 @item = (q{_alternation_1_of_production_1_of_rule_operator});
19469                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_operator});
19470                 my $repcount = 0;
19471
19472
19473                 Parse::RecDescent::_trace(q{Trying terminal: [/CONCAT/i]}, Parse::RecDescent::_tracefirst($text),
19474                                           q{_alternation_1_of_production_1_of_rule_operator},
19475                                           $tracelevel)
19476                                                 if defined $::RD_TRACE;
19477                 $lastsep = "";
19478                 $expectation->is(q{})->at($text);
19479                 
19480
19481                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CONCAT)//i)
19482                 {
19483                         
19484                         $expectation->failed();
19485                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
19486                                                   Parse::RecDescent::_tracefirst($text))
19487                                         if defined $::RD_TRACE;
19488
19489                         last;
19490                 }
19491                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19492                                                 . $& . q{])},
19493                                                   Parse::RecDescent::_tracefirst($text))
19494                                         if defined $::RD_TRACE;
19495                 push @item, $item{__PATTERN1__}=$&;
19496                 
19497
19498
19499                 Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/i]<<},
19500                                           Parse::RecDescent::_tracefirst($text),
19501                                           q{_alternation_1_of_production_1_of_rule_operator},
19502                                           $tracelevel)
19503                                                 if defined $::RD_TRACE;
19504                 $_matched = 1;
19505                 last;
19506         }
19507
19508
19509         while (!$_matched && !$commit)
19510         {
19511                 
19512                 Parse::RecDescent::_trace(q{Trying production: ['||']},
19513                                           Parse::RecDescent::_tracefirst($_[1]),
19514                                           q{_alternation_1_of_production_1_of_rule_operator},
19515                                           $tracelevel)
19516                                                 if defined $::RD_TRACE;
19517                 my $thisprod = $thisrule->{"prods"}[1];
19518                 $text = $_[1];
19519                 my $_savetext;
19520                 @item = (q{_alternation_1_of_production_1_of_rule_operator});
19521                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_operator});
19522                 my $repcount = 0;
19523
19524
19525                 Parse::RecDescent::_trace(q{Trying terminal: ['||']},
19526                                           Parse::RecDescent::_tracefirst($text),
19527                                           q{_alternation_1_of_production_1_of_rule_operator},
19528                                           $tracelevel)
19529                                                 if defined $::RD_TRACE;
19530                 $lastsep = "";
19531                 $expectation->is(q{})->at($text);
19532                 
19533
19534                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\|\|//)
19535                 {
19536                         
19537                         $expectation->failed();
19538                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
19539                                                   Parse::RecDescent::_tracefirst($text))
19540                                                         if defined $::RD_TRACE;
19541                         last;
19542                 }
19543                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19544                                                 . $& . q{])},
19545                                                   Parse::RecDescent::_tracefirst($text))
19546                                                         if defined $::RD_TRACE;
19547                 push @item, $item{__STRING1__}=$&;
19548                 
19549
19550
19551                 Parse::RecDescent::_trace(q{>>Matched production: ['||']<<},
19552                                           Parse::RecDescent::_tracefirst($text),
19553                                           q{_alternation_1_of_production_1_of_rule_operator},
19554                                           $tracelevel)
19555                                                 if defined $::RD_TRACE;
19556                 $_matched = 1;
19557                 last;
19558         }
19559
19560
19561         unless ( $_matched || defined($return) || defined($score) )
19562         {
19563                 
19564
19565                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
19566                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
19567                                          Parse::RecDescent::_tracefirst($_[1]),
19568                                          q{_alternation_1_of_production_1_of_rule_operator},
19569                                          $tracelevel)
19570                                         if defined $::RD_TRACE;
19571                 return undef;
19572         }
19573         if (!defined($return) && defined($score))
19574         {
19575                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19576                                           q{_alternation_1_of_production_1_of_rule_operator},
19577                                           $tracelevel)
19578                                                 if defined $::RD_TRACE;
19579                 $return = $score_return;
19580         }
19581         splice @{$thisparser->{errors}}, $err_at;
19582         $return = $item[$#item] unless defined $return;
19583         if (defined $::RD_TRACE)
19584         {
19585                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19586                                           $return . q{])}, "",
19587                                           q{_alternation_1_of_production_1_of_rule_operator},
19588                                           $tracelevel);
19589                 Parse::RecDescent::_trace(q{(consumed: [} .
19590                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
19591                                           Parse::RecDescent::_tracefirst($text),
19592                                           , q{_alternation_1_of_production_1_of_rule_operator},
19593                                           $tracelevel)
19594         }
19595         $_[1] = $text;
19596         return $return;
19597 }
19598
19599 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19600 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::simple_when_clause
19601 {
19602         my $thisparser = $_[0];
19603         use vars q{$tracelevel};
19604         local $tracelevel = ($tracelevel||0)+1;
19605         $ERRORS = 0;
19606         my $thisrule = $thisparser->{"rules"}{"simple_when_clause"};
19607         
19608         Parse::RecDescent::_trace(q{Trying rule: [simple_when_clause]},
19609                                   Parse::RecDescent::_tracefirst($_[1]),
19610                                   q{simple_when_clause},
19611                                   $tracelevel)
19612                                         if defined $::RD_TRACE;
19613
19614         
19615         my $err_at = @{$thisparser->{errors}};
19616
19617         my $score;
19618         my $score_return;
19619         my $_tok;
19620         my $return = undef;
19621         my $_matched=0;
19622         my $commit=0;
19623         my @item = ();
19624         my %item = ();
19625         my $repeating =  defined($_[2]) && $_[2];
19626         my $_noactions = defined($_[3]) && $_[3];
19627         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
19628         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
19629         my $text;
19630         my $lastsep="";
19631         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19632         $expectation->at($_[1]);
19633         
19634         my $thisline;
19635         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19636
19637         
19638
19639         while (!$_matched && !$commit)
19640         {
19641                 
19642                 Parse::RecDescent::_trace(q{Trying production: [expression /WHEN/i]},
19643                                           Parse::RecDescent::_tracefirst($_[1]),
19644                                           q{simple_when_clause},
19645                                           $tracelevel)
19646                                                 if defined $::RD_TRACE;
19647                 my $thisprod = $thisrule->{"prods"}[0];
19648                 $text = $_[1];
19649                 my $_savetext;
19650                 @item = (q{simple_when_clause});
19651                 %item = (__RULE__ => q{simple_when_clause});
19652                 my $repcount = 0;
19653
19654
19655                 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
19656                                   Parse::RecDescent::_tracefirst($text),
19657                                   q{simple_when_clause},
19658                                   $tracelevel)
19659                                         if defined $::RD_TRACE;
19660                 if (1) { no strict qw{refs};
19661                 $expectation->is(q{})->at($text);
19662                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
19663                 {
19664                         
19665                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
19666                                                   Parse::RecDescent::_tracefirst($text),
19667                                                   q{simple_when_clause},
19668                                                   $tracelevel)
19669                                                         if defined $::RD_TRACE;
19670                         $expectation->failed();
19671                         last;
19672                 }
19673                 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
19674                                         . $_tok . q{]},
19675                                           
19676                                           Parse::RecDescent::_tracefirst($text),
19677                                           q{simple_when_clause},
19678                                           $tracelevel)
19679                                                 if defined $::RD_TRACE;
19680                 $item{q{expression}} = $_tok;
19681                 push @item, $_tok;
19682                 
19683                 }
19684
19685                 Parse::RecDescent::_trace(q{Trying repeated subrule: [/WHEN/i]},
19686                                   Parse::RecDescent::_tracefirst($text),
19687                                   q{simple_when_clause},
19688                                   $tracelevel)
19689                                         if defined $::RD_TRACE;
19690                 $expectation->is(q{/WHEN/i})->at($text);
19691                 
19692                 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))) 
19693                 {
19694                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/WHEN/i]>>},
19695                                                   Parse::RecDescent::_tracefirst($text),
19696                                                   q{simple_when_clause},
19697                                                   $tracelevel)
19698                                                         if defined $::RD_TRACE;
19699                         last;
19700                 }
19701                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_simple_when_clause]<< (}
19702                                         . @$_tok . q{ times)},
19703                                           
19704                                           Parse::RecDescent::_tracefirst($text),
19705                                           q{simple_when_clause},
19706                                           $tracelevel)
19707                                                 if defined $::RD_TRACE;
19708                 $item{q{_alternation_1_of_production_1_of_rule_simple_when_clause(s)}} = $_tok;
19709                 push @item, $_tok;
19710                 
19711
19712
19713
19714                 Parse::RecDescent::_trace(q{>>Matched production: [expression /WHEN/i]<<},
19715                                           Parse::RecDescent::_tracefirst($text),
19716                                           q{simple_when_clause},
19717                                           $tracelevel)
19718                                                 if defined $::RD_TRACE;
19719                 $_matched = 1;
19720                 last;
19721         }
19722
19723
19724         unless ( $_matched || defined($return) || defined($score) )
19725         {
19726                 
19727
19728                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
19729                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
19730                                          Parse::RecDescent::_tracefirst($_[1]),
19731                                          q{simple_when_clause},
19732                                          $tracelevel)
19733                                         if defined $::RD_TRACE;
19734                 return undef;
19735         }
19736         if (!defined($return) && defined($score))
19737         {
19738                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19739                                           q{simple_when_clause},
19740                                           $tracelevel)
19741                                                 if defined $::RD_TRACE;
19742                 $return = $score_return;
19743         }
19744         splice @{$thisparser->{errors}}, $err_at;
19745         $return = $item[$#item] unless defined $return;
19746         if (defined $::RD_TRACE)
19747         {
19748                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19749                                           $return . q{])}, "",
19750                                           q{simple_when_clause},
19751                                           $tracelevel);
19752                 Parse::RecDescent::_trace(q{(consumed: [} .
19753                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
19754                                           Parse::RecDescent::_tracefirst($text),
19755                                           , q{simple_when_clause},
19756                                           $tracelevel)
19757         }
19758         $_[1] = $text;
19759         return $return;
19760 }
19761
19762 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19763 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::INNER
19764 {
19765         my $thisparser = $_[0];
19766         use vars q{$tracelevel};
19767         local $tracelevel = ($tracelevel||0)+1;
19768         $ERRORS = 0;
19769         my $thisrule = $thisparser->{"rules"}{"INNER"};
19770         
19771         Parse::RecDescent::_trace(q{Trying rule: [INNER]},
19772                                   Parse::RecDescent::_tracefirst($_[1]),
19773                                   q{INNER},
19774                                   $tracelevel)
19775                                         if defined $::RD_TRACE;
19776
19777         
19778         my $err_at = @{$thisparser->{errors}};
19779
19780         my $score;
19781         my $score_return;
19782         my $_tok;
19783         my $return = undef;
19784         my $_matched=0;
19785         my $commit=0;
19786         my @item = ();
19787         my %item = ();
19788         my $repeating =  defined($_[2]) && $_[2];
19789         my $_noactions = defined($_[3]) && $_[3];
19790         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
19791         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
19792         my $text;
19793         my $lastsep="";
19794         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19795         $expectation->at($_[1]);
19796         
19797         my $thisline;
19798         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19799
19800         
19801
19802         while (!$_matched && !$commit)
19803         {
19804                 
19805                 Parse::RecDescent::_trace(q{Trying production: [/inner/i]},
19806                                           Parse::RecDescent::_tracefirst($_[1]),
19807                                           q{INNER},
19808                                           $tracelevel)
19809                                                 if defined $::RD_TRACE;
19810                 my $thisprod = $thisrule->{"prods"}[0];
19811                 $text = $_[1];
19812                 my $_savetext;
19813                 @item = (q{INNER});
19814                 %item = (__RULE__ => q{INNER});
19815                 my $repcount = 0;
19816
19817
19818                 Parse::RecDescent::_trace(q{Trying terminal: [/inner/i]}, Parse::RecDescent::_tracefirst($text),
19819                                           q{INNER},
19820                                           $tracelevel)
19821                                                 if defined $::RD_TRACE;
19822                 $lastsep = "";
19823                 $expectation->is(q{})->at($text);
19824                 
19825
19826                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:inner)//i)
19827                 {
19828                         
19829                         $expectation->failed();
19830                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
19831                                                   Parse::RecDescent::_tracefirst($text))
19832                                         if defined $::RD_TRACE;
19833
19834                         last;
19835                 }
19836                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19837                                                 . $& . q{])},
19838                                                   Parse::RecDescent::_tracefirst($text))
19839                                         if defined $::RD_TRACE;
19840                 push @item, $item{__PATTERN1__}=$&;
19841                 
19842
19843
19844                 Parse::RecDescent::_trace(q{>>Matched production: [/inner/i]<<},
19845                                           Parse::RecDescent::_tracefirst($text),
19846                                           q{INNER},
19847                                           $tracelevel)
19848                                                 if defined $::RD_TRACE;
19849                 $_matched = 1;
19850                 last;
19851         }
19852
19853
19854         unless ( $_matched || defined($return) || defined($score) )
19855         {
19856                 
19857
19858                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
19859                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
19860                                          Parse::RecDescent::_tracefirst($_[1]),
19861                                          q{INNER},
19862                                          $tracelevel)
19863                                         if defined $::RD_TRACE;
19864                 return undef;
19865         }
19866         if (!defined($return) && defined($score))
19867         {
19868                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19869                                           q{INNER},
19870                                           $tracelevel)
19871                                                 if defined $::RD_TRACE;
19872                 $return = $score_return;
19873         }
19874         splice @{$thisparser->{errors}}, $err_at;
19875         $return = $item[$#item] unless defined $return;
19876         if (defined $::RD_TRACE)
19877         {
19878                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19879                                           $return . q{])}, "",
19880                                           q{INNER},
19881                                           $tracelevel);
19882                 Parse::RecDescent::_trace(q{(consumed: [} .
19883                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
19884                                           Parse::RecDescent::_tracefirst($text),
19885                                           , q{INNER},
19886                                           $tracelevel)
19887         }
19888         $_[1] = $text;
19889         return $return;
19890 }
19891
19892 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19893 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::eofile
19894 {
19895         my $thisparser = $_[0];
19896         use vars q{$tracelevel};
19897         local $tracelevel = ($tracelevel||0)+1;
19898         $ERRORS = 0;
19899         my $thisrule = $thisparser->{"rules"}{"eofile"};
19900         
19901         Parse::RecDescent::_trace(q{Trying rule: [eofile]},
19902                                   Parse::RecDescent::_tracefirst($_[1]),
19903                                   q{eofile},
19904                                   $tracelevel)
19905                                         if defined $::RD_TRACE;
19906
19907         
19908         my $err_at = @{$thisparser->{errors}};
19909
19910         my $score;
19911         my $score_return;
19912         my $_tok;
19913         my $return = undef;
19914         my $_matched=0;
19915         my $commit=0;
19916         my @item = ();
19917         my %item = ();
19918         my $repeating =  defined($_[2]) && $_[2];
19919         my $_noactions = defined($_[3]) && $_[3];
19920         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
19921         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
19922         my $text;
19923         my $lastsep="";
19924         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19925         $expectation->at($_[1]);
19926         
19927         my $thisline;
19928         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19929
19930         
19931
19932         while (!$_matched && !$commit)
19933         {
19934                 
19935                 Parse::RecDescent::_trace(q{Trying production: [/^\\Z/]},
19936                                           Parse::RecDescent::_tracefirst($_[1]),
19937                                           q{eofile},
19938                                           $tracelevel)
19939                                                 if defined $::RD_TRACE;
19940                 my $thisprod = $thisrule->{"prods"}[0];
19941                 $text = $_[1];
19942                 my $_savetext;
19943                 @item = (q{eofile});
19944                 %item = (__RULE__ => q{eofile});
19945                 my $repcount = 0;
19946
19947
19948                 Parse::RecDescent::_trace(q{Trying terminal: [/^\\Z/]}, Parse::RecDescent::_tracefirst($text),
19949                                           q{eofile},
19950                                           $tracelevel)
19951                                                 if defined $::RD_TRACE;
19952                 $lastsep = "";
19953                 $expectation->is(q{})->at($text);
19954                 
19955
19956                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:^\Z)//)
19957                 {
19958                         
19959                         $expectation->failed();
19960                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
19961                                                   Parse::RecDescent::_tracefirst($text))
19962                                         if defined $::RD_TRACE;
19963
19964                         last;
19965                 }
19966                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19967                                                 . $& . q{])},
19968                                                   Parse::RecDescent::_tracefirst($text))
19969                                         if defined $::RD_TRACE;
19970                 push @item, $item{__PATTERN1__}=$&;
19971                 
19972
19973
19974                 Parse::RecDescent::_trace(q{>>Matched production: [/^\\Z/]<<},
19975                                           Parse::RecDescent::_tracefirst($text),
19976                                           q{eofile},
19977                                           $tracelevel)
19978                                                 if defined $::RD_TRACE;
19979                 $_matched = 1;
19980                 last;
19981         }
19982
19983
19984         unless ( $_matched || defined($return) || defined($score) )
19985         {
19986                 
19987
19988                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
19989                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
19990                                          Parse::RecDescent::_tracefirst($_[1]),
19991                                          q{eofile},
19992                                          $tracelevel)
19993                                         if defined $::RD_TRACE;
19994                 return undef;
19995         }
19996         if (!defined($return) && defined($score))
19997         {
19998                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19999                                           q{eofile},
20000                                           $tracelevel)
20001                                                 if defined $::RD_TRACE;
20002                 $return = $score_return;
20003         }
20004         splice @{$thisparser->{errors}}, $err_at;
20005         $return = $item[$#item] unless defined $return;
20006         if (defined $::RD_TRACE)
20007         {
20008                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20009                                           $return . q{])}, "",
20010                                           q{eofile},
20011                                           $tracelevel);
20012                 Parse::RecDescent::_trace(q{(consumed: [} .
20013                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
20014                                           Parse::RecDescent::_tracefirst($text),
20015                                           , q{eofile},
20016                                           $tracelevel)
20017         }
20018         $_[1] = $text;
20019         return $return;
20020 }
20021
20022 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20023 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cond
20024 {
20025         my $thisparser = $_[0];
20026         use vars q{$tracelevel};
20027         local $tracelevel = ($tracelevel||0)+1;
20028         $ERRORS = 0;
20029         my $thisrule = $thisparser->{"rules"}{"cond"};
20030         
20031         Parse::RecDescent::_trace(q{Trying rule: [cond]},
20032                                   Parse::RecDescent::_tracefirst($_[1]),
20033                                   q{cond},
20034                                   $tracelevel)
20035                                         if defined $::RD_TRACE;
20036
20037         
20038         my $err_at = @{$thisparser->{errors}};
20039
20040         my $score;
20041         my $score_return;
20042         my $_tok;
20043         my $return = undef;
20044         my $_matched=0;
20045         my $commit=0;
20046         my @item = ();
20047         my %item = ();
20048         my $repeating =  defined($_[2]) && $_[2];
20049         my $_noactions = defined($_[3]) && $_[3];
20050         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
20051         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
20052         my $text;
20053         my $lastsep="";
20054         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20055         $expectation->at($_[1]);
20056         
20057         my $thisline;
20058         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20059
20060         
20061
20062         while (!$_matched && !$commit)
20063         {
20064                 
20065                 Parse::RecDescent::_trace(q{Trying production: [/AND/i, or /OR/i /NOT|/i predicate, or '(']},
20066                                           Parse::RecDescent::_tracefirst($_[1]),
20067                                           q{cond},
20068                                           $tracelevel)
20069                                                 if defined $::RD_TRACE;
20070                 my $thisprod = $thisrule->{"prods"}[0];
20071                 $text = $_[1];
20072                 my $_savetext;
20073                 @item = (q{cond});
20074                 %item = (__RULE__ => q{cond});
20075                 my $repcount = 0;
20076
20077
20078                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_cond]},
20079                                   Parse::RecDescent::_tracefirst($text),
20080                                   q{cond},
20081                                   $tracelevel)
20082                                         if defined $::RD_TRACE;
20083                 if (1) { no strict qw{refs};
20084                 $expectation->is(q{})->at($text);
20085                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cond($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20086                 {
20087                         
20088                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_cond]>>},
20089                                                   Parse::RecDescent::_tracefirst($text),
20090                                                   q{cond},
20091                                                   $tracelevel)
20092                                                         if defined $::RD_TRACE;
20093                         $expectation->failed();
20094                         last;
20095                 }
20096                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_cond]<< (return value: [}
20097                                         . $_tok . q{]},
20098                                           
20099                                           Parse::RecDescent::_tracefirst($text),
20100                                           q{cond},
20101                                           $tracelevel)
20102                                                 if defined $::RD_TRACE;
20103                 $item{q{_alternation_1_of_production_1_of_rule_cond}} = $_tok;
20104                 push @item, $_tok;
20105                 
20106                 }
20107
20108                 Parse::RecDescent::_trace(q{Trying terminal: [/NOT|/i]}, Parse::RecDescent::_tracefirst($text),
20109                                           q{cond},
20110                                           $tracelevel)
20111                                                 if defined $::RD_TRACE;
20112                 $lastsep = "";
20113                 $expectation->is(q{/NOT|/i})->at($text);
20114                 
20115
20116                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NOT|)//i)
20117                 {
20118                         
20119                         $expectation->failed();
20120                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
20121                                                   Parse::RecDescent::_tracefirst($text))
20122                                         if defined $::RD_TRACE;
20123
20124                         last;
20125                 }
20126                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20127                                                 . $& . q{])},
20128                                                   Parse::RecDescent::_tracefirst($text))
20129                                         if defined $::RD_TRACE;
20130                 push @item, $item{__PATTERN1__}=$&;
20131                 
20132
20133                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_2_of_production_1_of_rule_cond]},
20134                                   Parse::RecDescent::_tracefirst($text),
20135                                   q{cond},
20136                                   $tracelevel)
20137                                         if defined $::RD_TRACE;
20138                 if (1) { no strict qw{refs};
20139                 $expectation->is(q{predicate, or '('})->at($text);
20140                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cond($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20141                 {
20142                         
20143                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_2_of_production_1_of_rule_cond]>>},
20144                                                   Parse::RecDescent::_tracefirst($text),
20145                                                   q{cond},
20146                                                   $tracelevel)
20147                                                         if defined $::RD_TRACE;
20148                         $expectation->failed();
20149                         last;
20150                 }
20151                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_2_of_production_1_of_rule_cond]<< (return value: [}
20152                                         . $_tok . q{]},
20153                                           
20154                                           Parse::RecDescent::_tracefirst($text),
20155                                           q{cond},
20156                                           $tracelevel)
20157                                                 if defined $::RD_TRACE;
20158                 $item{q{_alternation_2_of_production_1_of_rule_cond}} = $_tok;
20159                 push @item, $_tok;
20160                 
20161                 }
20162
20163
20164                 Parse::RecDescent::_trace(q{>>Matched production: [/AND/i, or /OR/i /NOT|/i predicate, or '(']<<},
20165                                           Parse::RecDescent::_tracefirst($text),
20166                                           q{cond},
20167                                           $tracelevel)
20168                                                 if defined $::RD_TRACE;
20169                 $_matched = 1;
20170                 last;
20171         }
20172
20173
20174         unless ( $_matched || defined($return) || defined($score) )
20175         {
20176                 
20177
20178                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
20179                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
20180                                          Parse::RecDescent::_tracefirst($_[1]),
20181                                          q{cond},
20182                                          $tracelevel)
20183                                         if defined $::RD_TRACE;
20184                 return undef;
20185         }
20186         if (!defined($return) && defined($score))
20187         {
20188                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
20189                                           q{cond},
20190                                           $tracelevel)
20191                                                 if defined $::RD_TRACE;
20192                 $return = $score_return;
20193         }
20194         splice @{$thisparser->{errors}}, $err_at;
20195         $return = $item[$#item] unless defined $return;
20196         if (defined $::RD_TRACE)
20197         {
20198                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20199                                           $return . q{])}, "",
20200                                           q{cond},
20201                                           $tracelevel);
20202                 Parse::RecDescent::_trace(q{(consumed: [} .
20203                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
20204                                           Parse::RecDescent::_tracefirst($text),
20205                                           , q{cond},
20206                                           $tracelevel)
20207         }
20208         $_[1] = $text;
20209         return $return;
20210 }
20211
20212 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20213 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_type
20214 {
20215         my $thisparser = $_[0];
20216         use vars q{$tracelevel};
20217         local $tracelevel = ($tracelevel||0)+1;
20218         $ERRORS = 0;
20219         my $thisrule = $thisparser->{"rules"}{"ld_type"};
20220         
20221         Parse::RecDescent::_trace(q{Trying rule: [ld_type]},
20222                                   Parse::RecDescent::_tracefirst($_[1]),
20223                                   q{ld_type},
20224                                   $tracelevel)
20225                                         if defined $::RD_TRACE;
20226
20227         
20228         my $err_at = @{$thisparser->{errors}};
20229
20230         my $score;
20231         my $score_return;
20232         my $_tok;
20233         my $return = undef;
20234         my $_matched=0;
20235         my $commit=0;
20236         my @item = ();
20237         my %item = ();
20238         my $repeating =  defined($_[2]) && $_[2];
20239         my $_noactions = defined($_[3]) && $_[3];
20240         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
20241         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
20242         my $text;
20243         my $lastsep="";
20244         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20245         $expectation->at($_[1]);
20246         
20247         my $thisline;
20248         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20249
20250         
20251
20252         while (!$_matched && !$commit)
20253         {
20254                 
20255                 Parse::RecDescent::_trace(q{Trying production: [function]},
20256                                           Parse::RecDescent::_tracefirst($_[1]),
20257                                           q{ld_type},
20258                                           $tracelevel)
20259                                                 if defined $::RD_TRACE;
20260                 my $thisprod = $thisrule->{"prods"}[0];
20261                 $text = $_[1];
20262                 my $_savetext;
20263                 @item = (q{ld_type});
20264                 %item = (__RULE__ => q{ld_type});
20265                 my $repcount = 0;
20266
20267
20268                 Parse::RecDescent::_trace(q{Trying subrule: [function]},
20269                                   Parse::RecDescent::_tracefirst($text),
20270                                   q{ld_type},
20271                                   $tracelevel)
20272                                         if defined $::RD_TRACE;
20273                 if (1) { no strict qw{refs};
20274                 $expectation->is(q{})->at($text);
20275                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20276                 {
20277                         
20278                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [function]>>},
20279                                                   Parse::RecDescent::_tracefirst($text),
20280                                                   q{ld_type},
20281                                                   $tracelevel)
20282                                                         if defined $::RD_TRACE;
20283                         $expectation->failed();
20284                         last;
20285                 }
20286                 Parse::RecDescent::_trace(q{>>Matched subrule: [function]<< (return value: [}
20287                                         . $_tok . q{]},
20288                                           
20289                                           Parse::RecDescent::_tracefirst($text),
20290                                           q{ld_type},
20291                                           $tracelevel)
20292                                                 if defined $::RD_TRACE;
20293                 $item{q{function}} = $_tok;
20294                 push @item, $_tok;
20295                 
20296                 }
20297
20298
20299                 Parse::RecDescent::_trace(q{>>Matched production: [function]<<},
20300                                           Parse::RecDescent::_tracefirst($text),
20301                                           q{ld_type},
20302                                           $tracelevel)
20303                                                 if defined $::RD_TRACE;
20304                 $_matched = 1;
20305                 last;
20306         }
20307
20308
20309         while (!$_matched && !$commit)
20310         {
20311                 
20312                 Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
20313                                           Parse::RecDescent::_tracefirst($_[1]),
20314                                           q{ld_type},
20315                                           $tracelevel)
20316                                                 if defined $::RD_TRACE;
20317                 my $thisprod = $thisrule->{"prods"}[1];
20318                 $text = $_[1];
20319                 my $_savetext;
20320                 @item = (q{ld_type});
20321                 %item = (__RULE__ => q{ld_type});
20322                 my $repcount = 0;
20323
20324
20325                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
20326                                           Parse::RecDescent::_tracefirst($text),
20327                                           q{ld_type},
20328                                           $tracelevel)
20329                                                 if defined $::RD_TRACE;
20330                 $lastsep = "";
20331                 $expectation->is(q{})->at($text);
20332                 
20333
20334                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
20335                 {
20336                         
20337                         $expectation->failed();
20338                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
20339                                                   Parse::RecDescent::_tracefirst($text))
20340                                                         if defined $::RD_TRACE;
20341                         last;
20342                 }
20343                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20344                                                 . $& . q{])},
20345                                                   Parse::RecDescent::_tracefirst($text))
20346                                                         if defined $::RD_TRACE;
20347                 push @item, $item{__STRING1__}=$&;
20348                 
20349
20350                 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
20351                                   Parse::RecDescent::_tracefirst($text),
20352                                   q{ld_type},
20353                                   $tracelevel)
20354                                         if defined $::RD_TRACE;
20355                 if (1) { no strict qw{refs};
20356                 $expectation->is(q{expression})->at($text);
20357                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20358                 {
20359                         
20360                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
20361                                                   Parse::RecDescent::_tracefirst($text),
20362                                                   q{ld_type},
20363                                                   $tracelevel)
20364                                                         if defined $::RD_TRACE;
20365                         $expectation->failed();
20366                         last;
20367                 }
20368                 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
20369                                         . $_tok . q{]},
20370                                           
20371                                           Parse::RecDescent::_tracefirst($text),
20372                                           q{ld_type},
20373                                           $tracelevel)
20374                                                 if defined $::RD_TRACE;
20375                 $item{q{expression}} = $_tok;
20376                 push @item, $_tok;
20377                 
20378                 }
20379
20380                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
20381                                           Parse::RecDescent::_tracefirst($text),
20382                                           q{ld_type},
20383                                           $tracelevel)
20384                                                 if defined $::RD_TRACE;
20385                 $lastsep = "";
20386                 $expectation->is(q{')'})->at($text);
20387                 
20388
20389                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
20390                 {
20391                         
20392                         $expectation->failed();
20393                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
20394                                                   Parse::RecDescent::_tracefirst($text))
20395                                                         if defined $::RD_TRACE;
20396                         last;
20397                 }
20398                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20399                                                 . $& . q{])},
20400                                                   Parse::RecDescent::_tracefirst($text))
20401                                                         if defined $::RD_TRACE;
20402                 push @item, $item{__STRING2__}=$&;
20403                 
20404
20405
20406                 Parse::RecDescent::_trace(q{>>Matched production: ['(' expression ')']<<},
20407                                           Parse::RecDescent::_tracefirst($text),
20408                                           q{ld_type},
20409                                           $tracelevel)
20410                                                 if defined $::RD_TRACE;
20411                 $_matched = 1;
20412                 last;
20413         }
20414
20415
20416         while (!$_matched && !$commit)
20417         {
20418                 
20419                 Parse::RecDescent::_trace(q{Trying production: [constant]},
20420                                           Parse::RecDescent::_tracefirst($_[1]),
20421                                           q{ld_type},
20422                                           $tracelevel)
20423                                                 if defined $::RD_TRACE;
20424                 my $thisprod = $thisrule->{"prods"}[2];
20425                 $text = $_[1];
20426                 my $_savetext;
20427                 @item = (q{ld_type});
20428                 %item = (__RULE__ => q{ld_type});
20429                 my $repcount = 0;
20430
20431
20432                 Parse::RecDescent::_trace(q{Trying subrule: [constant]},
20433                                   Parse::RecDescent::_tracefirst($text),
20434                                   q{ld_type},
20435                                   $tracelevel)
20436                                         if defined $::RD_TRACE;
20437                 if (1) { no strict qw{refs};
20438                 $expectation->is(q{})->at($text);
20439                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20440                 {
20441                         
20442                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [constant]>>},
20443                                                   Parse::RecDescent::_tracefirst($text),
20444                                                   q{ld_type},
20445                                                   $tracelevel)
20446                                                         if defined $::RD_TRACE;
20447                         $expectation->failed();
20448                         last;
20449                 }
20450                 Parse::RecDescent::_trace(q{>>Matched subrule: [constant]<< (return value: [}
20451                                         . $_tok . q{]},
20452                                           
20453                                           Parse::RecDescent::_tracefirst($text),
20454                                           q{ld_type},
20455                                           $tracelevel)
20456                                                 if defined $::RD_TRACE;
20457                 $item{q{constant}} = $_tok;
20458                 push @item, $_tok;
20459                 
20460                 }
20461
20462
20463                 Parse::RecDescent::_trace(q{>>Matched production: [constant]<<},
20464                                           Parse::RecDescent::_tracefirst($text),
20465                                           q{ld_type},
20466                                           $tracelevel)
20467                                                 if defined $::RD_TRACE;
20468                 $_matched = 1;
20469                 last;
20470         }
20471
20472
20473         while (!$_matched && !$commit)
20474         {
20475                 
20476                 Parse::RecDescent::_trace(q{Trying production: [column_name]},
20477                                           Parse::RecDescent::_tracefirst($_[1]),
20478                                           q{ld_type},
20479                                           $tracelevel)
20480                                                 if defined $::RD_TRACE;
20481                 my $thisprod = $thisrule->{"prods"}[3];
20482                 $text = $_[1];
20483                 my $_savetext;
20484                 @item = (q{ld_type});
20485                 %item = (__RULE__ => q{ld_type});
20486                 my $repcount = 0;
20487
20488
20489                 Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
20490                                   Parse::RecDescent::_tracefirst($text),
20491                                   q{ld_type},
20492                                   $tracelevel)
20493                                         if defined $::RD_TRACE;
20494                 if (1) { no strict qw{refs};
20495                 $expectation->is(q{})->at($text);
20496                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20497                 {
20498                         
20499                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
20500                                                   Parse::RecDescent::_tracefirst($text),
20501                                                   q{ld_type},
20502                                                   $tracelevel)
20503                                                         if defined $::RD_TRACE;
20504                         $expectation->failed();
20505                         last;
20506                 }
20507                 Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
20508                                         . $_tok . q{]},
20509                                           
20510                                           Parse::RecDescent::_tracefirst($text),
20511                                           q{ld_type},
20512                                           $tracelevel)
20513                                                 if defined $::RD_TRACE;
20514                 $item{q{column_name}} = $_tok;
20515                 push @item, $_tok;
20516                 
20517                 }
20518
20519
20520                 Parse::RecDescent::_trace(q{>>Matched production: [column_name]<<},
20521                                           Parse::RecDescent::_tracefirst($text),
20522                                           q{ld_type},
20523                                           $tracelevel)
20524                                                 if defined $::RD_TRACE;
20525                 $_matched = 1;
20526                 last;
20527         }
20528
20529
20530         while (!$_matched && !$commit)
20531         {
20532                 
20533                 Parse::RecDescent::_trace(q{Trying production: [host_variable]},
20534                                           Parse::RecDescent::_tracefirst($_[1]),
20535                                           q{ld_type},
20536                                           $tracelevel)
20537                                                 if defined $::RD_TRACE;
20538                 my $thisprod = $thisrule->{"prods"}[4];
20539                 $text = $_[1];
20540                 my $_savetext;
20541                 @item = (q{ld_type});
20542                 %item = (__RULE__ => q{ld_type});
20543                 my $repcount = 0;
20544
20545
20546                 Parse::RecDescent::_trace(q{Trying subrule: [host_variable]},
20547                                   Parse::RecDescent::_tracefirst($text),
20548                                   q{ld_type},
20549                                   $tracelevel)
20550                                         if defined $::RD_TRACE;
20551                 if (1) { no strict qw{refs};
20552                 $expectation->is(q{})->at($text);
20553                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::host_variable($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20554                 {
20555                         
20556                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [host_variable]>>},
20557                                                   Parse::RecDescent::_tracefirst($text),
20558                                                   q{ld_type},
20559                                                   $tracelevel)
20560                                                         if defined $::RD_TRACE;
20561                         $expectation->failed();
20562                         last;
20563                 }
20564                 Parse::RecDescent::_trace(q{>>Matched subrule: [host_variable]<< (return value: [}
20565                                         . $_tok . q{]},
20566                                           
20567                                           Parse::RecDescent::_tracefirst($text),
20568                                           q{ld_type},
20569                                           $tracelevel)
20570                                                 if defined $::RD_TRACE;
20571                 $item{q{host_variable}} = $_tok;
20572                 push @item, $_tok;
20573                 
20574                 }
20575
20576
20577                 Parse::RecDescent::_trace(q{>>Matched production: [host_variable]<<},
20578                                           Parse::RecDescent::_tracefirst($text),
20579                                           q{ld_type},
20580                                           $tracelevel)
20581                                                 if defined $::RD_TRACE;
20582                 $_matched = 1;
20583                 last;
20584         }
20585
20586
20587         unless ( $_matched || defined($return) || defined($score) )
20588         {
20589                 
20590
20591                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
20592                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
20593                                          Parse::RecDescent::_tracefirst($_[1]),
20594                                          q{ld_type},
20595                                          $tracelevel)
20596                                         if defined $::RD_TRACE;
20597                 return undef;
20598         }
20599         if (!defined($return) && defined($score))
20600         {
20601                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
20602                                           q{ld_type},
20603                                           $tracelevel)
20604                                                 if defined $::RD_TRACE;
20605                 $return = $score_return;
20606         }
20607         splice @{$thisparser->{errors}}, $err_at;
20608         $return = $item[$#item] unless defined $return;
20609         if (defined $::RD_TRACE)
20610         {
20611                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20612                                           $return . q{])}, "",
20613                                           q{ld_type},
20614                                           $tracelevel);
20615                 Parse::RecDescent::_trace(q{(consumed: [} .
20616                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
20617                                           Parse::RecDescent::_tracefirst($text),
20618                                           , q{ld_type},
20619                                           $tracelevel)
20620         }
20621         $_[1] = $text;
20622         return $return;
20623 }
20624
20625 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20626 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::RIGHT
20627 {
20628         my $thisparser = $_[0];
20629         use vars q{$tracelevel};
20630         local $tracelevel = ($tracelevel||0)+1;
20631         $ERRORS = 0;
20632         my $thisrule = $thisparser->{"rules"}{"RIGHT"};
20633         
20634         Parse::RecDescent::_trace(q{Trying rule: [RIGHT]},
20635                                   Parse::RecDescent::_tracefirst($_[1]),
20636                                   q{RIGHT},
20637                                   $tracelevel)
20638                                         if defined $::RD_TRACE;
20639
20640         
20641         my $err_at = @{$thisparser->{errors}};
20642
20643         my $score;
20644         my $score_return;
20645         my $_tok;
20646         my $return = undef;
20647         my $_matched=0;
20648         my $commit=0;
20649         my @item = ();
20650         my %item = ();
20651         my $repeating =  defined($_[2]) && $_[2];
20652         my $_noactions = defined($_[3]) && $_[3];
20653         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
20654         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
20655         my $text;
20656         my $lastsep="";
20657         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20658         $expectation->at($_[1]);
20659         
20660         my $thisline;
20661         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20662
20663         
20664
20665         while (!$_matched && !$commit)
20666         {
20667                 
20668                 Parse::RecDescent::_trace(q{Trying production: [/right/i]},
20669                                           Parse::RecDescent::_tracefirst($_[1]),
20670                                           q{RIGHT},
20671                                           $tracelevel)
20672                                                 if defined $::RD_TRACE;
20673                 my $thisprod = $thisrule->{"prods"}[0];
20674                 $text = $_[1];
20675                 my $_savetext;
20676                 @item = (q{RIGHT});
20677                 %item = (__RULE__ => q{RIGHT});
20678                 my $repcount = 0;
20679
20680
20681                 Parse::RecDescent::_trace(q{Trying terminal: [/right/i]}, Parse::RecDescent::_tracefirst($text),
20682                                           q{RIGHT},
20683                                           $tracelevel)
20684                                                 if defined $::RD_TRACE;
20685                 $lastsep = "";
20686                 $expectation->is(q{})->at($text);
20687                 
20688
20689                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:right)//i)
20690                 {
20691                         
20692                         $expectation->failed();
20693                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
20694                                                   Parse::RecDescent::_tracefirst($text))
20695                                         if defined $::RD_TRACE;
20696
20697                         last;
20698                 }
20699                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20700                                                 . $& . q{])},
20701                                                   Parse::RecDescent::_tracefirst($text))
20702                                         if defined $::RD_TRACE;
20703                 push @item, $item{__PATTERN1__}=$&;
20704                 
20705
20706
20707                 Parse::RecDescent::_trace(q{>>Matched production: [/right/i]<<},
20708                                           Parse::RecDescent::_tracefirst($text),
20709                                           q{RIGHT},
20710                                           $tracelevel)
20711                                                 if defined $::RD_TRACE;
20712                 $_matched = 1;
20713                 last;
20714         }
20715
20716
20717         unless ( $_matched || defined($return) || defined($score) )
20718         {
20719                 
20720
20721                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
20722                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
20723                                          Parse::RecDescent::_tracefirst($_[1]),
20724                                          q{RIGHT},
20725                                          $tracelevel)
20726                                         if defined $::RD_TRACE;
20727                 return undef;
20728         }
20729         if (!defined($return) && defined($score))
20730         {
20731                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
20732                                           q{RIGHT},
20733                                           $tracelevel)
20734                                                 if defined $::RD_TRACE;
20735                 $return = $score_return;
20736         }
20737         splice @{$thisparser->{errors}}, $err_at;
20738         $return = $item[$#item] unless defined $return;
20739         if (defined $::RD_TRACE)
20740         {
20741                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20742                                           $return . q{])}, "",
20743                                           q{RIGHT},
20744                                           $tracelevel);
20745                 Parse::RecDescent::_trace(q{(consumed: [} .
20746                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
20747                                           Parse::RecDescent::_tracefirst($text),
20748                                           , q{RIGHT},
20749                                           $tracelevel)
20750         }
20751         $_[1] = $text;
20752         return $return;
20753 }
20754
20755 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20756 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_method_invocation
20757 {
20758         my $thisparser = $_[0];
20759         use vars q{$tracelevel};
20760         local $tracelevel = ($tracelevel||0)+1;
20761         $ERRORS = 0;
20762         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_method_invocation"};
20763         
20764         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_method_invocation]},
20765                                   Parse::RecDescent::_tracefirst($_[1]),
20766                                   q{_alternation_1_of_production_1_of_rule_method_invocation},
20767                                   $tracelevel)
20768                                         if defined $::RD_TRACE;
20769
20770         
20771         my $err_at = @{$thisparser->{errors}};
20772
20773         my $score;
20774         my $score_return;
20775         my $_tok;
20776         my $return = undef;
20777         my $_matched=0;
20778         my $commit=0;
20779         my @item = ();
20780         my %item = ();
20781         my $repeating =  defined($_[2]) && $_[2];
20782         my $_noactions = defined($_[3]) && $_[3];
20783         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
20784         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
20785         my $text;
20786         my $lastsep="";
20787         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20788         $expectation->at($_[1]);
20789         
20790         my $thisline;
20791         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20792
20793         
20794
20795         while (!$_matched && !$commit)
20796         {
20797                 
20798                 Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
20799                                           Parse::RecDescent::_tracefirst($_[1]),
20800                                           q{_alternation_1_of_production_1_of_rule_method_invocation},
20801                                           $tracelevel)
20802                                                 if defined $::RD_TRACE;
20803                 my $thisprod = $thisrule->{"prods"}[0];
20804                 $text = $_[1];
20805                 my $_savetext;
20806                 @item = (q{_alternation_1_of_production_1_of_rule_method_invocation});
20807                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_method_invocation});
20808                 my $repcount = 0;
20809
20810
20811                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
20812                                           Parse::RecDescent::_tracefirst($text),
20813                                           q{_alternation_1_of_production_1_of_rule_method_invocation},
20814                                           $tracelevel)
20815                                                 if defined $::RD_TRACE;
20816                 $lastsep = "";
20817                 $expectation->is(q{})->at($text);
20818                 
20819
20820                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
20821                 {
20822                         
20823                         $expectation->failed();
20824                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
20825                                                   Parse::RecDescent::_tracefirst($text))
20826                                                         if defined $::RD_TRACE;
20827                         last;
20828                 }
20829                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20830                                                 . $& . q{])},
20831                                                   Parse::RecDescent::_tracefirst($text))
20832                                                         if defined $::RD_TRACE;
20833                 push @item, $item{__STRING1__}=$&;
20834                 
20835
20836                 Parse::RecDescent::_trace(q{Trying repeated subrule: [expression]},
20837                                   Parse::RecDescent::_tracefirst($text),
20838                                   q{_alternation_1_of_production_1_of_rule_method_invocation},
20839                                   $tracelevel)
20840                                         if defined $::RD_TRACE;
20841                 $expectation->is(q{expression})->at($text);
20842                 
20843                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression, 1, 100000000, $_noactions,$expectation,undef))) 
20844                 {
20845                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [expression]>>},
20846                                                   Parse::RecDescent::_tracefirst($text),
20847                                                   q{_alternation_1_of_production_1_of_rule_method_invocation},
20848                                                   $tracelevel)
20849                                                         if defined $::RD_TRACE;
20850                         last;
20851                 }
20852                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [expression]<< (}
20853                                         . @$_tok . q{ times)},
20854                                           
20855                                           Parse::RecDescent::_tracefirst($text),
20856                                           q{_alternation_1_of_production_1_of_rule_method_invocation},
20857                                           $tracelevel)
20858                                                 if defined $::RD_TRACE;
20859                 $item{q{expression(s)}} = $_tok;
20860                 push @item, $_tok;
20861                 
20862
20863
20864                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
20865                                           Parse::RecDescent::_tracefirst($text),
20866                                           q{_alternation_1_of_production_1_of_rule_method_invocation},
20867                                           $tracelevel)
20868                                                 if defined $::RD_TRACE;
20869                 $lastsep = "";
20870                 $expectation->is(q{')'})->at($text);
20871                 
20872
20873                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
20874                 {
20875                         
20876                         $expectation->failed();
20877                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
20878                                                   Parse::RecDescent::_tracefirst($text))
20879                                                         if defined $::RD_TRACE;
20880                         last;
20881                 }
20882                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20883                                                 . $& . q{])},
20884                                                   Parse::RecDescent::_tracefirst($text))
20885                                                         if defined $::RD_TRACE;
20886                 push @item, $item{__STRING2__}=$&;
20887                 
20888
20889
20890                 Parse::RecDescent::_trace(q{>>Matched production: ['(' expression ')']<<},
20891                                           Parse::RecDescent::_tracefirst($text),
20892                                           q{_alternation_1_of_production_1_of_rule_method_invocation},
20893                                           $tracelevel)
20894                                                 if defined $::RD_TRACE;
20895                 $_matched = 1;
20896                 last;
20897         }
20898
20899
20900         unless ( $_matched || defined($return) || defined($score) )
20901         {
20902                 
20903
20904                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
20905                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
20906                                          Parse::RecDescent::_tracefirst($_[1]),
20907                                          q{_alternation_1_of_production_1_of_rule_method_invocation},
20908                                          $tracelevel)
20909                                         if defined $::RD_TRACE;
20910                 return undef;
20911         }
20912         if (!defined($return) && defined($score))
20913         {
20914                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
20915                                           q{_alternation_1_of_production_1_of_rule_method_invocation},
20916                                           $tracelevel)
20917                                                 if defined $::RD_TRACE;
20918                 $return = $score_return;
20919         }
20920         splice @{$thisparser->{errors}}, $err_at;
20921         $return = $item[$#item] unless defined $return;
20922         if (defined $::RD_TRACE)
20923         {
20924                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20925                                           $return . q{])}, "",
20926                                           q{_alternation_1_of_production_1_of_rule_method_invocation},
20927                                           $tracelevel);
20928                 Parse::RecDescent::_trace(q{(consumed: [} .
20929                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
20930                                           Parse::RecDescent::_tracefirst($text),
20931                                           , q{_alternation_1_of_production_1_of_rule_method_invocation},
20932                                           $tracelevel)
20933         }
20934         $_[1] = $text;
20935         return $return;
20936 }
20937
20938 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20939 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::LEFT
20940 {
20941         my $thisparser = $_[0];
20942         use vars q{$tracelevel};
20943         local $tracelevel = ($tracelevel||0)+1;
20944         $ERRORS = 0;
20945         my $thisrule = $thisparser->{"rules"}{"LEFT"};
20946         
20947         Parse::RecDescent::_trace(q{Trying rule: [LEFT]},
20948                                   Parse::RecDescent::_tracefirst($_[1]),
20949                                   q{LEFT},
20950                                   $tracelevel)
20951                                         if defined $::RD_TRACE;
20952
20953         
20954         my $err_at = @{$thisparser->{errors}};
20955
20956         my $score;
20957         my $score_return;
20958         my $_tok;
20959         my $return = undef;
20960         my $_matched=0;
20961         my $commit=0;
20962         my @item = ();
20963         my %item = ();
20964         my $repeating =  defined($_[2]) && $_[2];
20965         my $_noactions = defined($_[3]) && $_[3];
20966         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
20967         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
20968         my $text;
20969         my $lastsep="";
20970         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20971         $expectation->at($_[1]);
20972         
20973         my $thisline;
20974         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20975
20976         
20977
20978         while (!$_matched && !$commit)
20979         {
20980                 
20981                 Parse::RecDescent::_trace(q{Trying production: [/left/i]},
20982                                           Parse::RecDescent::_tracefirst($_[1]),
20983                                           q{LEFT},
20984                                           $tracelevel)
20985                                                 if defined $::RD_TRACE;
20986                 my $thisprod = $thisrule->{"prods"}[0];
20987                 $text = $_[1];
20988                 my $_savetext;
20989                 @item = (q{LEFT});
20990                 %item = (__RULE__ => q{LEFT});
20991                 my $repcount = 0;
20992
20993
20994                 Parse::RecDescent::_trace(q{Trying terminal: [/left/i]}, Parse::RecDescent::_tracefirst($text),
20995                                           q{LEFT},
20996                                           $tracelevel)
20997                                                 if defined $::RD_TRACE;
20998                 $lastsep = "";
20999                 $expectation->is(q{})->at($text);
21000                 
21001
21002                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:left)//i)
21003                 {
21004                         
21005                         $expectation->failed();
21006                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
21007                                                   Parse::RecDescent::_tracefirst($text))
21008                                         if defined $::RD_TRACE;
21009
21010                         last;
21011                 }
21012                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21013                                                 . $& . q{])},
21014                                                   Parse::RecDescent::_tracefirst($text))
21015                                         if defined $::RD_TRACE;
21016                 push @item, $item{__PATTERN1__}=$&;
21017                 
21018
21019
21020                 Parse::RecDescent::_trace(q{>>Matched production: [/left/i]<<},
21021                                           Parse::RecDescent::_tracefirst($text),
21022                                           q{LEFT},
21023                                           $tracelevel)
21024                                                 if defined $::RD_TRACE;
21025                 $_matched = 1;
21026                 last;
21027         }
21028
21029
21030         unless ( $_matched || defined($return) || defined($score) )
21031         {
21032                 
21033
21034                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
21035                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
21036                                          Parse::RecDescent::_tracefirst($_[1]),
21037                                          q{LEFT},
21038                                          $tracelevel)
21039                                         if defined $::RD_TRACE;
21040                 return undef;
21041         }
21042         if (!defined($return) && defined($score))
21043         {
21044                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
21045                                           q{LEFT},
21046                                           $tracelevel)
21047                                                 if defined $::RD_TRACE;
21048                 $return = $score_return;
21049         }
21050         splice @{$thisparser->{errors}}, $err_at;
21051         $return = $item[$#item] unless defined $return;
21052         if (defined $::RD_TRACE)
21053         {
21054                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
21055                                           $return . q{])}, "",
21056                                           q{LEFT},
21057                                           $tracelevel);
21058                 Parse::RecDescent::_trace(q{(consumed: [} .
21059                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
21060                                           Parse::RecDescent::_tracefirst($text),
21061                                           , q{LEFT},
21062                                           $tracelevel)
21063         }
21064         $_[1] = $text;
21065         return $return;
21066 }
21067
21068 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
21069 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name
21070 {
21071         my $thisparser = $_[0];
21072         use vars q{$tracelevel};
21073         local $tracelevel = ($tracelevel||0)+1;
21074         $ERRORS = 0;
21075         my $thisrule = $thisparser->{"rules"}{"table_name"};
21076         
21077         Parse::RecDescent::_trace(q{Trying rule: [table_name]},
21078                                   Parse::RecDescent::_tracefirst($_[1]),
21079                                   q{table_name},
21080                                   $tracelevel)
21081                                         if defined $::RD_TRACE;
21082
21083         
21084         my $err_at = @{$thisparser->{errors}};
21085
21086         my $score;
21087         my $score_return;
21088         my $_tok;
21089         my $return = undef;
21090         my $_matched=0;
21091         my $commit=0;
21092         my @item = ();
21093         my %item = ();
21094         my $repeating =  defined($_[2]) && $_[2];
21095         my $_noactions = defined($_[3]) && $_[3];
21096         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
21097         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
21098         my $text;
21099         my $lastsep="";
21100         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
21101         $expectation->at($_[1]);
21102         
21103         my $thisline;
21104         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
21105
21106         
21107
21108         while (!$_matched && !$commit)
21109         {
21110                 
21111                 Parse::RecDescent::_trace(q{Trying production: [SCHEMA '.' NAME]},
21112                                           Parse::RecDescent::_tracefirst($_[1]),
21113                                           q{table_name},
21114                                           $tracelevel)
21115                                                 if defined $::RD_TRACE;
21116                 my $thisprod = $thisrule->{"prods"}[0];
21117                 $text = $_[1];
21118                 my $_savetext;
21119                 @item = (q{table_name});
21120                 %item = (__RULE__ => q{table_name});
21121                 my $repcount = 0;
21122
21123
21124                 Parse::RecDescent::_trace(q{Trying subrule: [SCHEMA]},
21125                                   Parse::RecDescent::_tracefirst($text),
21126                                   q{table_name},
21127                                   $tracelevel)
21128                                         if defined $::RD_TRACE;
21129                 if (1) { no strict qw{refs};
21130                 $expectation->is(q{})->at($text);
21131                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21132                 {
21133                         
21134                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [SCHEMA]>>},
21135                                                   Parse::RecDescent::_tracefirst($text),
21136                                                   q{table_name},
21137                                                   $tracelevel)
21138                                                         if defined $::RD_TRACE;
21139                         $expectation->failed();
21140                         last;
21141                 }
21142                 Parse::RecDescent::_trace(q{>>Matched subrule: [SCHEMA]<< (return value: [}
21143                                         . $_tok . q{]},
21144                                           
21145                                           Parse::RecDescent::_tracefirst($text),
21146                                           q{table_name},
21147                                           $tracelevel)
21148                                                 if defined $::RD_TRACE;
21149                 $item{q{SCHEMA}} = $_tok;
21150                 push @item, $_tok;
21151                 
21152                 }
21153
21154                 Parse::RecDescent::_trace(q{Trying terminal: ['.']},
21155                                           Parse::RecDescent::_tracefirst($text),
21156                                           q{table_name},
21157                                           $tracelevel)
21158                                                 if defined $::RD_TRACE;
21159                 $lastsep = "";
21160                 $expectation->is(q{'.'})->at($text);
21161                 
21162
21163                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\.//)
21164                 {
21165                         
21166                         $expectation->failed();
21167                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
21168                                                   Parse::RecDescent::_tracefirst($text))
21169                                                         if defined $::RD_TRACE;
21170                         last;
21171                 }
21172                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21173                                                 . $& . q{])},
21174                                                   Parse::RecDescent::_tracefirst($text))
21175                                                         if defined $::RD_TRACE;
21176                 push @item, $item{__STRING1__}=$&;
21177                 
21178
21179                 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
21180                                   Parse::RecDescent::_tracefirst($text),
21181                                   q{table_name},
21182                                   $tracelevel)
21183                                         if defined $::RD_TRACE;
21184                 if (1) { no strict qw{refs};
21185                 $expectation->is(q{NAME})->at($text);
21186                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21187                 {
21188                         
21189                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
21190                                                   Parse::RecDescent::_tracefirst($text),
21191                                                   q{table_name},
21192                                                   $tracelevel)
21193                                                         if defined $::RD_TRACE;
21194                         $expectation->failed();
21195                         last;
21196                 }
21197                 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
21198                                         . $_tok . q{]},
21199                                           
21200                                           Parse::RecDescent::_tracefirst($text),
21201                                           q{table_name},
21202                                           $tracelevel)
21203                                                 if defined $::RD_TRACE;
21204                 $item{q{NAME}} = $_tok;
21205                 push @item, $_tok;
21206                 
21207                 }
21208
21209                 Parse::RecDescent::_trace(q{Trying action},
21210                                           Parse::RecDescent::_tracefirst($text),
21211                                           q{table_name},
21212                                           $tracelevel)
21213                                                 if defined $::RD_TRACE;
21214                 
21215
21216                 $_tok = ($_noactions) ? 0 : do { $return = { schema => $item[1], name => $item[3] } };
21217                 unless (defined $_tok)
21218                 {
21219                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
21220                                         if defined $::RD_TRACE;
21221                         last;
21222                 }
21223                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
21224                                           . $_tok . q{])},
21225                                           Parse::RecDescent::_tracefirst($text))
21226                                                 if defined $::RD_TRACE;
21227                 push @item, $_tok;
21228                 $item{__ACTION1__}=$_tok;
21229                 
21230
21231
21232                 Parse::RecDescent::_trace(q{>>Matched production: [SCHEMA '.' NAME]<<},
21233                                           Parse::RecDescent::_tracefirst($text),
21234                                           q{table_name},
21235                                           $tracelevel)
21236                                                 if defined $::RD_TRACE;
21237                 $_matched = 1;
21238                 last;
21239         }
21240
21241
21242         while (!$_matched && !$commit)
21243         {
21244                 
21245                 Parse::RecDescent::_trace(q{Trying production: [NAME]},
21246                                           Parse::RecDescent::_tracefirst($_[1]),
21247                                           q{table_name},
21248                                           $tracelevel)
21249                                                 if defined $::RD_TRACE;
21250                 my $thisprod = $thisrule->{"prods"}[1];
21251                 $text = $_[1];
21252                 my $_savetext;
21253                 @item = (q{table_name});
21254                 %item = (__RULE__ => q{table_name});
21255                 my $repcount = 0;
21256
21257
21258                 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
21259                                   Parse::RecDescent::_tracefirst($text),
21260                                   q{table_name},
21261                                   $tracelevel)
21262                                         if defined $::RD_TRACE;
21263                 if (1) { no strict qw{refs};
21264                 $expectation->is(q{})->at($text);
21265                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21266                 {
21267                         
21268                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
21269                                                   Parse::RecDescent::_tracefirst($text),
21270                                                   q{table_name},
21271                                                   $tracelevel)
21272                                                         if defined $::RD_TRACE;
21273                         $expectation->failed();
21274                         last;
21275                 }
21276                 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
21277                                         . $_tok . q{]},
21278                                           
21279                                           Parse::RecDescent::_tracefirst($text),
21280                                           q{table_name},
21281                                           $tracelevel)
21282                                                 if defined $::RD_TRACE;
21283                 $item{q{NAME}} = $_tok;
21284                 push @item, $_tok;
21285                 
21286                 }
21287
21288                 Parse::RecDescent::_trace(q{Trying action},
21289                                           Parse::RecDescent::_tracefirst($text),
21290                                           q{table_name},
21291                                           $tracelevel)
21292                                                 if defined $::RD_TRACE;
21293                 
21294
21295                 $_tok = ($_noactions) ? 0 : do { $return = { name => $item[1] } };
21296                 unless (defined $_tok)
21297                 {
21298                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
21299                                         if defined $::RD_TRACE;
21300                         last;
21301                 }
21302                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
21303                                           . $_tok . q{])},
21304                                           Parse::RecDescent::_tracefirst($text))
21305                                                 if defined $::RD_TRACE;
21306                 push @item, $_tok;
21307                 $item{__ACTION1__}=$_tok;
21308                 
21309
21310
21311                 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
21312                                           Parse::RecDescent::_tracefirst($text),
21313                                           q{table_name},
21314                                           $tracelevel)
21315                                                 if defined $::RD_TRACE;
21316                 $_matched = 1;
21317                 last;
21318         }
21319
21320
21321         unless ( $_matched || defined($return) || defined($score) )
21322         {
21323                 
21324
21325                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
21326                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
21327                                          Parse::RecDescent::_tracefirst($_[1]),
21328                                          q{table_name},
21329                                          $tracelevel)
21330                                         if defined $::RD_TRACE;
21331                 return undef;
21332         }
21333         if (!defined($return) && defined($score))
21334         {
21335                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
21336                                           q{table_name},
21337                                           $tracelevel)
21338                                                 if defined $::RD_TRACE;
21339                 $return = $score_return;
21340         }
21341         splice @{$thisparser->{errors}}, $err_at;
21342         $return = $item[$#item] unless defined $return;
21343         if (defined $::RD_TRACE)
21344         {
21345                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
21346                                           $return . q{])}, "",
21347                                           q{table_name},
21348                                           $tracelevel);
21349                 Parse::RecDescent::_trace(q{(consumed: [} .
21350                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
21351                                           Parse::RecDescent::_tracefirst($text),
21352                                           , q{table_name},
21353                                           $tracelevel)
21354         }
21355         $_[1] = $text;
21356         return $return;
21357 }
21358
21359 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
21360 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_53_of_rule_sysfun
21361 {
21362         my $thisparser = $_[0];
21363         use vars q{$tracelevel};
21364         local $tracelevel = ($tracelevel||0)+1;
21365         $ERRORS = 0;
21366         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_53_of_rule_sysfun"};
21367         
21368         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_53_of_rule_sysfun]},
21369                                   Parse::RecDescent::_tracefirst($_[1]),
21370                                   q{_alternation_1_of_production_53_of_rule_sysfun},
21371                                   $tracelevel)
21372                                         if defined $::RD_TRACE;
21373
21374         
21375         my $err_at = @{$thisparser->{errors}};
21376
21377         my $score;
21378         my $score_return;
21379         my $_tok;
21380         my $return = undef;
21381         my $_matched=0;
21382         my $commit=0;
21383         my @item = ();
21384         my %item = ();
21385         my $repeating =  defined($_[2]) && $_[2];
21386         my $_noactions = defined($_[3]) && $_[3];
21387         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
21388         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
21389         my $text;
21390         my $lastsep="";
21391         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
21392         $expectation->at($_[1]);
21393         
21394         my $thisline;
21395         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
21396
21397         
21398
21399         while (!$_matched && !$commit)
21400         {
21401                 
21402                 Parse::RecDescent::_trace(q{Trying production: [/TRUNCATE/i]},
21403                                           Parse::RecDescent::_tracefirst($_[1]),
21404                                           q{_alternation_1_of_production_53_of_rule_sysfun},
21405                                           $tracelevel)
21406                                                 if defined $::RD_TRACE;
21407                 my $thisprod = $thisrule->{"prods"}[0];
21408                 $text = $_[1];
21409                 my $_savetext;
21410                 @item = (q{_alternation_1_of_production_53_of_rule_sysfun});
21411                 %item = (__RULE__ => q{_alternation_1_of_production_53_of_rule_sysfun});
21412                 my $repcount = 0;
21413
21414
21415                 Parse::RecDescent::_trace(q{Trying terminal: [/TRUNCATE/i]}, Parse::RecDescent::_tracefirst($text),
21416                                           q{_alternation_1_of_production_53_of_rule_sysfun},
21417                                           $tracelevel)
21418                                                 if defined $::RD_TRACE;
21419                 $lastsep = "";
21420                 $expectation->is(q{})->at($text);
21421                 
21422
21423                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TRUNCATE)//i)
21424                 {
21425                         
21426                         $expectation->failed();
21427                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
21428                                                   Parse::RecDescent::_tracefirst($text))
21429                                         if defined $::RD_TRACE;
21430
21431                         last;
21432                 }
21433                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21434                                                 . $& . q{])},
21435                                                   Parse::RecDescent::_tracefirst($text))
21436                                         if defined $::RD_TRACE;
21437                 push @item, $item{__PATTERN1__}=$&;
21438                 
21439
21440
21441                 Parse::RecDescent::_trace(q{>>Matched production: [/TRUNCATE/i]<<},
21442                                           Parse::RecDescent::_tracefirst($text),
21443                                           q{_alternation_1_of_production_53_of_rule_sysfun},
21444                                           $tracelevel)
21445                                                 if defined $::RD_TRACE;
21446                 $_matched = 1;
21447                 last;
21448         }
21449
21450
21451         while (!$_matched && !$commit)
21452         {
21453                 
21454                 Parse::RecDescent::_trace(q{Trying production: [/TRUNC/i]},
21455                                           Parse::RecDescent::_tracefirst($_[1]),
21456                                           q{_alternation_1_of_production_53_of_rule_sysfun},
21457                                           $tracelevel)
21458                                                 if defined $::RD_TRACE;
21459                 my $thisprod = $thisrule->{"prods"}[1];
21460                 $text = $_[1];
21461                 my $_savetext;
21462                 @item = (q{_alternation_1_of_production_53_of_rule_sysfun});
21463                 %item = (__RULE__ => q{_alternation_1_of_production_53_of_rule_sysfun});
21464                 my $repcount = 0;
21465
21466
21467                 Parse::RecDescent::_trace(q{Trying terminal: [/TRUNC/i]}, Parse::RecDescent::_tracefirst($text),
21468                                           q{_alternation_1_of_production_53_of_rule_sysfun},
21469                                           $tracelevel)
21470                                                 if defined $::RD_TRACE;
21471                 $lastsep = "";
21472                 $expectation->is(q{})->at($text);
21473                 
21474
21475                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TRUNC)//i)
21476                 {
21477                         
21478                         $expectation->failed();
21479                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
21480                                                   Parse::RecDescent::_tracefirst($text))
21481                                         if defined $::RD_TRACE;
21482
21483                         last;
21484                 }
21485                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21486                                                 . $& . q{])},
21487                                                   Parse::RecDescent::_tracefirst($text))
21488                                         if defined $::RD_TRACE;
21489                 push @item, $item{__PATTERN1__}=$&;
21490                 
21491
21492
21493                 Parse::RecDescent::_trace(q{>>Matched production: [/TRUNC/i]<<},
21494                                           Parse::RecDescent::_tracefirst($text),
21495                                           q{_alternation_1_of_production_53_of_rule_sysfun},
21496                                           $tracelevel)
21497                                                 if defined $::RD_TRACE;
21498                 $_matched = 1;
21499                 last;
21500         }
21501
21502
21503         unless ( $_matched || defined($return) || defined($score) )
21504         {
21505                 
21506
21507                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
21508                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
21509                                          Parse::RecDescent::_tracefirst($_[1]),
21510                                          q{_alternation_1_of_production_53_of_rule_sysfun},
21511                                          $tracelevel)
21512                                         if defined $::RD_TRACE;
21513                 return undef;
21514         }
21515         if (!defined($return) && defined($score))
21516         {
21517                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
21518                                           q{_alternation_1_of_production_53_of_rule_sysfun},
21519                                           $tracelevel)
21520                                                 if defined $::RD_TRACE;
21521                 $return = $score_return;
21522         }
21523         splice @{$thisparser->{errors}}, $err_at;
21524         $return = $item[$#item] unless defined $return;
21525         if (defined $::RD_TRACE)
21526         {
21527                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
21528                                           $return . q{])}, "",
21529                                           q{_alternation_1_of_production_53_of_rule_sysfun},
21530                                           $tracelevel);
21531                 Parse::RecDescent::_trace(q{(consumed: [} .
21532                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
21533                                           Parse::RecDescent::_tracefirst($text),
21534                                           , q{_alternation_1_of_production_53_of_rule_sysfun},
21535                                           $tracelevel)
21536         }
21537         $_[1] = $text;
21538         return $return;
21539 }
21540
21541 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
21542 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::options
21543 {
21544         my $thisparser = $_[0];
21545         use vars q{$tracelevel};
21546         local $tracelevel = ($tracelevel||0)+1;
21547         $ERRORS = 0;
21548         my $thisrule = $thisparser->{"rules"}{"options"};
21549         
21550         Parse::RecDescent::_trace(q{Trying rule: [options]},
21551                                   Parse::RecDescent::_tracefirst($_[1]),
21552                                   q{options},
21553                                   $tracelevel)
21554                                         if defined $::RD_TRACE;
21555
21556         
21557         my $err_at = @{$thisparser->{errors}};
21558
21559         my $score;
21560         my $score_return;
21561         my $_tok;
21562         my $return = undef;
21563         my $_matched=0;
21564         my $commit=0;
21565         my @item = ();
21566         my %item = ();
21567         my $repeating =  defined($_[2]) && $_[2];
21568         my $_noactions = defined($_[3]) && $_[3];
21569         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
21570         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
21571         my $text;
21572         my $lastsep="";
21573         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
21574         $expectation->at($_[1]);
21575         
21576         my $thisline;
21577         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
21578
21579         
21580
21581         while (!$_matched && !$commit)
21582         {
21583                 
21584                 Parse::RecDescent::_trace(q{Trying production: [/WITH/i /CASCADED/i, or /LOCAL/i /CHECK\\s+OPTION/i]},
21585                                           Parse::RecDescent::_tracefirst($_[1]),
21586                                           q{options},
21587                                           $tracelevel)
21588                                                 if defined $::RD_TRACE;
21589                 my $thisprod = $thisrule->{"prods"}[0];
21590                 $text = $_[1];
21591                 my $_savetext;
21592                 @item = (q{options});
21593                 %item = (__RULE__ => q{options});
21594                 my $repcount = 0;
21595
21596
21597                 Parse::RecDescent::_trace(q{Trying terminal: [/WITH/i]}, Parse::RecDescent::_tracefirst($text),
21598                                           q{options},
21599                                           $tracelevel)
21600                                                 if defined $::RD_TRACE;
21601                 $lastsep = "";
21602                 $expectation->is(q{})->at($text);
21603                 
21604
21605                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WITH)//i)
21606                 {
21607                         
21608                         $expectation->failed();
21609                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
21610                                                   Parse::RecDescent::_tracefirst($text))
21611                                         if defined $::RD_TRACE;
21612
21613                         last;
21614                 }
21615                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21616                                                 . $& . q{])},
21617                                                   Parse::RecDescent::_tracefirst($text))
21618                                         if defined $::RD_TRACE;
21619                 push @item, $item{__PATTERN1__}=$&;
21620                 
21621
21622                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_options]},
21623                                   Parse::RecDescent::_tracefirst($text),
21624                                   q{options},
21625                                   $tracelevel)
21626                                         if defined $::RD_TRACE;
21627                 if (1) { no strict qw{refs};
21628                 $expectation->is(q{/CASCADED/i, or /LOCAL/i})->at($text);
21629                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_options($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21630                 {
21631                         
21632                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_options]>>},
21633                                                   Parse::RecDescent::_tracefirst($text),
21634                                                   q{options},
21635                                                   $tracelevel)
21636                                                         if defined $::RD_TRACE;
21637                         $expectation->failed();
21638                         last;
21639                 }
21640                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_options]<< (return value: [}
21641                                         . $_tok . q{]},
21642                                           
21643                                           Parse::RecDescent::_tracefirst($text),
21644                                           q{options},
21645                                           $tracelevel)
21646                                                 if defined $::RD_TRACE;
21647                 $item{q{_alternation_1_of_production_1_of_rule_options}} = $_tok;
21648                 push @item, $_tok;
21649                 
21650                 }
21651
21652                 Parse::RecDescent::_trace(q{Trying terminal: [/CHECK\\s+OPTION/i]}, Parse::RecDescent::_tracefirst($text),
21653                                           q{options},
21654                                           $tracelevel)
21655                                                 if defined $::RD_TRACE;
21656                 $lastsep = "";
21657                 $expectation->is(q{/CHECK\\s+OPTION/i})->at($text);
21658                 
21659
21660                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CHECK\s+OPTION)//i)
21661                 {
21662                         
21663                         $expectation->failed();
21664                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
21665                                                   Parse::RecDescent::_tracefirst($text))
21666                                         if defined $::RD_TRACE;
21667
21668                         last;
21669                 }
21670                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21671                                                 . $& . q{])},
21672                                                   Parse::RecDescent::_tracefirst($text))
21673                                         if defined $::RD_TRACE;
21674                 push @item, $item{__PATTERN2__}=$&;
21675                 
21676
21677
21678                 Parse::RecDescent::_trace(q{>>Matched production: [/WITH/i /CASCADED/i, or /LOCAL/i /CHECK\\s+OPTION/i]<<},
21679                                           Parse::RecDescent::_tracefirst($text),
21680                                           q{options},
21681                                           $tracelevel)
21682                                                 if defined $::RD_TRACE;
21683                 $_matched = 1;
21684                 last;
21685         }
21686
21687
21688         unless ( $_matched || defined($return) || defined($score) )
21689         {
21690                 
21691
21692                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
21693                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
21694                                          Parse::RecDescent::_tracefirst($_[1]),
21695                                          q{options},
21696                                          $tracelevel)
21697                                         if defined $::RD_TRACE;
21698                 return undef;
21699         }
21700         if (!defined($return) && defined($score))
21701         {
21702                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
21703                                           q{options},
21704                                           $tracelevel)
21705                                                 if defined $::RD_TRACE;
21706                 $return = $score_return;
21707         }
21708         splice @{$thisparser->{errors}}, $err_at;
21709         $return = $item[$#item] unless defined $return;
21710         if (defined $::RD_TRACE)
21711         {
21712                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
21713                                           $return . q{])}, "",
21714                                           q{options},
21715                                           $tracelevel);
21716                 Parse::RecDescent::_trace(q{(consumed: [} .
21717                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
21718                                           Parse::RecDescent::_tracefirst($text),
21719                                           , q{options},
21720                                           $tracelevel)
21721         }
21722         $_[1] = $text;
21723         return $return;
21724 }
21725
21726 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
21727 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function
21728 {
21729         my $thisparser = $_[0];
21730         use vars q{$tracelevel};
21731         local $tracelevel = ($tracelevel||0)+1;
21732         $ERRORS = 0;
21733         my $thisrule = $thisparser->{"rules"}{"function"};
21734         
21735         Parse::RecDescent::_trace(q{Trying rule: [function]},
21736                                   Parse::RecDescent::_tracefirst($_[1]),
21737                                   q{function},
21738                                   $tracelevel)
21739                                         if defined $::RD_TRACE;
21740
21741         
21742         my $err_at = @{$thisparser->{errors}};
21743
21744         my $score;
21745         my $score_return;
21746         my $_tok;
21747         my $return = undef;
21748         my $_matched=0;
21749         my $commit=0;
21750         my @item = ();
21751         my %item = ();
21752         my $repeating =  defined($_[2]) && $_[2];
21753         my $_noactions = defined($_[3]) && $_[3];
21754         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
21755         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
21756         my $text;
21757         my $lastsep="";
21758         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
21759         $expectation->at($_[1]);
21760         
21761         my $thisline;
21762         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
21763
21764         
21765
21766         while (!$_matched && !$commit)
21767         {
21768                 
21769                 Parse::RecDescent::_trace(q{Trying production: [/SYSIBM\\.|/i, or /SYSFUN\\.|/i, or userdefined_function '(' <leftop: func_args /,/ func_args> ')']},
21770                                           Parse::RecDescent::_tracefirst($_[1]),
21771                                           q{function},
21772                                           $tracelevel)
21773                                                 if defined $::RD_TRACE;
21774                 my $thisprod = $thisrule->{"prods"}[0];
21775                 $text = $_[1];
21776                 my $_savetext;
21777                 @item = (q{function});
21778                 %item = (__RULE__ => q{function});
21779                 my $repcount = 0;
21780
21781
21782                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_function]},
21783                                   Parse::RecDescent::_tracefirst($text),
21784                                   q{function},
21785                                   $tracelevel)
21786                                         if defined $::RD_TRACE;
21787                 if (1) { no strict qw{refs};
21788                 $expectation->is(q{})->at($text);
21789                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21790                 {
21791                         
21792                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_function]>>},
21793                                                   Parse::RecDescent::_tracefirst($text),
21794                                                   q{function},
21795                                                   $tracelevel)
21796                                                         if defined $::RD_TRACE;
21797                         $expectation->failed();
21798                         last;
21799                 }
21800                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_function]<< (return value: [}
21801                                         . $_tok . q{]},
21802                                           
21803                                           Parse::RecDescent::_tracefirst($text),
21804                                           q{function},
21805                                           $tracelevel)
21806                                                 if defined $::RD_TRACE;
21807                 $item{q{_alternation_1_of_production_1_of_rule_function}} = $_tok;
21808                 push @item, $_tok;
21809                 
21810                 }
21811
21812                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
21813                                           Parse::RecDescent::_tracefirst($text),
21814                                           q{function},
21815                                           $tracelevel)
21816                                                 if defined $::RD_TRACE;
21817                 $lastsep = "";
21818                 $expectation->is(q{'('})->at($text);
21819                 
21820
21821                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
21822                 {
21823                         
21824                         $expectation->failed();
21825                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
21826                                                   Parse::RecDescent::_tracefirst($text))
21827                                                         if defined $::RD_TRACE;
21828                         last;
21829                 }
21830                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21831                                                 . $& . q{])},
21832                                                   Parse::RecDescent::_tracefirst($text))
21833                                                         if defined $::RD_TRACE;
21834                 push @item, $item{__STRING1__}=$&;
21835                 
21836
21837                 Parse::RecDescent::_trace(q{Trying operator: [<leftop: func_args /,/ func_args>]},
21838                                   Parse::RecDescent::_tracefirst($text),
21839                                   q{function},
21840                                   $tracelevel)
21841                                         if defined $::RD_TRACE;
21842                 $expectation->is(q{<leftop: func_args /,/ func_args>})->at($text);
21843
21844                 $_tok = undef;
21845                 OPLOOP: while (1)
21846                 {
21847                   $repcount = 0;
21848                   my  @item;
21849                   
21850                   # MATCH LEFTARG
21851                   
21852                 Parse::RecDescent::_trace(q{Trying subrule: [func_args]},
21853                                   Parse::RecDescent::_tracefirst($text),
21854                                   q{function},
21855                                   $tracelevel)
21856                                         if defined $::RD_TRACE;
21857                 if (1) { no strict qw{refs};
21858                 $expectation->is(q{func_args})->at($text);
21859                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21860                 {
21861                         
21862                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [func_args]>>},
21863                                                   Parse::RecDescent::_tracefirst($text),
21864                                                   q{function},
21865                                                   $tracelevel)
21866                                                         if defined $::RD_TRACE;
21867                         $expectation->failed();
21868                         last;
21869                 }
21870                 Parse::RecDescent::_trace(q{>>Matched subrule: [func_args]<< (return value: [}
21871                                         . $_tok . q{]},
21872                                           
21873                                           Parse::RecDescent::_tracefirst($text),
21874                                           q{function},
21875                                           $tracelevel)
21876                                                 if defined $::RD_TRACE;
21877                 $item{q{func_args}} = $_tok;
21878                 push @item, $_tok;
21879                 
21880                 }
21881
21882
21883                   $repcount++;
21884
21885                   my $savetext = $text;
21886                   my $backtrack;
21887
21888                   # MATCH (OP RIGHTARG)(s)
21889                   while ($repcount < 100000000)
21890                   {
21891                         $backtrack = 0;
21892                         
21893                 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
21894                                           q{function},
21895                                           $tracelevel)
21896                                                 if defined $::RD_TRACE;
21897                 $lastsep = "";
21898                 $expectation->is(q{/,/})->at($text);
21899                 
21900
21901                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
21902                 {
21903                         
21904                         $expectation->failed();
21905                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
21906                                                   Parse::RecDescent::_tracefirst($text))
21907                                         if defined $::RD_TRACE;
21908
21909                         last;
21910                 }
21911                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21912                                                 . $& . q{])},
21913                                                   Parse::RecDescent::_tracefirst($text))
21914                                         if defined $::RD_TRACE;
21915                 push @item, $item{__PATTERN1__}=$&;
21916                 
21917
21918                         pop @item;
21919                         if (defined $1) {push @item, $item{'func_args(s)'}=$1; $backtrack=1;}
21920                         
21921                 Parse::RecDescent::_trace(q{Trying subrule: [func_args]},
21922                                   Parse::RecDescent::_tracefirst($text),
21923                                   q{function},
21924                                   $tracelevel)
21925                                         if defined $::RD_TRACE;
21926                 if (1) { no strict qw{refs};
21927                 $expectation->is(q{func_args})->at($text);
21928                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21929                 {
21930                         
21931                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [func_args]>>},
21932                                                   Parse::RecDescent::_tracefirst($text),
21933                                                   q{function},
21934                                                   $tracelevel)
21935                                                         if defined $::RD_TRACE;
21936                         $expectation->failed();
21937                         last;
21938                 }
21939                 Parse::RecDescent::_trace(q{>>Matched subrule: [func_args]<< (return value: [}
21940                                         . $_tok . q{]},
21941                                           
21942                                           Parse::RecDescent::_tracefirst($text),
21943                                           q{function},
21944                                           $tracelevel)
21945                                                 if defined $::RD_TRACE;
21946                 $item{q{func_args}} = $_tok;
21947                 push @item, $_tok;
21948                 
21949                 }
21950
21951                         $savetext = $text;
21952                         $repcount++;
21953                   }
21954                   $text = $savetext;
21955                   pop @item if $backtrack;
21956
21957                   unless (@item) { undef $_tok; last }
21958                   $_tok = [ @item ];
21959                   last;
21960                 } 
21961
21962                 unless ($repcount>=1)
21963                 {
21964                         Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: func_args /,/ func_args>]>>},
21965                                                   Parse::RecDescent::_tracefirst($text),
21966                                                   q{function},
21967                                                   $tracelevel)
21968                                                         if defined $::RD_TRACE;
21969                         $expectation->failed();
21970                         last;
21971                 }
21972                 Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: func_args /,/ func_args>]<< (return value: [}
21973                                           . qq{@{$_tok||[]}} . q{]},
21974                                           Parse::RecDescent::_tracefirst($text),
21975                                           q{function},
21976                                           $tracelevel)
21977                                                 if defined $::RD_TRACE;
21978
21979                 push @item, $item{'func_args(s)'}=$_tok||[];
21980
21981
21982                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
21983                                           Parse::RecDescent::_tracefirst($text),
21984                                           q{function},
21985                                           $tracelevel)
21986                                                 if defined $::RD_TRACE;
21987                 $lastsep = "";
21988                 $expectation->is(q{')'})->at($text);
21989                 
21990
21991                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
21992                 {
21993                         
21994                         $expectation->failed();
21995                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
21996                                                   Parse::RecDescent::_tracefirst($text))
21997                                                         if defined $::RD_TRACE;
21998                         last;
21999                 }
22000                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22001                                                 . $& . q{])},
22002                                                   Parse::RecDescent::_tracefirst($text))
22003                                                         if defined $::RD_TRACE;
22004                 push @item, $item{__STRING2__}=$&;
22005                 
22006
22007
22008                 Parse::RecDescent::_trace(q{>>Matched production: [/SYSIBM\\.|/i, or /SYSFUN\\.|/i, or userdefined_function '(' <leftop: func_args /,/ func_args> ')']<<},
22009                                           Parse::RecDescent::_tracefirst($text),
22010                                           q{function},
22011                                           $tracelevel)
22012                                                 if defined $::RD_TRACE;
22013                 $_matched = 1;
22014                 last;
22015         }
22016
22017
22018         unless ( $_matched || defined($return) || defined($score) )
22019         {
22020                 
22021
22022                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
22023                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
22024                                          Parse::RecDescent::_tracefirst($_[1]),
22025                                          q{function},
22026                                          $tracelevel)
22027                                         if defined $::RD_TRACE;
22028                 return undef;
22029         }
22030         if (!defined($return) && defined($score))
22031         {
22032                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
22033                                           q{function},
22034                                           $tracelevel)
22035                                                 if defined $::RD_TRACE;
22036                 $return = $score_return;
22037         }
22038         splice @{$thisparser->{errors}}, $err_at;
22039         $return = $item[$#item] unless defined $return;
22040         if (defined $::RD_TRACE)
22041         {
22042                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
22043                                           $return . q{])}, "",
22044                                           q{function},
22045                                           $tracelevel);
22046                 Parse::RecDescent::_trace(q{(consumed: [} .
22047                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
22048                                           Parse::RecDescent::_tracefirst($text),
22049                                           , q{function},
22050                                           $tracelevel)
22051         }
22052         $_[1] = $text;
22053         return $return;
22054 }
22055
22056 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
22057 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_41_of_rule_sysibm_function
22058 {
22059         my $thisparser = $_[0];
22060         use vars q{$tracelevel};
22061         local $tracelevel = ($tracelevel||0)+1;
22062         $ERRORS = 0;
22063         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_41_of_rule_sysibm_function"};
22064         
22065         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_41_of_rule_sysibm_function]},
22066                                   Parse::RecDescent::_tracefirst($_[1]),
22067                                   q{_alternation_1_of_production_41_of_rule_sysibm_function},
22068                                   $tracelevel)
22069                                         if defined $::RD_TRACE;
22070
22071         
22072         my $err_at = @{$thisparser->{errors}};
22073
22074         my $score;
22075         my $score_return;
22076         my $_tok;
22077         my $return = undef;
22078         my $_matched=0;
22079         my $commit=0;
22080         my @item = ();
22081         my %item = ();
22082         my $repeating =  defined($_[2]) && $_[2];
22083         my $_noactions = defined($_[3]) && $_[3];
22084         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
22085         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
22086         my $text;
22087         my $lastsep="";
22088         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
22089         $expectation->at($_[1]);
22090         
22091         my $thisline;
22092         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
22093
22094         
22095
22096         while (!$_matched && !$commit)
22097         {
22098                 
22099                 Parse::RecDescent::_trace(q{Trying production: [/INTEGER/i]},
22100                                           Parse::RecDescent::_tracefirst($_[1]),
22101                                           q{_alternation_1_of_production_41_of_rule_sysibm_function},
22102                                           $tracelevel)
22103                                                 if defined $::RD_TRACE;
22104                 my $thisprod = $thisrule->{"prods"}[0];
22105                 $text = $_[1];
22106                 my $_savetext;
22107                 @item = (q{_alternation_1_of_production_41_of_rule_sysibm_function});
22108                 %item = (__RULE__ => q{_alternation_1_of_production_41_of_rule_sysibm_function});
22109                 my $repcount = 0;
22110
22111
22112                 Parse::RecDescent::_trace(q{Trying terminal: [/INTEGER/i]}, Parse::RecDescent::_tracefirst($text),
22113                                           q{_alternation_1_of_production_41_of_rule_sysibm_function},
22114                                           $tracelevel)
22115                                                 if defined $::RD_TRACE;
22116                 $lastsep = "";
22117                 $expectation->is(q{})->at($text);
22118                 
22119
22120                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:INTEGER)//i)
22121                 {
22122                         
22123                         $expectation->failed();
22124                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
22125                                                   Parse::RecDescent::_tracefirst($text))
22126                                         if defined $::RD_TRACE;
22127
22128                         last;
22129                 }
22130                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22131                                                 . $& . q{])},
22132                                                   Parse::RecDescent::_tracefirst($text))
22133                                         if defined $::RD_TRACE;
22134                 push @item, $item{__PATTERN1__}=$&;
22135                 
22136
22137
22138                 Parse::RecDescent::_trace(q{>>Matched production: [/INTEGER/i]<<},
22139                                           Parse::RecDescent::_tracefirst($text),
22140                                           q{_alternation_1_of_production_41_of_rule_sysibm_function},
22141                                           $tracelevel)
22142                                                 if defined $::RD_TRACE;
22143                 $_matched = 1;
22144                 last;
22145         }
22146
22147
22148         while (!$_matched && !$commit)
22149         {
22150                 
22151                 Parse::RecDescent::_trace(q{Trying production: [/INT/]},
22152                                           Parse::RecDescent::_tracefirst($_[1]),
22153                                           q{_alternation_1_of_production_41_of_rule_sysibm_function},
22154                                           $tracelevel)
22155                                                 if defined $::RD_TRACE;
22156                 my $thisprod = $thisrule->{"prods"}[1];
22157                 $text = $_[1];
22158                 my $_savetext;
22159                 @item = (q{_alternation_1_of_production_41_of_rule_sysibm_function});
22160                 %item = (__RULE__ => q{_alternation_1_of_production_41_of_rule_sysibm_function});
22161                 my $repcount = 0;
22162
22163
22164                 Parse::RecDescent::_trace(q{Trying terminal: [/INT/]}, Parse::RecDescent::_tracefirst($text),
22165                                           q{_alternation_1_of_production_41_of_rule_sysibm_function},
22166                                           $tracelevel)
22167                                                 if defined $::RD_TRACE;
22168                 $lastsep = "";
22169                 $expectation->is(q{})->at($text);
22170                 
22171
22172                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:INT)//)
22173                 {
22174                         
22175                         $expectation->failed();
22176                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
22177                                                   Parse::RecDescent::_tracefirst($text))
22178                                         if defined $::RD_TRACE;
22179
22180                         last;
22181                 }
22182                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22183                                                 . $& . q{])},
22184                                                   Parse::RecDescent::_tracefirst($text))
22185                                         if defined $::RD_TRACE;
22186                 push @item, $item{__PATTERN1__}=$&;
22187                 
22188
22189
22190                 Parse::RecDescent::_trace(q{>>Matched production: [/INT/]<<},
22191                                           Parse::RecDescent::_tracefirst($text),
22192                                           q{_alternation_1_of_production_41_of_rule_sysibm_function},
22193                                           $tracelevel)
22194                                                 if defined $::RD_TRACE;
22195                 $_matched = 1;
22196                 last;
22197         }
22198
22199
22200         unless ( $_matched || defined($return) || defined($score) )
22201         {
22202                 
22203
22204                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
22205                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
22206                                          Parse::RecDescent::_tracefirst($_[1]),
22207                                          q{_alternation_1_of_production_41_of_rule_sysibm_function},
22208                                          $tracelevel)
22209                                         if defined $::RD_TRACE;
22210                 return undef;
22211         }
22212         if (!defined($return) && defined($score))
22213         {
22214                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
22215                                           q{_alternation_1_of_production_41_of_rule_sysibm_function},
22216                                           $tracelevel)
22217                                                 if defined $::RD_TRACE;
22218                 $return = $score_return;
22219         }
22220         splice @{$thisparser->{errors}}, $err_at;
22221         $return = $item[$#item] unless defined $return;
22222         if (defined $::RD_TRACE)
22223         {
22224                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
22225                                           $return . q{])}, "",
22226                                           q{_alternation_1_of_production_41_of_rule_sysibm_function},
22227                                           $tracelevel);
22228                 Parse::RecDescent::_trace(q{(consumed: [} .
22229                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
22230                                           Parse::RecDescent::_tracefirst($text),
22231                                           , q{_alternation_1_of_production_41_of_rule_sysibm_function},
22232                                           $tracelevel)
22233         }
22234         $_[1] = $text;
22235         return $return;
22236 }
22237
22238 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
22239 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_case_expression
22240 {
22241         my $thisparser = $_[0];
22242         use vars q{$tracelevel};
22243         local $tracelevel = ($tracelevel||0)+1;
22244         $ERRORS = 0;
22245         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_case_expression"};
22246         
22247         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_case_expression]},
22248                                   Parse::RecDescent::_tracefirst($_[1]),
22249                                   q{_alternation_1_of_production_1_of_rule_case_expression},
22250                                   $tracelevel)
22251                                         if defined $::RD_TRACE;
22252
22253         
22254         my $err_at = @{$thisparser->{errors}};
22255
22256         my $score;
22257         my $score_return;
22258         my $_tok;
22259         my $return = undef;
22260         my $_matched=0;
22261         my $commit=0;
22262         my @item = ();
22263         my %item = ();
22264         my $repeating =  defined($_[2]) && $_[2];
22265         my $_noactions = defined($_[3]) && $_[3];
22266         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
22267         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
22268         my $text;
22269         my $lastsep="";
22270         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
22271         $expectation->at($_[1]);
22272         
22273         my $thisline;
22274         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
22275
22276         
22277
22278         while (!$_matched && !$commit)
22279         {
22280                 
22281                 Parse::RecDescent::_trace(q{Trying production: [searched_when_clause]},
22282                                           Parse::RecDescent::_tracefirst($_[1]),
22283                                           q{_alternation_1_of_production_1_of_rule_case_expression},
22284                                           $tracelevel)
22285                                                 if defined $::RD_TRACE;
22286                 my $thisprod = $thisrule->{"prods"}[0];
22287                 $text = $_[1];
22288                 my $_savetext;
22289                 @item = (q{_alternation_1_of_production_1_of_rule_case_expression});
22290                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_case_expression});
22291                 my $repcount = 0;
22292
22293
22294                 Parse::RecDescent::_trace(q{Trying subrule: [searched_when_clause]},
22295                                   Parse::RecDescent::_tracefirst($text),
22296                                   q{_alternation_1_of_production_1_of_rule_case_expression},
22297                                   $tracelevel)
22298                                         if defined $::RD_TRACE;
22299                 if (1) { no strict qw{refs};
22300                 $expectation->is(q{})->at($text);
22301                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::searched_when_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22302                 {
22303                         
22304                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [searched_when_clause]>>},
22305                                                   Parse::RecDescent::_tracefirst($text),
22306                                                   q{_alternation_1_of_production_1_of_rule_case_expression},
22307                                                   $tracelevel)
22308                                                         if defined $::RD_TRACE;
22309                         $expectation->failed();
22310                         last;
22311                 }
22312                 Parse::RecDescent::_trace(q{>>Matched subrule: [searched_when_clause]<< (return value: [}
22313                                         . $_tok . q{]},
22314                                           
22315                                           Parse::RecDescent::_tracefirst($text),
22316                                           q{_alternation_1_of_production_1_of_rule_case_expression},
22317                                           $tracelevel)
22318                                                 if defined $::RD_TRACE;
22319                 $item{q{searched_when_clause}} = $_tok;
22320                 push @item, $_tok;
22321                 
22322                 }
22323
22324
22325                 Parse::RecDescent::_trace(q{>>Matched production: [searched_when_clause]<<},
22326                                           Parse::RecDescent::_tracefirst($text),
22327                                           q{_alternation_1_of_production_1_of_rule_case_expression},
22328                                           $tracelevel)
22329                                                 if defined $::RD_TRACE;
22330                 $_matched = 1;
22331                 last;
22332         }
22333
22334
22335         while (!$_matched && !$commit)
22336         {
22337                 
22338                 Parse::RecDescent::_trace(q{Trying production: [simple_when_clause]},
22339                                           Parse::RecDescent::_tracefirst($_[1]),
22340                                           q{_alternation_1_of_production_1_of_rule_case_expression},
22341                                           $tracelevel)
22342                                                 if defined $::RD_TRACE;
22343                 my $thisprod = $thisrule->{"prods"}[1];
22344                 $text = $_[1];
22345                 my $_savetext;
22346                 @item = (q{_alternation_1_of_production_1_of_rule_case_expression});
22347                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_case_expression});
22348                 my $repcount = 0;
22349
22350
22351                 Parse::RecDescent::_trace(q{Trying subrule: [simple_when_clause]},
22352                                   Parse::RecDescent::_tracefirst($text),
22353                                   q{_alternation_1_of_production_1_of_rule_case_expression},
22354                                   $tracelevel)
22355                                         if defined $::RD_TRACE;
22356                 if (1) { no strict qw{refs};
22357                 $expectation->is(q{})->at($text);
22358                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::simple_when_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22359                 {
22360                         
22361                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [simple_when_clause]>>},
22362                                                   Parse::RecDescent::_tracefirst($text),
22363                                                   q{_alternation_1_of_production_1_of_rule_case_expression},
22364                                                   $tracelevel)
22365                                                         if defined $::RD_TRACE;
22366                         $expectation->failed();
22367                         last;
22368                 }
22369                 Parse::RecDescent::_trace(q{>>Matched subrule: [simple_when_clause]<< (return value: [}
22370                                         . $_tok . q{]},
22371                                           
22372                                           Parse::RecDescent::_tracefirst($text),
22373                                           q{_alternation_1_of_production_1_of_rule_case_expression},
22374                                           $tracelevel)
22375                                                 if defined $::RD_TRACE;
22376                 $item{q{simple_when_clause}} = $_tok;
22377                 push @item, $_tok;
22378                 
22379                 }
22380
22381
22382                 Parse::RecDescent::_trace(q{>>Matched production: [simple_when_clause]<<},
22383                                           Parse::RecDescent::_tracefirst($text),
22384                                           q{_alternation_1_of_production_1_of_rule_case_expression},
22385                                           $tracelevel)
22386                                                 if defined $::RD_TRACE;
22387                 $_matched = 1;
22388                 last;
22389         }
22390
22391
22392         unless ( $_matched || defined($return) || defined($score) )
22393         {
22394                 
22395
22396                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
22397                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
22398                                          Parse::RecDescent::_tracefirst($_[1]),
22399                                          q{_alternation_1_of_production_1_of_rule_case_expression},
22400                                          $tracelevel)
22401                                         if defined $::RD_TRACE;
22402                 return undef;
22403         }
22404         if (!defined($return) && defined($score))
22405         {
22406                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
22407                                           q{_alternation_1_of_production_1_of_rule_case_expression},
22408                                           $tracelevel)
22409                                                 if defined $::RD_TRACE;
22410                 $return = $score_return;
22411         }
22412         splice @{$thisparser->{errors}}, $err_at;
22413         $return = $item[$#item] unless defined $return;
22414         if (defined $::RD_TRACE)
22415         {
22416                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
22417                                           $return . q{])}, "",
22418                                           q{_alternation_1_of_production_1_of_rule_case_expression},
22419                                           $tracelevel);
22420                 Parse::RecDescent::_trace(q{(consumed: [} .
22421                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
22422                                           Parse::RecDescent::_tracefirst($text),
22423                                           , q{_alternation_1_of_production_1_of_rule_case_expression},
22424                                           $tracelevel)
22425         }
22426         $_[1] = $text;
22427         return $return;
22428 }
22429
22430 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
22431 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_order_clause
22432 {
22433         my $thisparser = $_[0];
22434         use vars q{$tracelevel};
22435         local $tracelevel = ($tracelevel||0)+1;
22436         $ERRORS = 0;
22437         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_window_order_clause"};
22438         
22439         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
22440                                   Parse::RecDescent::_tracefirst($_[1]),
22441                                   q{_alternation_1_of_production_1_of_rule_window_order_clause},
22442                                   $tracelevel)
22443                                         if defined $::RD_TRACE;
22444
22445         
22446         my $err_at = @{$thisparser->{errors}};
22447
22448         my $score;
22449         my $score_return;
22450         my $_tok;
22451         my $return = undef;
22452         my $_matched=0;
22453         my $commit=0;
22454         my @item = ();
22455         my %item = ();
22456         my $repeating =  defined($_[2]) && $_[2];
22457         my $_noactions = defined($_[3]) && $_[3];
22458         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
22459         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
22460         my $text;
22461         my $lastsep="";
22462         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
22463         $expectation->at($_[1]);
22464         
22465         my $thisline;
22466         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
22467
22468         
22469
22470         while (!$_matched && !$commit)
22471         {
22472                 
22473                 Parse::RecDescent::_trace(q{Trying production: [sort_key_expression asc_option, or desc_option]},
22474                                           Parse::RecDescent::_tracefirst($_[1]),
22475                                           q{_alternation_1_of_production_1_of_rule_window_order_clause},
22476                                           $tracelevel)
22477                                                 if defined $::RD_TRACE;
22478                 my $thisprod = $thisrule->{"prods"}[0];
22479                 $text = $_[1];
22480                 my $_savetext;
22481                 @item = (q{_alternation_1_of_production_1_of_rule_window_order_clause});
22482                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_order_clause});
22483                 my $repcount = 0;
22484
22485
22486                 Parse::RecDescent::_trace(q{Trying subrule: [sort_key_expression]},
22487                                   Parse::RecDescent::_tracefirst($text),
22488                                   q{_alternation_1_of_production_1_of_rule_window_order_clause},
22489                                   $tracelevel)
22490                                         if defined $::RD_TRACE;
22491                 if (1) { no strict qw{refs};
22492                 $expectation->is(q{})->at($text);
22493                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sort_key_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22494                 {
22495                         
22496                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [sort_key_expression]>>},
22497                                                   Parse::RecDescent::_tracefirst($text),
22498                                                   q{_alternation_1_of_production_1_of_rule_window_order_clause},
22499                                                   $tracelevel)
22500                                                         if defined $::RD_TRACE;
22501                         $expectation->failed();
22502                         last;
22503                 }
22504                 Parse::RecDescent::_trace(q{>>Matched subrule: [sort_key_expression]<< (return value: [}
22505                                         . $_tok . q{]},
22506                                           
22507                                           Parse::RecDescent::_tracefirst($text),
22508                                           q{_alternation_1_of_production_1_of_rule_window_order_clause},
22509                                           $tracelevel)
22510                                                 if defined $::RD_TRACE;
22511                 $item{q{sort_key_expression}} = $_tok;
22512                 push @item, $_tok;
22513                 
22514                 }
22515
22516                 Parse::RecDescent::_trace(q{Trying repeated subrule: [asc_option, or desc_option]},
22517                                   Parse::RecDescent::_tracefirst($text),
22518                                   q{_alternation_1_of_production_1_of_rule_window_order_clause},
22519                                   $tracelevel)
22520                                         if defined $::RD_TRACE;
22521                 $expectation->is(q{asc_option, or desc_option})->at($text);
22522                 
22523                 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))) 
22524                 {
22525                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [asc_option, or desc_option]>>},
22526                                                   Parse::RecDescent::_tracefirst($text),
22527                                                   q{_alternation_1_of_production_1_of_rule_window_order_clause},
22528                                                   $tracelevel)
22529                                                         if defined $::RD_TRACE;
22530                         last;
22531                 }
22532                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause]<< (}
22533                                         . @$_tok . q{ times)},
22534                                           
22535                                           Parse::RecDescent::_tracefirst($text),
22536                                           q{_alternation_1_of_production_1_of_rule_window_order_clause},
22537                                           $tracelevel)
22538                                                 if defined $::RD_TRACE;
22539                 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause(?)}} = $_tok;
22540                 push @item, $_tok;
22541                 
22542
22543
22544
22545                 Parse::RecDescent::_trace(q{>>Matched production: [sort_key_expression asc_option, or desc_option]<<},
22546                                           Parse::RecDescent::_tracefirst($text),
22547                                           q{_alternation_1_of_production_1_of_rule_window_order_clause},
22548                                           $tracelevel)
22549                                                 if defined $::RD_TRACE;
22550                 $_matched = 1;
22551                 last;
22552         }
22553
22554
22555         unless ( $_matched || defined($return) || defined($score) )
22556         {
22557                 
22558
22559                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
22560                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
22561                                          Parse::RecDescent::_tracefirst($_[1]),
22562                                          q{_alternation_1_of_production_1_of_rule_window_order_clause},
22563                                          $tracelevel)
22564                                         if defined $::RD_TRACE;
22565                 return undef;
22566         }
22567         if (!defined($return) && defined($score))
22568         {
22569                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
22570                                           q{_alternation_1_of_production_1_of_rule_window_order_clause},
22571                                           $tracelevel)
22572                                                 if defined $::RD_TRACE;
22573                 $return = $score_return;
22574         }
22575         splice @{$thisparser->{errors}}, $err_at;
22576         $return = $item[$#item] unless defined $return;
22577         if (defined $::RD_TRACE)
22578         {
22579                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
22580                                           $return . q{])}, "",
22581                                           q{_alternation_1_of_production_1_of_rule_window_order_clause},
22582                                           $tracelevel);
22583                 Parse::RecDescent::_trace(q{(consumed: [} .
22584                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
22585                                           Parse::RecDescent::_tracefirst($text),
22586                                           , q{_alternation_1_of_production_1_of_rule_window_order_clause},
22587                                           $tracelevel)
22588         }
22589         $_[1] = $text;
22590         return $return;
22591 }
22592
22593 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
22594 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::create
22595 {
22596         my $thisparser = $_[0];
22597         use vars q{$tracelevel};
22598         local $tracelevel = ($tracelevel||0)+1;
22599         $ERRORS = 0;
22600         my $thisrule = $thisparser->{"rules"}{"create"};
22601         
22602         Parse::RecDescent::_trace(q{Trying rule: [create]},
22603                                   Parse::RecDescent::_tracefirst($_[1]),
22604                                   q{create},
22605                                   $tracelevel)
22606                                         if defined $::RD_TRACE;
22607
22608         
22609         my $err_at = @{$thisparser->{errors}};
22610
22611         my $score;
22612         my $score_return;
22613         my $_tok;
22614         my $return = undef;
22615         my $_matched=0;
22616         my $commit=0;
22617         my @item = ();
22618         my %item = ();
22619         my $repeating =  defined($_[2]) && $_[2];
22620         my $_noactions = defined($_[3]) && $_[3];
22621         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
22622         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
22623         my $text;
22624         my $lastsep="";
22625         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
22626         $expectation->at($_[1]);
22627         
22628         my $thisline;
22629         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
22630
22631         
22632
22633         while (!$_matched && !$commit)
22634         {
22635                 
22636                 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]},
22637                                           Parse::RecDescent::_tracefirst($_[1]),
22638                                           q{create},
22639                                           $tracelevel)
22640                                                 if defined $::RD_TRACE;
22641                 my $thisprod = $thisrule->{"prods"}[0];
22642                 $text = $_[1];
22643                 my $_savetext;
22644                 @item = (q{create});
22645                 %item = (__RULE__ => q{create});
22646                 my $repcount = 0;
22647
22648
22649                 Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
22650                                   Parse::RecDescent::_tracefirst($text),
22651                                   q{create},
22652                                   $tracelevel)
22653                                         if defined $::RD_TRACE;
22654                 if (1) { no strict qw{refs};
22655                 $expectation->is(q{})->at($text);
22656                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22657                 {
22658                         
22659                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [CREATE]>>},
22660                                                   Parse::RecDescent::_tracefirst($text),
22661                                                   q{create},
22662                                                   $tracelevel)
22663                                                         if defined $::RD_TRACE;
22664                         $expectation->failed();
22665                         last;
22666                 }
22667                 Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
22668                                         . $_tok . q{]},
22669                                           
22670                                           Parse::RecDescent::_tracefirst($text),
22671                                           q{create},
22672                                           $tracelevel)
22673                                                 if defined $::RD_TRACE;
22674                 $item{q{CREATE}} = $_tok;
22675                 push @item, $_tok;
22676                 
22677                 }
22678
22679                 Parse::RecDescent::_trace(q{Trying subrule: [TRIGGER]},
22680                                   Parse::RecDescent::_tracefirst($text),
22681                                   q{create},
22682                                   $tracelevel)
22683                                         if defined $::RD_TRACE;
22684                 if (1) { no strict qw{refs};
22685                 $expectation->is(q{TRIGGER})->at($text);
22686                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::TRIGGER($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22687                 {
22688                         
22689                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [TRIGGER]>>},
22690                                                   Parse::RecDescent::_tracefirst($text),
22691                                                   q{create},
22692                                                   $tracelevel)
22693                                                         if defined $::RD_TRACE;
22694                         $expectation->failed();
22695                         last;
22696                 }
22697                 Parse::RecDescent::_trace(q{>>Matched subrule: [TRIGGER]<< (return value: [}
22698                                         . $_tok . q{]},
22699                                           
22700                                           Parse::RecDescent::_tracefirst($text),
22701                                           q{create},
22702                                           $tracelevel)
22703                                                 if defined $::RD_TRACE;
22704                 $item{q{TRIGGER}} = $_tok;
22705                 push @item, $_tok;
22706                 
22707                 }
22708
22709                 Parse::RecDescent::_trace(q{Trying subrule: [trigger_name]},
22710                                   Parse::RecDescent::_tracefirst($text),
22711                                   q{create},
22712                                   $tracelevel)
22713                                         if defined $::RD_TRACE;
22714                 if (1) { no strict qw{refs};
22715                 $expectation->is(q{trigger_name})->at($text);
22716                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::trigger_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22717                 {
22718                         
22719                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [trigger_name]>>},
22720                                                   Parse::RecDescent::_tracefirst($text),
22721                                                   q{create},
22722                                                   $tracelevel)
22723                                                         if defined $::RD_TRACE;
22724                         $expectation->failed();
22725                         last;
22726                 }
22727                 Parse::RecDescent::_trace(q{>>Matched subrule: [trigger_name]<< (return value: [}
22728                                         . $_tok . q{]},
22729                                           
22730                                           Parse::RecDescent::_tracefirst($text),
22731                                           q{create},
22732                                           $tracelevel)
22733                                                 if defined $::RD_TRACE;
22734                 $item{q{trigger_name}} = $_tok;
22735                 push @item, $_tok;
22736                 
22737                 }
22738
22739                 Parse::RecDescent::_trace(q{Trying subrule: [before]},
22740                                   Parse::RecDescent::_tracefirst($text),
22741                                   q{create},
22742                                   $tracelevel)
22743                                         if defined $::RD_TRACE;
22744                 if (1) { no strict qw{refs};
22745                 $expectation->is(q{before})->at($text);
22746                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::before($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22747                 {
22748                         
22749                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [before]>>},
22750                                                   Parse::RecDescent::_tracefirst($text),
22751                                                   q{create},
22752                                                   $tracelevel)
22753                                                         if defined $::RD_TRACE;
22754                         $expectation->failed();
22755                         last;
22756                 }
22757                 Parse::RecDescent::_trace(q{>>Matched subrule: [before]<< (return value: [}
22758                                         . $_tok . q{]},
22759                                           
22760                                           Parse::RecDescent::_tracefirst($text),
22761                                           q{create},
22762                                           $tracelevel)
22763                                                 if defined $::RD_TRACE;
22764                 $item{q{before}} = $_tok;
22765                 push @item, $_tok;
22766                 
22767                 }
22768
22769                 Parse::RecDescent::_trace(q{Trying subrule: [type]},
22770                                   Parse::RecDescent::_tracefirst($text),
22771                                   q{create},
22772                                   $tracelevel)
22773                                         if defined $::RD_TRACE;
22774                 if (1) { no strict qw{refs};
22775                 $expectation->is(q{type})->at($text);
22776                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22777                 {
22778                         
22779                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [type]>>},
22780                                                   Parse::RecDescent::_tracefirst($text),
22781                                                   q{create},
22782                                                   $tracelevel)
22783                                                         if defined $::RD_TRACE;
22784                         $expectation->failed();
22785                         last;
22786                 }
22787                 Parse::RecDescent::_trace(q{>>Matched subrule: [type]<< (return value: [}
22788                                         . $_tok . q{]},
22789                                           
22790                                           Parse::RecDescent::_tracefirst($text),
22791                                           q{create},
22792                                           $tracelevel)
22793                                                 if defined $::RD_TRACE;
22794                 $item{q{type}} = $_tok;
22795                 push @item, $_tok;
22796                 
22797                 }
22798
22799                 Parse::RecDescent::_trace(q{Trying terminal: [/ON/i]}, Parse::RecDescent::_tracefirst($text),
22800                                           q{create},
22801                                           $tracelevel)
22802                                                 if defined $::RD_TRACE;
22803                 $lastsep = "";
22804                 $expectation->is(q{/ON/i})->at($text);
22805                 
22806
22807                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ON)//i)
22808                 {
22809                         
22810                         $expectation->failed();
22811                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
22812                                                   Parse::RecDescent::_tracefirst($text))
22813                                         if defined $::RD_TRACE;
22814
22815                         last;
22816                 }
22817                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22818                                                 . $& . q{])},
22819                                                   Parse::RecDescent::_tracefirst($text))
22820                                         if defined $::RD_TRACE;
22821                 push @item, $item{__PATTERN1__}=$&;
22822                 
22823
22824                 Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
22825                                   Parse::RecDescent::_tracefirst($text),
22826                                   q{create},
22827                                   $tracelevel)
22828                                         if defined $::RD_TRACE;
22829                 if (1) { no strict qw{refs};
22830                 $expectation->is(q{table_name})->at($text);
22831                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22832                 {
22833                         
22834                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
22835                                                   Parse::RecDescent::_tracefirst($text),
22836                                                   q{create},
22837                                                   $tracelevel)
22838                                                         if defined $::RD_TRACE;
22839                         $expectation->failed();
22840                         last;
22841                 }
22842                 Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
22843                                         . $_tok . q{]},
22844                                           
22845                                           Parse::RecDescent::_tracefirst($text),
22846                                           q{create},
22847                                           $tracelevel)
22848                                                 if defined $::RD_TRACE;
22849                 $item{q{table_name}} = $_tok;
22850                 push @item, $_tok;
22851                 
22852                 }
22853
22854                 Parse::RecDescent::_trace(q{Trying repeated subrule: [reference_b]},
22855                                   Parse::RecDescent::_tracefirst($text),
22856                                   q{create},
22857                                   $tracelevel)
22858                                         if defined $::RD_TRACE;
22859                 $expectation->is(q{reference_b})->at($text);
22860                 
22861                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_b, 0, 1, $_noactions,$expectation,undef))) 
22862                 {
22863                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [reference_b]>>},
22864                                                   Parse::RecDescent::_tracefirst($text),
22865                                                   q{create},
22866                                                   $tracelevel)
22867                                                         if defined $::RD_TRACE;
22868                         last;
22869                 }
22870                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [reference_b]<< (}
22871                                         . @$_tok . q{ times)},
22872                                           
22873                                           Parse::RecDescent::_tracefirst($text),
22874                                           q{create},
22875                                           $tracelevel)
22876                                                 if defined $::RD_TRACE;
22877                 $item{q{reference_b(?)}} = $_tok;
22878                 push @item, $_tok;
22879                 
22880
22881
22882                 Parse::RecDescent::_trace(q{Trying terminal: [/FOR EACH ROW/i]}, Parse::RecDescent::_tracefirst($text),
22883                                           q{create},
22884                                           $tracelevel)
22885                                                 if defined $::RD_TRACE;
22886                 $lastsep = "";
22887                 $expectation->is(q{/FOR EACH ROW/i})->at($text);
22888                 
22889
22890                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOR EACH ROW)//i)
22891                 {
22892                         
22893                         $expectation->failed();
22894                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
22895                                                   Parse::RecDescent::_tracefirst($text))
22896                                         if defined $::RD_TRACE;
22897
22898                         last;
22899                 }
22900                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22901                                                 . $& . q{])},
22902                                                   Parse::RecDescent::_tracefirst($text))
22903                                         if defined $::RD_TRACE;
22904                 push @item, $item{__PATTERN2__}=$&;
22905                 
22906
22907                 Parse::RecDescent::_trace(q{Trying terminal: ['MODE DB2SQL']},
22908                                           Parse::RecDescent::_tracefirst($text),
22909                                           q{create},
22910                                           $tracelevel)
22911                                                 if defined $::RD_TRACE;
22912                 $lastsep = "";
22913                 $expectation->is(q{'MODE DB2SQL'})->at($text);
22914                 
22915
22916                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\AMODE\ DB2SQL//)
22917                 {
22918                         
22919                         $expectation->failed();
22920                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
22921                                                   Parse::RecDescent::_tracefirst($text))
22922                                                         if defined $::RD_TRACE;
22923                         last;
22924                 }
22925                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22926                                                 . $& . q{])},
22927                                                   Parse::RecDescent::_tracefirst($text))
22928                                                         if defined $::RD_TRACE;
22929                 push @item, $item{__STRING1__}=$&;
22930                 
22931
22932                 Parse::RecDescent::_trace(q{Trying subrule: [triggered_action]},
22933                                   Parse::RecDescent::_tracefirst($text),
22934                                   q{create},
22935                                   $tracelevel)
22936                                         if defined $::RD_TRACE;
22937                 if (1) { no strict qw{refs};
22938                 $expectation->is(q{triggered_action})->at($text);
22939                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22940                 {
22941                         
22942                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [triggered_action]>>},
22943                                                   Parse::RecDescent::_tracefirst($text),
22944                                                   q{create},
22945                                                   $tracelevel)
22946                                                         if defined $::RD_TRACE;
22947                         $expectation->failed();
22948                         last;
22949                 }
22950                 Parse::RecDescent::_trace(q{>>Matched subrule: [triggered_action]<< (return value: [}
22951                                         . $_tok . q{]},
22952                                           
22953                                           Parse::RecDescent::_tracefirst($text),
22954                                           q{create},
22955                                           $tracelevel)
22956                                                 if defined $::RD_TRACE;
22957                 $item{q{triggered_action}} = $_tok;
22958                 push @item, $_tok;
22959                 
22960                 }
22961
22962                 Parse::RecDescent::_trace(q{Trying action},
22963                                           Parse::RecDescent::_tracefirst($text),
22964                                           q{create},
22965                                           $tracelevel)
22966                                                 if defined $::RD_TRACE;
22967                 
22968
22969                 $_tok = ($_noactions) ? 0 : do {
22970     my $table_name = $item{'table_name'}{'name'};
22971     $return =  {
22972         table      => $table_name,
22973         schema     => $item{'trigger_name'}{'schema'},
22974         name       => $item{'trigger_name'}{'name'},
22975         when       => 'before',
22976         db_event   => $item{'type'}->{'event'},
22977         fields     => $item{'type'}{'fields'},
22978         condition  => $item{'triggered_action'}{'condition'},
22979         reference  => $item{'reference_b'},
22980         granularity => $item[9],
22981         action     => $item{'triggered_action'}{'statement'}
22982     };
22983
22984     push @triggers, $return;
22985 };
22986                 unless (defined $_tok)
22987                 {
22988                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
22989                                         if defined $::RD_TRACE;
22990                         last;
22991                 }
22992                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
22993                                           . $_tok . q{])},
22994                                           Parse::RecDescent::_tracefirst($text))
22995                                                 if defined $::RD_TRACE;
22996                 push @item, $_tok;
22997                 $item{__ACTION1__}=$_tok;
22998                 
22999
23000
23001                 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]<<},
23002                                           Parse::RecDescent::_tracefirst($text),
23003                                           q{create},
23004                                           $tracelevel)
23005                                                 if defined $::RD_TRACE;
23006                 $_matched = 1;
23007                 last;
23008         }
23009
23010
23011         while (!$_matched && !$commit)
23012         {
23013                 
23014                 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]},
23015                                           Parse::RecDescent::_tracefirst($_[1]),
23016                                           q{create},
23017                                           $tracelevel)
23018                                                 if defined $::RD_TRACE;
23019                 my $thisprod = $thisrule->{"prods"}[1];
23020                 $text = $_[1];
23021                 my $_savetext;
23022                 @item = (q{create});
23023                 %item = (__RULE__ => q{create});
23024                 my $repcount = 0;
23025
23026
23027                 Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
23028                                   Parse::RecDescent::_tracefirst($text),
23029                                   q{create},
23030                                   $tracelevel)
23031                                         if defined $::RD_TRACE;
23032                 if (1) { no strict qw{refs};
23033                 $expectation->is(q{})->at($text);
23034                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23035                 {
23036                         
23037                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [CREATE]>>},
23038                                                   Parse::RecDescent::_tracefirst($text),
23039                                                   q{create},
23040                                                   $tracelevel)
23041                                                         if defined $::RD_TRACE;
23042                         $expectation->failed();
23043                         last;
23044                 }
23045                 Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
23046                                         . $_tok . q{]},
23047                                           
23048                                           Parse::RecDescent::_tracefirst($text),
23049                                           q{create},
23050                                           $tracelevel)
23051                                                 if defined $::RD_TRACE;
23052                 $item{q{CREATE}} = $_tok;
23053                 push @item, $_tok;
23054                 
23055                 }
23056
23057                 Parse::RecDescent::_trace(q{Trying subrule: [TRIGGER]},
23058                                   Parse::RecDescent::_tracefirst($text),
23059                                   q{create},
23060                                   $tracelevel)
23061                                         if defined $::RD_TRACE;
23062                 if (1) { no strict qw{refs};
23063                 $expectation->is(q{TRIGGER})->at($text);
23064                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::TRIGGER($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23065                 {
23066                         
23067                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [TRIGGER]>>},
23068                                                   Parse::RecDescent::_tracefirst($text),
23069                                                   q{create},
23070                                                   $tracelevel)
23071                                                         if defined $::RD_TRACE;
23072                         $expectation->failed();
23073                         last;
23074                 }
23075                 Parse::RecDescent::_trace(q{>>Matched subrule: [TRIGGER]<< (return value: [}
23076                                         . $_tok . q{]},
23077                                           
23078                                           Parse::RecDescent::_tracefirst($text),
23079                                           q{create},
23080                                           $tracelevel)
23081                                                 if defined $::RD_TRACE;
23082                 $item{q{TRIGGER}} = $_tok;
23083                 push @item, $_tok;
23084                 
23085                 }
23086
23087                 Parse::RecDescent::_trace(q{Trying subrule: [trigger_name]},
23088                                   Parse::RecDescent::_tracefirst($text),
23089                                   q{create},
23090                                   $tracelevel)
23091                                         if defined $::RD_TRACE;
23092                 if (1) { no strict qw{refs};
23093                 $expectation->is(q{trigger_name})->at($text);
23094                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::trigger_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23095                 {
23096                         
23097                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [trigger_name]>>},
23098                                                   Parse::RecDescent::_tracefirst($text),
23099                                                   q{create},
23100                                                   $tracelevel)
23101                                                         if defined $::RD_TRACE;
23102                         $expectation->failed();
23103                         last;
23104                 }
23105                 Parse::RecDescent::_trace(q{>>Matched subrule: [trigger_name]<< (return value: [}
23106                                         . $_tok . q{]},
23107                                           
23108                                           Parse::RecDescent::_tracefirst($text),
23109                                           q{create},
23110                                           $tracelevel)
23111                                                 if defined $::RD_TRACE;
23112                 $item{q{trigger_name}} = $_tok;
23113                 push @item, $_tok;
23114                 
23115                 }
23116
23117                 Parse::RecDescent::_trace(q{Trying subrule: [after]},
23118                                   Parse::RecDescent::_tracefirst($text),
23119                                   q{create},
23120                                   $tracelevel)
23121                                         if defined $::RD_TRACE;
23122                 if (1) { no strict qw{refs};
23123                 $expectation->is(q{after})->at($text);
23124                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::after($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23125                 {
23126                         
23127                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [after]>>},
23128                                                   Parse::RecDescent::_tracefirst($text),
23129                                                   q{create},
23130                                                   $tracelevel)
23131                                                         if defined $::RD_TRACE;
23132                         $expectation->failed();
23133                         last;
23134                 }
23135                 Parse::RecDescent::_trace(q{>>Matched subrule: [after]<< (return value: [}
23136                                         . $_tok . q{]},
23137                                           
23138                                           Parse::RecDescent::_tracefirst($text),
23139                                           q{create},
23140                                           $tracelevel)
23141                                                 if defined $::RD_TRACE;
23142                 $item{q{after}} = $_tok;
23143                 push @item, $_tok;
23144                 
23145                 }
23146
23147                 Parse::RecDescent::_trace(q{Trying subrule: [type]},
23148                                   Parse::RecDescent::_tracefirst($text),
23149                                   q{create},
23150                                   $tracelevel)
23151                                         if defined $::RD_TRACE;
23152                 if (1) { no strict qw{refs};
23153                 $expectation->is(q{type})->at($text);
23154                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23155                 {
23156                         
23157                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [type]>>},
23158                                                   Parse::RecDescent::_tracefirst($text),
23159                                                   q{create},
23160                                                   $tracelevel)
23161                                                         if defined $::RD_TRACE;
23162                         $expectation->failed();
23163                         last;
23164                 }
23165                 Parse::RecDescent::_trace(q{>>Matched subrule: [type]<< (return value: [}
23166                                         . $_tok . q{]},
23167                                           
23168                                           Parse::RecDescent::_tracefirst($text),
23169                                           q{create},
23170                                           $tracelevel)
23171                                                 if defined $::RD_TRACE;
23172                 $item{q{type}} = $_tok;
23173                 push @item, $_tok;
23174                 
23175                 }
23176
23177                 Parse::RecDescent::_trace(q{Trying terminal: [/ON/i]}, Parse::RecDescent::_tracefirst($text),
23178                                           q{create},
23179                                           $tracelevel)
23180                                                 if defined $::RD_TRACE;
23181                 $lastsep = "";
23182                 $expectation->is(q{/ON/i})->at($text);
23183                 
23184
23185                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ON)//i)
23186                 {
23187                         
23188                         $expectation->failed();
23189                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23190                                                   Parse::RecDescent::_tracefirst($text))
23191                                         if defined $::RD_TRACE;
23192
23193                         last;
23194                 }
23195                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23196                                                 . $& . q{])},
23197                                                   Parse::RecDescent::_tracefirst($text))
23198                                         if defined $::RD_TRACE;
23199                 push @item, $item{__PATTERN1__}=$&;
23200                 
23201
23202                 Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
23203                                   Parse::RecDescent::_tracefirst($text),
23204                                   q{create},
23205                                   $tracelevel)
23206                                         if defined $::RD_TRACE;
23207                 if (1) { no strict qw{refs};
23208                 $expectation->is(q{table_name})->at($text);
23209                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23210                 {
23211                         
23212                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
23213                                                   Parse::RecDescent::_tracefirst($text),
23214                                                   q{create},
23215                                                   $tracelevel)
23216                                                         if defined $::RD_TRACE;
23217                         $expectation->failed();
23218                         last;
23219                 }
23220                 Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
23221                                         . $_tok . q{]},
23222                                           
23223                                           Parse::RecDescent::_tracefirst($text),
23224                                           q{create},
23225                                           $tracelevel)
23226                                                 if defined $::RD_TRACE;
23227                 $item{q{table_name}} = $_tok;
23228                 push @item, $_tok;
23229                 
23230                 }
23231
23232                 Parse::RecDescent::_trace(q{Trying repeated subrule: [reference_a]},
23233                                   Parse::RecDescent::_tracefirst($text),
23234                                   q{create},
23235                                   $tracelevel)
23236                                         if defined $::RD_TRACE;
23237                 $expectation->is(q{reference_a})->at($text);
23238                 
23239                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_a, 0, 1, $_noactions,$expectation,undef))) 
23240                 {
23241                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [reference_a]>>},
23242                                                   Parse::RecDescent::_tracefirst($text),
23243                                                   q{create},
23244                                                   $tracelevel)
23245                                                         if defined $::RD_TRACE;
23246                         last;
23247                 }
23248                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [reference_a]<< (}
23249                                         . @$_tok . q{ times)},
23250                                           
23251                                           Parse::RecDescent::_tracefirst($text),
23252                                           q{create},
23253                                           $tracelevel)
23254                                                 if defined $::RD_TRACE;
23255                 $item{q{reference_a(?)}} = $_tok;
23256                 push @item, $_tok;
23257                 
23258
23259
23260                 Parse::RecDescent::_trace(q{Trying terminal: [/FOR EACH ROW|FOR EACH STATEMENT/i]}, Parse::RecDescent::_tracefirst($text),
23261                                           q{create},
23262                                           $tracelevel)
23263                                                 if defined $::RD_TRACE;
23264                 $lastsep = "";
23265                 $expectation->is(q{/FOR EACH ROW|FOR EACH STATEMENT/i})->at($text);
23266                 
23267
23268                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOR EACH ROW|FOR EACH STATEMENT)//i)
23269                 {
23270                         
23271                         $expectation->failed();
23272                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23273                                                   Parse::RecDescent::_tracefirst($text))
23274                                         if defined $::RD_TRACE;
23275
23276                         last;
23277                 }
23278                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23279                                                 . $& . q{])},
23280                                                   Parse::RecDescent::_tracefirst($text))
23281                                         if defined $::RD_TRACE;
23282                 push @item, $item{__PATTERN2__}=$&;
23283                 
23284
23285                 Parse::RecDescent::_trace(q{Trying terminal: ['MODE DB2SQL']},
23286                                           Parse::RecDescent::_tracefirst($text),
23287                                           q{create},
23288                                           $tracelevel)
23289                                                 if defined $::RD_TRACE;
23290                 $lastsep = "";
23291                 $expectation->is(q{'MODE DB2SQL'})->at($text);
23292                 
23293
23294                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\AMODE\ DB2SQL//)
23295                 {
23296                         
23297                         $expectation->failed();
23298                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
23299                                                   Parse::RecDescent::_tracefirst($text))
23300                                                         if defined $::RD_TRACE;
23301                         last;
23302                 }
23303                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23304                                                 . $& . q{])},
23305                                                   Parse::RecDescent::_tracefirst($text))
23306                                                         if defined $::RD_TRACE;
23307                 push @item, $item{__STRING1__}=$&;
23308                 
23309
23310                 Parse::RecDescent::_trace(q{Trying subrule: [triggered_action]},
23311                                   Parse::RecDescent::_tracefirst($text),
23312                                   q{create},
23313                                   $tracelevel)
23314                                         if defined $::RD_TRACE;
23315                 if (1) { no strict qw{refs};
23316                 $expectation->is(q{triggered_action})->at($text);
23317                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23318                 {
23319                         
23320                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [triggered_action]>>},
23321                                                   Parse::RecDescent::_tracefirst($text),
23322                                                   q{create},
23323                                                   $tracelevel)
23324                                                         if defined $::RD_TRACE;
23325                         $expectation->failed();
23326                         last;
23327                 }
23328                 Parse::RecDescent::_trace(q{>>Matched subrule: [triggered_action]<< (return value: [}
23329                                         . $_tok . q{]},
23330                                           
23331                                           Parse::RecDescent::_tracefirst($text),
23332                                           q{create},
23333                                           $tracelevel)
23334                                                 if defined $::RD_TRACE;
23335                 $item{q{triggered_action}} = $_tok;
23336                 push @item, $_tok;
23337                 
23338                 }
23339
23340                 Parse::RecDescent::_trace(q{Trying action},
23341                                           Parse::RecDescent::_tracefirst($text),
23342                                           q{create},
23343                                           $tracelevel)
23344                                                 if defined $::RD_TRACE;
23345                 
23346
23347                 $_tok = ($_noactions) ? 0 : do {
23348     my $table_name = $item{'table_name'}{'name'};
23349     $return = {
23350         table      => $table_name,
23351         schema     => $item{'trigger_name'}{'schema'},
23352         name       => $item{'trigger_name'}{'name'},
23353         when       => 'after',
23354         db_event   => $item{'type'}{'event'},
23355         fields     => $item{'type'}{'fields'},
23356         condition  => $item{'triggered_action'}{'condition'},
23357         reference  => $item{'reference_a'},
23358         granularity => $item[9],
23359         action     => $item{'triggered_action'}{'statement'}
23360     };
23361
23362     push @triggers, $return;
23363 };
23364                 unless (defined $_tok)
23365                 {
23366                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
23367                                         if defined $::RD_TRACE;
23368                         last;
23369                 }
23370                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
23371                                           . $_tok . q{])},
23372                                           Parse::RecDescent::_tracefirst($text))
23373                                                 if defined $::RD_TRACE;
23374                 push @item, $_tok;
23375                 $item{__ACTION1__}=$_tok;
23376                 
23377
23378
23379                 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]<<},
23380                                           Parse::RecDescent::_tracefirst($text),
23381                                           q{create},
23382                                           $tracelevel)
23383                                                 if defined $::RD_TRACE;
23384                 $_matched = 1;
23385                 last;
23386         }
23387
23388
23389         while (!$_matched && !$commit)
23390         {
23391                 
23392                 Parse::RecDescent::_trace(q{Trying production: [CREATE /FEDERATED|/i VIEW view_name column_list /AS/i with_expression SQL_procedure_statement]},
23393                                           Parse::RecDescent::_tracefirst($_[1]),
23394                                           q{create},
23395                                           $tracelevel)
23396                                                 if defined $::RD_TRACE;
23397                 my $thisprod = $thisrule->{"prods"}[2];
23398                 $text = $_[1];
23399                 my $_savetext;
23400                 @item = (q{create});
23401                 %item = (__RULE__ => q{create});
23402                 my $repcount = 0;
23403
23404
23405                 Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
23406                                   Parse::RecDescent::_tracefirst($text),
23407                                   q{create},
23408                                   $tracelevel)
23409                                         if defined $::RD_TRACE;
23410                 if (1) { no strict qw{refs};
23411                 $expectation->is(q{})->at($text);
23412                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23413                 {
23414                         
23415                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [CREATE]>>},
23416                                                   Parse::RecDescent::_tracefirst($text),
23417                                                   q{create},
23418                                                   $tracelevel)
23419                                                         if defined $::RD_TRACE;
23420                         $expectation->failed();
23421                         last;
23422                 }
23423                 Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
23424                                         . $_tok . q{]},
23425                                           
23426                                           Parse::RecDescent::_tracefirst($text),
23427                                           q{create},
23428                                           $tracelevel)
23429                                                 if defined $::RD_TRACE;
23430                 $item{q{CREATE}} = $_tok;
23431                 push @item, $_tok;
23432                 
23433                 }
23434
23435                 Parse::RecDescent::_trace(q{Trying terminal: [/FEDERATED|/i]}, Parse::RecDescent::_tracefirst($text),
23436                                           q{create},
23437                                           $tracelevel)
23438                                                 if defined $::RD_TRACE;
23439                 $lastsep = "";
23440                 $expectation->is(q{/FEDERATED|/i})->at($text);
23441                 
23442
23443                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FEDERATED|)//i)
23444                 {
23445                         
23446                         $expectation->failed();
23447                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23448                                                   Parse::RecDescent::_tracefirst($text))
23449                                         if defined $::RD_TRACE;
23450
23451                         last;
23452                 }
23453                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23454                                                 . $& . q{])},
23455                                                   Parse::RecDescent::_tracefirst($text))
23456                                         if defined $::RD_TRACE;
23457                 push @item, $item{__PATTERN1__}=$&;
23458                 
23459
23460                 Parse::RecDescent::_trace(q{Trying subrule: [VIEW]},
23461                                   Parse::RecDescent::_tracefirst($text),
23462                                   q{create},
23463                                   $tracelevel)
23464                                         if defined $::RD_TRACE;
23465                 if (1) { no strict qw{refs};
23466                 $expectation->is(q{VIEW})->at($text);
23467                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::VIEW($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23468                 {
23469                         
23470                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [VIEW]>>},
23471                                                   Parse::RecDescent::_tracefirst($text),
23472                                                   q{create},
23473                                                   $tracelevel)
23474                                                         if defined $::RD_TRACE;
23475                         $expectation->failed();
23476                         last;
23477                 }
23478                 Parse::RecDescent::_trace(q{>>Matched subrule: [VIEW]<< (return value: [}
23479                                         . $_tok . q{]},
23480                                           
23481                                           Parse::RecDescent::_tracefirst($text),
23482                                           q{create},
23483                                           $tracelevel)
23484                                                 if defined $::RD_TRACE;
23485                 $item{q{VIEW}} = $_tok;
23486                 push @item, $_tok;
23487                 
23488                 }
23489
23490                 Parse::RecDescent::_trace(q{Trying subrule: [view_name]},
23491                                   Parse::RecDescent::_tracefirst($text),
23492                                   q{create},
23493                                   $tracelevel)
23494                                         if defined $::RD_TRACE;
23495                 if (1) { no strict qw{refs};
23496                 $expectation->is(q{view_name})->at($text);
23497                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::view_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23498                 {
23499                         
23500                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [view_name]>>},
23501                                                   Parse::RecDescent::_tracefirst($text),
23502                                                   q{create},
23503                                                   $tracelevel)
23504                                                         if defined $::RD_TRACE;
23505                         $expectation->failed();
23506                         last;
23507                 }
23508                 Parse::RecDescent::_trace(q{>>Matched subrule: [view_name]<< (return value: [}
23509                                         . $_tok . q{]},
23510                                           
23511                                           Parse::RecDescent::_tracefirst($text),
23512                                           q{create},
23513                                           $tracelevel)
23514                                                 if defined $::RD_TRACE;
23515                 $item{q{view_name}} = $_tok;
23516                 push @item, $_tok;
23517                 
23518                 }
23519
23520                 Parse::RecDescent::_trace(q{Trying repeated subrule: [column_list]},
23521                                   Parse::RecDescent::_tracefirst($text),
23522                                   q{create},
23523                                   $tracelevel)
23524                                         if defined $::RD_TRACE;
23525                 $expectation->is(q{column_list})->at($text);
23526                 
23527                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list, 0, 1, $_noactions,$expectation,undef))) 
23528                 {
23529                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [column_list]>>},
23530                                                   Parse::RecDescent::_tracefirst($text),
23531                                                   q{create},
23532                                                   $tracelevel)
23533                                                         if defined $::RD_TRACE;
23534                         last;
23535                 }
23536                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [column_list]<< (}
23537                                         . @$_tok . q{ times)},
23538                                           
23539                                           Parse::RecDescent::_tracefirst($text),
23540                                           q{create},
23541                                           $tracelevel)
23542                                                 if defined $::RD_TRACE;
23543                 $item{q{column_list(?)}} = $_tok;
23544                 push @item, $_tok;
23545                 
23546
23547
23548                 Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
23549                                           q{create},
23550                                           $tracelevel)
23551                                                 if defined $::RD_TRACE;
23552                 $lastsep = "";
23553                 $expectation->is(q{/AS/i})->at($text);
23554                 
23555
23556                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AS)//i)
23557                 {
23558                         
23559                         $expectation->failed();
23560                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23561                                                   Parse::RecDescent::_tracefirst($text))
23562                                         if defined $::RD_TRACE;
23563
23564                         last;
23565                 }
23566                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23567                                                 . $& . q{])},
23568                                                   Parse::RecDescent::_tracefirst($text))
23569                                         if defined $::RD_TRACE;
23570                 push @item, $item{__PATTERN2__}=$&;
23571                 
23572
23573                 Parse::RecDescent::_trace(q{Trying repeated subrule: [with_expression]},
23574                                   Parse::RecDescent::_tracefirst($text),
23575                                   q{create},
23576                                   $tracelevel)
23577                                         if defined $::RD_TRACE;
23578                 $expectation->is(q{with_expression})->at($text);
23579                 
23580                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::with_expression, 0, 1, $_noactions,$expectation,undef))) 
23581                 {
23582                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [with_expression]>>},
23583                                                   Parse::RecDescent::_tracefirst($text),
23584                                                   q{create},
23585                                                   $tracelevel)
23586                                                         if defined $::RD_TRACE;
23587                         last;
23588                 }
23589                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [with_expression]<< (}
23590                                         . @$_tok . q{ times)},
23591                                           
23592                                           Parse::RecDescent::_tracefirst($text),
23593                                           q{create},
23594                                           $tracelevel)
23595                                                 if defined $::RD_TRACE;
23596                 $item{q{with_expression(?)}} = $_tok;
23597                 push @item, $_tok;
23598                 
23599
23600
23601                 Parse::RecDescent::_trace(q{Trying subrule: [SQL_procedure_statement]},
23602                                   Parse::RecDescent::_tracefirst($text),
23603                                   q{create},
23604                                   $tracelevel)
23605                                         if defined $::RD_TRACE;
23606                 if (1) { no strict qw{refs};
23607                 $expectation->is(q{SQL_procedure_statement})->at($text);
23608                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23609                 {
23610                         
23611                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [SQL_procedure_statement]>>},
23612                                                   Parse::RecDescent::_tracefirst($text),
23613                                                   q{create},
23614                                                   $tracelevel)
23615                                                         if defined $::RD_TRACE;
23616                         $expectation->failed();
23617                         last;
23618                 }
23619                 Parse::RecDescent::_trace(q{>>Matched subrule: [SQL_procedure_statement]<< (return value: [}
23620                                         . $_tok . q{]},
23621                                           
23622                                           Parse::RecDescent::_tracefirst($text),
23623                                           q{create},
23624                                           $tracelevel)
23625                                                 if defined $::RD_TRACE;
23626                 $item{q{SQL_procedure_statement}} = $_tok;
23627                 push @item, $_tok;
23628                 
23629                 }
23630
23631                 Parse::RecDescent::_trace(q{Trying action},
23632                                           Parse::RecDescent::_tracefirst($text),
23633                                           q{create},
23634                                           $tracelevel)
23635                                                 if defined $::RD_TRACE;
23636                 
23637
23638                 $_tok = ($_noactions) ? 0 : do {
23639     $return = {
23640         name   => $item{view_name}{name},
23641         sql    => $item{SQL_procedure_statement},
23642         with   => $item{'with_expression(?)'},
23643         fields => $item{'column_list(?)'}
23644     };
23645     push @views, $return;
23646 };
23647                 unless (defined $_tok)
23648                 {
23649                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
23650                                         if defined $::RD_TRACE;
23651                         last;
23652                 }
23653                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
23654                                           . $_tok . q{])},
23655                                           Parse::RecDescent::_tracefirst($text))
23656                                                 if defined $::RD_TRACE;
23657                 push @item, $_tok;
23658                 $item{__ACTION1__}=$_tok;
23659                 
23660
23661
23662                 Parse::RecDescent::_trace(q{>>Matched production: [CREATE /FEDERATED|/i VIEW view_name column_list /AS/i with_expression SQL_procedure_statement]<<},
23663                                           Parse::RecDescent::_tracefirst($text),
23664                                           q{create},
23665                                           $tracelevel)
23666                                                 if defined $::RD_TRACE;
23667                 $_matched = 1;
23668                 last;
23669         }
23670
23671
23672         unless ( $_matched || defined($return) || defined($score) )
23673         {
23674                 
23675
23676                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
23677                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
23678                                          Parse::RecDescent::_tracefirst($_[1]),
23679                                          q{create},
23680                                          $tracelevel)
23681                                         if defined $::RD_TRACE;
23682                 return undef;
23683         }
23684         if (!defined($return) && defined($score))
23685         {
23686                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
23687                                           q{create},
23688                                           $tracelevel)
23689                                                 if defined $::RD_TRACE;
23690                 $return = $score_return;
23691         }
23692         splice @{$thisparser->{errors}}, $err_at;
23693         $return = $item[$#item] unless defined $return;
23694         if (defined $::RD_TRACE)
23695         {
23696                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
23697                                           $return . q{])}, "",
23698                                           q{create},
23699                                           $tracelevel);
23700                 Parse::RecDescent::_trace(q{(consumed: [} .
23701                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
23702                                           Parse::RecDescent::_tracefirst($text),
23703                                           , q{create},
23704                                           $tracelevel)
23705         }
23706         $_[1] = $text;
23707         return $return;
23708 }
23709
23710 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
23711 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysfun
23712 {
23713         my $thisparser = $_[0];
23714         use vars q{$tracelevel};
23715         local $tracelevel = ($tracelevel||0)+1;
23716         $ERRORS = 0;
23717         my $thisrule = $thisparser->{"rules"}{"sysfun"};
23718         
23719         Parse::RecDescent::_trace(q{Trying rule: [sysfun]},
23720                                   Parse::RecDescent::_tracefirst($_[1]),
23721                                   q{sysfun},
23722                                   $tracelevel)
23723                                         if defined $::RD_TRACE;
23724
23725         
23726         my $err_at = @{$thisparser->{errors}};
23727
23728         my $score;
23729         my $score_return;
23730         my $_tok;
23731         my $return = undef;
23732         my $_matched=0;
23733         my $commit=0;
23734         my @item = ();
23735         my %item = ();
23736         my $repeating =  defined($_[2]) && $_[2];
23737         my $_noactions = defined($_[3]) && $_[3];
23738         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
23739         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
23740         my $text;
23741         my $lastsep="";
23742         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
23743         $expectation->at($_[1]);
23744         
23745         my $thisline;
23746         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
23747
23748         
23749
23750         while (!$_matched && !$commit)
23751         {
23752                 
23753                 Parse::RecDescent::_trace(q{Trying production: [/ABS/i, or /ABSVAL/i]},
23754                                           Parse::RecDescent::_tracefirst($_[1]),
23755                                           q{sysfun},
23756                                           $tracelevel)
23757                                                 if defined $::RD_TRACE;
23758                 my $thisprod = $thisrule->{"prods"}[0];
23759                 $text = $_[1];
23760                 my $_savetext;
23761                 @item = (q{sysfun});
23762                 %item = (__RULE__ => q{sysfun});
23763                 my $repcount = 0;
23764
23765
23766                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_sysfun]},
23767                                   Parse::RecDescent::_tracefirst($text),
23768                                   q{sysfun},
23769                                   $tracelevel)
23770                                         if defined $::RD_TRACE;
23771                 if (1) { no strict qw{refs};
23772                 $expectation->is(q{})->at($text);
23773                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysfun($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23774                 {
23775                         
23776                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_sysfun]>>},
23777                                                   Parse::RecDescent::_tracefirst($text),
23778                                                   q{sysfun},
23779                                                   $tracelevel)
23780                                                         if defined $::RD_TRACE;
23781                         $expectation->failed();
23782                         last;
23783                 }
23784                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_sysfun]<< (return value: [}
23785                                         . $_tok . q{]},
23786                                           
23787                                           Parse::RecDescent::_tracefirst($text),
23788                                           q{sysfun},
23789                                           $tracelevel)
23790                                                 if defined $::RD_TRACE;
23791                 $item{q{_alternation_1_of_production_1_of_rule_sysfun}} = $_tok;
23792                 push @item, $_tok;
23793                 
23794                 }
23795
23796
23797                 Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i, or /ABSVAL/i]<<},
23798                                           Parse::RecDescent::_tracefirst($text),
23799                                           q{sysfun},
23800                                           $tracelevel)
23801                                                 if defined $::RD_TRACE;
23802                 $_matched = 1;
23803                 last;
23804         }
23805
23806
23807         while (!$_matched && !$commit)
23808         {
23809                 
23810                 Parse::RecDescent::_trace(q{Trying production: [/ACOS/i]},
23811                                           Parse::RecDescent::_tracefirst($_[1]),
23812                                           q{sysfun},
23813                                           $tracelevel)
23814                                                 if defined $::RD_TRACE;
23815                 my $thisprod = $thisrule->{"prods"}[1];
23816                 $text = $_[1];
23817                 my $_savetext;
23818                 @item = (q{sysfun});
23819                 %item = (__RULE__ => q{sysfun});
23820                 my $repcount = 0;
23821
23822
23823                 Parse::RecDescent::_trace(q{Trying terminal: [/ACOS/i]}, Parse::RecDescent::_tracefirst($text),
23824                                           q{sysfun},
23825                                           $tracelevel)
23826                                                 if defined $::RD_TRACE;
23827                 $lastsep = "";
23828                 $expectation->is(q{})->at($text);
23829                 
23830
23831                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ACOS)//i)
23832                 {
23833                         
23834                         $expectation->failed();
23835                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23836                                                   Parse::RecDescent::_tracefirst($text))
23837                                         if defined $::RD_TRACE;
23838
23839                         last;
23840                 }
23841                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23842                                                 . $& . q{])},
23843                                                   Parse::RecDescent::_tracefirst($text))
23844                                         if defined $::RD_TRACE;
23845                 push @item, $item{__PATTERN1__}=$&;
23846                 
23847
23848
23849                 Parse::RecDescent::_trace(q{>>Matched production: [/ACOS/i]<<},
23850                                           Parse::RecDescent::_tracefirst($text),
23851                                           q{sysfun},
23852                                           $tracelevel)
23853                                                 if defined $::RD_TRACE;
23854                 $_matched = 1;
23855                 last;
23856         }
23857
23858
23859         while (!$_matched && !$commit)
23860         {
23861                 
23862                 Parse::RecDescent::_trace(q{Trying production: [/ASCII/i]},
23863                                           Parse::RecDescent::_tracefirst($_[1]),
23864                                           q{sysfun},
23865                                           $tracelevel)
23866                                                 if defined $::RD_TRACE;
23867                 my $thisprod = $thisrule->{"prods"}[2];
23868                 $text = $_[1];
23869                 my $_savetext;
23870                 @item = (q{sysfun});
23871                 %item = (__RULE__ => q{sysfun});
23872                 my $repcount = 0;
23873
23874
23875                 Parse::RecDescent::_trace(q{Trying terminal: [/ASCII/i]}, Parse::RecDescent::_tracefirst($text),
23876                                           q{sysfun},
23877                                           $tracelevel)
23878                                                 if defined $::RD_TRACE;
23879                 $lastsep = "";
23880                 $expectation->is(q{})->at($text);
23881                 
23882
23883                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ASCII)//i)
23884                 {
23885                         
23886                         $expectation->failed();
23887                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23888                                                   Parse::RecDescent::_tracefirst($text))
23889                                         if defined $::RD_TRACE;
23890
23891                         last;
23892                 }
23893                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23894                                                 . $& . q{])},
23895                                                   Parse::RecDescent::_tracefirst($text))
23896                                         if defined $::RD_TRACE;
23897                 push @item, $item{__PATTERN1__}=$&;
23898                 
23899
23900
23901                 Parse::RecDescent::_trace(q{>>Matched production: [/ASCII/i]<<},
23902                                           Parse::RecDescent::_tracefirst($text),
23903                                           q{sysfun},
23904                                           $tracelevel)
23905                                                 if defined $::RD_TRACE;
23906                 $_matched = 1;
23907                 last;
23908         }
23909
23910
23911         while (!$_matched && !$commit)
23912         {
23913                 
23914                 Parse::RecDescent::_trace(q{Trying production: [/ASIN/i]},
23915                                           Parse::RecDescent::_tracefirst($_[1]),
23916                                           q{sysfun},
23917                                           $tracelevel)
23918                                                 if defined $::RD_TRACE;
23919                 my $thisprod = $thisrule->{"prods"}[3];
23920                 $text = $_[1];
23921                 my $_savetext;
23922                 @item = (q{sysfun});
23923                 %item = (__RULE__ => q{sysfun});
23924                 my $repcount = 0;
23925
23926
23927                 Parse::RecDescent::_trace(q{Trying terminal: [/ASIN/i]}, Parse::RecDescent::_tracefirst($text),
23928                                           q{sysfun},
23929                                           $tracelevel)
23930                                                 if defined $::RD_TRACE;
23931                 $lastsep = "";
23932                 $expectation->is(q{})->at($text);
23933                 
23934
23935                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ASIN)//i)
23936                 {
23937                         
23938                         $expectation->failed();
23939                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23940                                                   Parse::RecDescent::_tracefirst($text))
23941                                         if defined $::RD_TRACE;
23942
23943                         last;
23944                 }
23945                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23946                                                 . $& . q{])},
23947                                                   Parse::RecDescent::_tracefirst($text))
23948                                         if defined $::RD_TRACE;
23949                 push @item, $item{__PATTERN1__}=$&;
23950                 
23951
23952
23953                 Parse::RecDescent::_trace(q{>>Matched production: [/ASIN/i]<<},
23954                                           Parse::RecDescent::_tracefirst($text),
23955                                           q{sysfun},
23956                                           $tracelevel)
23957                                                 if defined $::RD_TRACE;
23958                 $_matched = 1;
23959                 last;
23960         }
23961
23962
23963         while (!$_matched && !$commit)
23964         {
23965                 
23966                 Parse::RecDescent::_trace(q{Trying production: [/ATAN/i]},
23967                                           Parse::RecDescent::_tracefirst($_[1]),
23968                                           q{sysfun},
23969                                           $tracelevel)
23970                                                 if defined $::RD_TRACE;
23971                 my $thisprod = $thisrule->{"prods"}[4];
23972                 $text = $_[1];
23973                 my $_savetext;
23974                 @item = (q{sysfun});
23975                 %item = (__RULE__ => q{sysfun});
23976                 my $repcount = 0;
23977
23978
23979                 Parse::RecDescent::_trace(q{Trying terminal: [/ATAN/i]}, Parse::RecDescent::_tracefirst($text),
23980                                           q{sysfun},
23981                                           $tracelevel)
23982                                                 if defined $::RD_TRACE;
23983                 $lastsep = "";
23984                 $expectation->is(q{})->at($text);
23985                 
23986
23987                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ATAN)//i)
23988                 {
23989                         
23990                         $expectation->failed();
23991                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23992                                                   Parse::RecDescent::_tracefirst($text))
23993                                         if defined $::RD_TRACE;
23994
23995                         last;
23996                 }
23997                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23998                                                 . $& . q{])},
23999                                                   Parse::RecDescent::_tracefirst($text))
24000                                         if defined $::RD_TRACE;
24001                 push @item, $item{__PATTERN1__}=$&;
24002                 
24003
24004
24005                 Parse::RecDescent::_trace(q{>>Matched production: [/ATAN/i]<<},
24006                                           Parse::RecDescent::_tracefirst($text),
24007                                           q{sysfun},
24008                                           $tracelevel)
24009                                                 if defined $::RD_TRACE;
24010                 $_matched = 1;
24011                 last;
24012         }
24013
24014
24015         while (!$_matched && !$commit)
24016         {
24017                 
24018                 Parse::RecDescent::_trace(q{Trying production: [/ATAN2/i]},
24019                                           Parse::RecDescent::_tracefirst($_[1]),
24020                                           q{sysfun},
24021                                           $tracelevel)
24022                                                 if defined $::RD_TRACE;
24023                 my $thisprod = $thisrule->{"prods"}[5];
24024                 $text = $_[1];
24025                 my $_savetext;
24026                 @item = (q{sysfun});
24027                 %item = (__RULE__ => q{sysfun});
24028                 my $repcount = 0;
24029
24030
24031                 Parse::RecDescent::_trace(q{Trying terminal: [/ATAN2/i]}, Parse::RecDescent::_tracefirst($text),
24032                                           q{sysfun},
24033                                           $tracelevel)
24034                                                 if defined $::RD_TRACE;
24035                 $lastsep = "";
24036                 $expectation->is(q{})->at($text);
24037                 
24038
24039                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ATAN2)//i)
24040                 {
24041                         
24042                         $expectation->failed();
24043                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24044                                                   Parse::RecDescent::_tracefirst($text))
24045                                         if defined $::RD_TRACE;
24046
24047                         last;
24048                 }
24049                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24050                                                 . $& . q{])},
24051                                                   Parse::RecDescent::_tracefirst($text))
24052                                         if defined $::RD_TRACE;
24053                 push @item, $item{__PATTERN1__}=$&;
24054                 
24055
24056
24057                 Parse::RecDescent::_trace(q{>>Matched production: [/ATAN2/i]<<},
24058                                           Parse::RecDescent::_tracefirst($text),
24059                                           q{sysfun},
24060                                           $tracelevel)
24061                                                 if defined $::RD_TRACE;
24062                 $_matched = 1;
24063                 last;
24064         }
24065
24066
24067         while (!$_matched && !$commit)
24068         {
24069                 
24070                 Parse::RecDescent::_trace(q{Trying production: [/CEIL/i, or /CEILING/i]},
24071                                           Parse::RecDescent::_tracefirst($_[1]),
24072                                           q{sysfun},
24073                                           $tracelevel)
24074                                                 if defined $::RD_TRACE;
24075                 my $thisprod = $thisrule->{"prods"}[6];
24076                 $text = $_[1];
24077                 my $_savetext;
24078                 @item = (q{sysfun});
24079                 %item = (__RULE__ => q{sysfun});
24080                 my $repcount = 0;
24081
24082
24083                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_7_of_rule_sysfun]},
24084                                   Parse::RecDescent::_tracefirst($text),
24085                                   q{sysfun},
24086                                   $tracelevel)
24087                                         if defined $::RD_TRACE;
24088                 if (1) { no strict qw{refs};
24089                 $expectation->is(q{})->at($text);
24090                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_7_of_rule_sysfun($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
24091                 {
24092                         
24093                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_7_of_rule_sysfun]>>},
24094                                                   Parse::RecDescent::_tracefirst($text),
24095                                                   q{sysfun},
24096                                                   $tracelevel)
24097                                                         if defined $::RD_TRACE;
24098                         $expectation->failed();
24099                         last;
24100                 }
24101                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_7_of_rule_sysfun]<< (return value: [}
24102                                         . $_tok . q{]},
24103                                           
24104                                           Parse::RecDescent::_tracefirst($text),
24105                                           q{sysfun},
24106                                           $tracelevel)
24107                                                 if defined $::RD_TRACE;
24108                 $item{q{_alternation_1_of_production_7_of_rule_sysfun}} = $_tok;
24109                 push @item, $_tok;
24110                 
24111                 }
24112
24113
24114                 Parse::RecDescent::_trace(q{>>Matched production: [/CEIL/i, or /CEILING/i]<<},
24115                                           Parse::RecDescent::_tracefirst($text),
24116                                           q{sysfun},
24117                                           $tracelevel)
24118                                                 if defined $::RD_TRACE;
24119                 $_matched = 1;
24120                 last;
24121         }
24122
24123
24124         while (!$_matched && !$commit)
24125         {
24126                 
24127                 Parse::RecDescent::_trace(q{Trying production: [/CHAR/i]},
24128                                           Parse::RecDescent::_tracefirst($_[1]),
24129                                           q{sysfun},
24130                                           $tracelevel)
24131                                                 if defined $::RD_TRACE;
24132                 my $thisprod = $thisrule->{"prods"}[7];
24133                 $text = $_[1];
24134                 my $_savetext;
24135                 @item = (q{sysfun});
24136                 %item = (__RULE__ => q{sysfun});
24137                 my $repcount = 0;
24138
24139
24140                 Parse::RecDescent::_trace(q{Trying terminal: [/CHAR/i]}, Parse::RecDescent::_tracefirst($text),
24141                                           q{sysfun},
24142                                           $tracelevel)
24143                                                 if defined $::RD_TRACE;
24144                 $lastsep = "";
24145                 $expectation->is(q{})->at($text);
24146                 
24147
24148                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CHAR)//i)
24149                 {
24150                         
24151                         $expectation->failed();
24152                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24153                                                   Parse::RecDescent::_tracefirst($text))
24154                                         if defined $::RD_TRACE;
24155
24156                         last;
24157                 }
24158                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24159                                                 . $& . q{])},
24160                                                   Parse::RecDescent::_tracefirst($text))
24161                                         if defined $::RD_TRACE;
24162                 push @item, $item{__PATTERN1__}=$&;
24163                 
24164
24165
24166                 Parse::RecDescent::_trace(q{>>Matched production: [/CHAR/i]<<},
24167                                           Parse::RecDescent::_tracefirst($text),
24168                                           q{sysfun},
24169                                           $tracelevel)
24170                                                 if defined $::RD_TRACE;
24171                 $_matched = 1;
24172                 last;
24173         }
24174
24175
24176         while (!$_matched && !$commit)
24177         {
24178                 
24179                 Parse::RecDescent::_trace(q{Trying production: [/CHR/i]},
24180                                           Parse::RecDescent::_tracefirst($_[1]),
24181                                           q{sysfun},
24182                                           $tracelevel)
24183                                                 if defined $::RD_TRACE;
24184                 my $thisprod = $thisrule->{"prods"}[8];
24185                 $text = $_[1];
24186                 my $_savetext;
24187                 @item = (q{sysfun});
24188                 %item = (__RULE__ => q{sysfun});
24189                 my $repcount = 0;
24190
24191
24192                 Parse::RecDescent::_trace(q{Trying terminal: [/CHR/i]}, Parse::RecDescent::_tracefirst($text),
24193                                           q{sysfun},
24194                                           $tracelevel)
24195                                                 if defined $::RD_TRACE;
24196                 $lastsep = "";
24197                 $expectation->is(q{})->at($text);
24198                 
24199
24200                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CHR)//i)
24201                 {
24202                         
24203                         $expectation->failed();
24204                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24205                                                   Parse::RecDescent::_tracefirst($text))
24206                                         if defined $::RD_TRACE;
24207
24208                         last;
24209                 }
24210                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24211                                                 . $& . q{])},
24212                                                   Parse::RecDescent::_tracefirst($text))
24213                                         if defined $::RD_TRACE;
24214                 push @item, $item{__PATTERN1__}=$&;
24215                 
24216
24217
24218                 Parse::RecDescent::_trace(q{>>Matched production: [/CHR/i]<<},
24219                                           Parse::RecDescent::_tracefirst($text),
24220                                           q{sysfun},
24221                                           $tracelevel)
24222                                                 if defined $::RD_TRACE;
24223                 $_matched = 1;
24224                 last;
24225         }
24226
24227
24228         while (!$_matched && !$commit)
24229         {
24230                 
24231                 Parse::RecDescent::_trace(q{Trying production: [/COS/i]},
24232                                           Parse::RecDescent::_tracefirst($_[1]),
24233                                           q{sysfun},
24234                                           $tracelevel)
24235                                                 if defined $::RD_TRACE;
24236                 my $thisprod = $thisrule->{"prods"}[9];
24237                 $text = $_[1];
24238                 my $_savetext;
24239                 @item = (q{sysfun});
24240                 %item = (__RULE__ => q{sysfun});
24241                 my $repcount = 0;
24242
24243
24244                 Parse::RecDescent::_trace(q{Trying terminal: [/COS/i]}, Parse::RecDescent::_tracefirst($text),
24245                                           q{sysfun},
24246                                           $tracelevel)
24247                                                 if defined $::RD_TRACE;
24248                 $lastsep = "";
24249                 $expectation->is(q{})->at($text);
24250                 
24251
24252                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COS)//i)
24253                 {
24254                         
24255                         $expectation->failed();
24256                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24257                                                   Parse::RecDescent::_tracefirst($text))
24258                                         if defined $::RD_TRACE;
24259
24260                         last;
24261                 }
24262                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24263                                                 . $& . q{])},
24264                                                   Parse::RecDescent::_tracefirst($text))
24265                                         if defined $::RD_TRACE;
24266                 push @item, $item{__PATTERN1__}=$&;
24267                 
24268
24269
24270                 Parse::RecDescent::_trace(q{>>Matched production: [/COS/i]<<},
24271                                           Parse::RecDescent::_tracefirst($text),
24272                                           q{sysfun},
24273                                           $tracelevel)
24274                                                 if defined $::RD_TRACE;
24275                 $_matched = 1;
24276                 last;
24277         }
24278
24279
24280         while (!$_matched && !$commit)
24281         {
24282                 
24283                 Parse::RecDescent::_trace(q{Trying production: [/COT/i]},
24284                                           Parse::RecDescent::_tracefirst($_[1]),
24285                                           q{sysfun},
24286                                           $tracelevel)
24287                                                 if defined $::RD_TRACE;
24288                 my $thisprod = $thisrule->{"prods"}[10];
24289                 $text = $_[1];
24290                 my $_savetext;
24291                 @item = (q{sysfun});
24292                 %item = (__RULE__ => q{sysfun});
24293                 my $repcount = 0;
24294
24295
24296                 Parse::RecDescent::_trace(q{Trying terminal: [/COT/i]}, Parse::RecDescent::_tracefirst($text),
24297                                           q{sysfun},
24298                                           $tracelevel)
24299                                                 if defined $::RD_TRACE;
24300                 $lastsep = "";
24301                 $expectation->is(q{})->at($text);
24302                 
24303
24304                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COT)//i)
24305                 {
24306                         
24307                         $expectation->failed();
24308                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24309                                                   Parse::RecDescent::_tracefirst($text))
24310                                         if defined $::RD_TRACE;
24311
24312                         last;
24313                 }
24314                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24315                                                 . $& . q{])},
24316                                                   Parse::RecDescent::_tracefirst($text))
24317                                         if defined $::RD_TRACE;
24318                 push @item, $item{__PATTERN1__}=$&;
24319                 
24320
24321
24322                 Parse::RecDescent::_trace(q{>>Matched production: [/COT/i]<<},
24323                                           Parse::RecDescent::_tracefirst($text),
24324                                           q{sysfun},
24325                                           $tracelevel)
24326                                                 if defined $::RD_TRACE;
24327                 $_matched = 1;
24328                 last;
24329         }
24330
24331
24332         while (!$_matched && !$commit)
24333         {
24334                 
24335                 Parse::RecDescent::_trace(q{Trying production: [/DAYNAME/i]},
24336                                           Parse::RecDescent::_tracefirst($_[1]),
24337                                           q{sysfun},
24338                                           $tracelevel)
24339                                                 if defined $::RD_TRACE;
24340                 my $thisprod = $thisrule->{"prods"}[11];
24341                 $text = $_[1];
24342                 my $_savetext;
24343                 @item = (q{sysfun});
24344                 %item = (__RULE__ => q{sysfun});
24345                 my $repcount = 0;
24346
24347
24348                 Parse::RecDescent::_trace(q{Trying terminal: [/DAYNAME/i]}, Parse::RecDescent::_tracefirst($text),
24349                                           q{sysfun},
24350                                           $tracelevel)
24351                                                 if defined $::RD_TRACE;
24352                 $lastsep = "";
24353                 $expectation->is(q{})->at($text);
24354                 
24355
24356                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYNAME)//i)
24357                 {
24358                         
24359                         $expectation->failed();
24360                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24361                                                   Parse::RecDescent::_tracefirst($text))
24362                                         if defined $::RD_TRACE;
24363
24364                         last;
24365                 }
24366                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24367                                                 . $& . q{])},
24368                                                   Parse::RecDescent::_tracefirst($text))
24369                                         if defined $::RD_TRACE;
24370                 push @item, $item{__PATTERN1__}=$&;
24371                 
24372
24373
24374                 Parse::RecDescent::_trace(q{>>Matched production: [/DAYNAME/i]<<},
24375                                           Parse::RecDescent::_tracefirst($text),
24376                                           q{sysfun},
24377                                           $tracelevel)
24378                                                 if defined $::RD_TRACE;
24379                 $_matched = 1;
24380                 last;
24381         }
24382
24383
24384         while (!$_matched && !$commit)
24385         {
24386                 
24387                 Parse::RecDescent::_trace(q{Trying production: [/DAYOFWEEK/i]},
24388                                           Parse::RecDescent::_tracefirst($_[1]),
24389                                           q{sysfun},
24390                                           $tracelevel)
24391                                                 if defined $::RD_TRACE;
24392                 my $thisprod = $thisrule->{"prods"}[12];
24393                 $text = $_[1];
24394                 my $_savetext;
24395                 @item = (q{sysfun});
24396                 %item = (__RULE__ => q{sysfun});
24397                 my $repcount = 0;
24398
24399
24400                 Parse::RecDescent::_trace(q{Trying terminal: [/DAYOFWEEK/i]}, Parse::RecDescent::_tracefirst($text),
24401                                           q{sysfun},
24402                                           $tracelevel)
24403                                                 if defined $::RD_TRACE;
24404                 $lastsep = "";
24405                 $expectation->is(q{})->at($text);
24406                 
24407
24408                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYOFWEEK)//i)
24409                 {
24410                         
24411                         $expectation->failed();
24412                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24413                                                   Parse::RecDescent::_tracefirst($text))
24414                                         if defined $::RD_TRACE;
24415
24416                         last;
24417                 }
24418                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24419                                                 . $& . q{])},
24420                                                   Parse::RecDescent::_tracefirst($text))
24421                                         if defined $::RD_TRACE;
24422                 push @item, $item{__PATTERN1__}=$&;
24423                 
24424
24425
24426                 Parse::RecDescent::_trace(q{>>Matched production: [/DAYOFWEEK/i]<<},
24427                                           Parse::RecDescent::_tracefirst($text),
24428                                           q{sysfun},
24429                                           $tracelevel)
24430                                                 if defined $::RD_TRACE;
24431                 $_matched = 1;
24432                 last;
24433         }
24434
24435
24436         while (!$_matched && !$commit)
24437         {
24438                 
24439                 Parse::RecDescent::_trace(q{Trying production: [/DAYOFWEEK_ISO/i]},
24440                                           Parse::RecDescent::_tracefirst($_[1]),
24441                                           q{sysfun},
24442                                           $tracelevel)
24443                                                 if defined $::RD_TRACE;
24444                 my $thisprod = $thisrule->{"prods"}[13];
24445                 $text = $_[1];
24446                 my $_savetext;
24447                 @item = (q{sysfun});
24448                 %item = (__RULE__ => q{sysfun});
24449                 my $repcount = 0;
24450
24451
24452                 Parse::RecDescent::_trace(q{Trying terminal: [/DAYOFWEEK_ISO/i]}, Parse::RecDescent::_tracefirst($text),
24453                                           q{sysfun},
24454                                           $tracelevel)
24455                                                 if defined $::RD_TRACE;
24456                 $lastsep = "";
24457                 $expectation->is(q{})->at($text);
24458                 
24459
24460                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYOFWEEK_ISO)//i)
24461                 {
24462                         
24463                         $expectation->failed();
24464                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24465                                                   Parse::RecDescent::_tracefirst($text))
24466                                         if defined $::RD_TRACE;
24467
24468                         last;
24469                 }
24470                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24471                                                 . $& . q{])},
24472                                                   Parse::RecDescent::_tracefirst($text))
24473                                         if defined $::RD_TRACE;
24474                 push @item, $item{__PATTERN1__}=$&;
24475                 
24476
24477
24478                 Parse::RecDescent::_trace(q{>>Matched production: [/DAYOFWEEK_ISO/i]<<},
24479                                           Parse::RecDescent::_tracefirst($text),
24480                                           q{sysfun},
24481                                           $tracelevel)
24482                                                 if defined $::RD_TRACE;
24483                 $_matched = 1;
24484                 last;
24485         }
24486
24487
24488         while (!$_matched && !$commit)
24489         {
24490                 
24491                 Parse::RecDescent::_trace(q{Trying production: [/DAYOFYEAR/i]},
24492                                           Parse::RecDescent::_tracefirst($_[1]),
24493                                           q{sysfun},
24494                                           $tracelevel)
24495                                                 if defined $::RD_TRACE;
24496                 my $thisprod = $thisrule->{"prods"}[14];
24497                 $text = $_[1];
24498                 my $_savetext;
24499                 @item = (q{sysfun});
24500                 %item = (__RULE__ => q{sysfun});
24501                 my $repcount = 0;
24502
24503
24504                 Parse::RecDescent::_trace(q{Trying terminal: [/DAYOFYEAR/i]}, Parse::RecDescent::_tracefirst($text),
24505                                           q{sysfun},
24506                                           $tracelevel)
24507                                                 if defined $::RD_TRACE;
24508                 $lastsep = "";
24509                 $expectation->is(q{})->at($text);
24510                 
24511
24512                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYOFYEAR)//i)
24513                 {
24514                         
24515                         $expectation->failed();
24516                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24517                                                   Parse::RecDescent::_tracefirst($text))
24518                                         if defined $::RD_TRACE;
24519
24520                         last;
24521                 }
24522                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24523                                                 . $& . q{])},
24524                                                   Parse::RecDescent::_tracefirst($text))
24525                                         if defined $::RD_TRACE;
24526                 push @item, $item{__PATTERN1__}=$&;
24527                 
24528
24529
24530                 Parse::RecDescent::_trace(q{>>Matched production: [/DAYOFYEAR/i]<<},
24531                                           Parse::RecDescent::_tracefirst($text),
24532                                           q{sysfun},
24533                                           $tracelevel)
24534                                                 if defined $::RD_TRACE;
24535                 $_matched = 1;
24536                 last;
24537         }
24538
24539
24540         while (!$_matched && !$commit)
24541         {
24542                 
24543                 Parse::RecDescent::_trace(q{Trying production: [/DEGREES/i]},
24544                                           Parse::RecDescent::_tracefirst($_[1]),
24545                                           q{sysfun},
24546                                           $tracelevel)
24547                                                 if defined $::RD_TRACE;
24548                 my $thisprod = $thisrule->{"prods"}[15];
24549                 $text = $_[1];
24550                 my $_savetext;
24551                 @item = (q{sysfun});
24552                 %item = (__RULE__ => q{sysfun});
24553                 my $repcount = 0;
24554
24555
24556                 Parse::RecDescent::_trace(q{Trying terminal: [/DEGREES/i]}, Parse::RecDescent::_tracefirst($text),
24557                                           q{sysfun},
24558                                           $tracelevel)
24559                                                 if defined $::RD_TRACE;
24560                 $lastsep = "";
24561                 $expectation->is(q{})->at($text);
24562                 
24563
24564                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DEGREES)//i)
24565                 {
24566                         
24567                         $expectation->failed();
24568                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24569                                                   Parse::RecDescent::_tracefirst($text))
24570                                         if defined $::RD_TRACE;
24571
24572                         last;
24573                 }
24574                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24575                                                 . $& . q{])},
24576                                                   Parse::RecDescent::_tracefirst($text))
24577                                         if defined $::RD_TRACE;
24578                 push @item, $item{__PATTERN1__}=$&;
24579                 
24580
24581
24582                 Parse::RecDescent::_trace(q{>>Matched production: [/DEGREES/i]<<},
24583                                           Parse::RecDescent::_tracefirst($text),
24584                                           q{sysfun},
24585                                           $tracelevel)
24586                                                 if defined $::RD_TRACE;
24587                 $_matched = 1;
24588                 last;
24589         }
24590
24591
24592         while (!$_matched && !$commit)
24593         {
24594                 
24595                 Parse::RecDescent::_trace(q{Trying production: [/DIFFERENCE/i]},
24596                                           Parse::RecDescent::_tracefirst($_[1]),
24597                                           q{sysfun},
24598                                           $tracelevel)
24599                                                 if defined $::RD_TRACE;
24600                 my $thisprod = $thisrule->{"prods"}[16];
24601                 $text = $_[1];
24602                 my $_savetext;
24603                 @item = (q{sysfun});
24604                 %item = (__RULE__ => q{sysfun});
24605                 my $repcount = 0;
24606
24607
24608                 Parse::RecDescent::_trace(q{Trying terminal: [/DIFFERENCE/i]}, Parse::RecDescent::_tracefirst($text),
24609                                           q{sysfun},
24610                                           $tracelevel)
24611                                                 if defined $::RD_TRACE;
24612                 $lastsep = "";
24613                 $expectation->is(q{})->at($text);
24614                 
24615
24616                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DIFFERENCE)//i)
24617                 {
24618                         
24619                         $expectation->failed();
24620                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24621                                                   Parse::RecDescent::_tracefirst($text))
24622                                         if defined $::RD_TRACE;
24623
24624                         last;
24625                 }
24626                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24627                                                 . $& . q{])},
24628                                                   Parse::RecDescent::_tracefirst($text))
24629                                         if defined $::RD_TRACE;
24630                 push @item, $item{__PATTERN1__}=$&;
24631                 
24632
24633
24634                 Parse::RecDescent::_trace(q{>>Matched production: [/DIFFERENCE/i]<<},
24635                                           Parse::RecDescent::_tracefirst($text),
24636                                           q{sysfun},
24637                                           $tracelevel)
24638                                                 if defined $::RD_TRACE;
24639                 $_matched = 1;
24640                 last;
24641         }
24642
24643
24644         while (!$_matched && !$commit)
24645         {
24646                 
24647                 Parse::RecDescent::_trace(q{Trying production: [/DOUBLE/i]},
24648                                           Parse::RecDescent::_tracefirst($_[1]),
24649                                           q{sysfun},
24650                                           $tracelevel)
24651                                                 if defined $::RD_TRACE;
24652                 my $thisprod = $thisrule->{"prods"}[17];
24653                 $text = $_[1];
24654                 my $_savetext;
24655                 @item = (q{sysfun});
24656                 %item = (__RULE__ => q{sysfun});
24657                 my $repcount = 0;
24658
24659
24660                 Parse::RecDescent::_trace(q{Trying terminal: [/DOUBLE/i]}, Parse::RecDescent::_tracefirst($text),
24661                                           q{sysfun},
24662                                           $tracelevel)
24663                                                 if defined $::RD_TRACE;
24664                 $lastsep = "";
24665                 $expectation->is(q{})->at($text);
24666                 
24667
24668                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DOUBLE)//i)
24669                 {
24670                         
24671                         $expectation->failed();
24672                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24673                                                   Parse::RecDescent::_tracefirst($text))
24674                                         if defined $::RD_TRACE;
24675
24676                         last;
24677                 }
24678                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24679                                                 . $& . q{])},
24680                                                   Parse::RecDescent::_tracefirst($text))
24681                                         if defined $::RD_TRACE;
24682                 push @item, $item{__PATTERN1__}=$&;
24683                 
24684
24685
24686                 Parse::RecDescent::_trace(q{>>Matched production: [/DOUBLE/i]<<},
24687                                           Parse::RecDescent::_tracefirst($text),
24688                                           q{sysfun},
24689                                           $tracelevel)
24690                                                 if defined $::RD_TRACE;
24691                 $_matched = 1;
24692                 last;
24693         }
24694
24695
24696         while (!$_matched && !$commit)
24697         {
24698                 
24699                 Parse::RecDescent::_trace(q{Trying production: [/EXP/i]},
24700                                           Parse::RecDescent::_tracefirst($_[1]),
24701                                           q{sysfun},
24702                                           $tracelevel)
24703                                                 if defined $::RD_TRACE;
24704                 my $thisprod = $thisrule->{"prods"}[18];
24705                 $text = $_[1];
24706                 my $_savetext;
24707                 @item = (q{sysfun});
24708                 %item = (__RULE__ => q{sysfun});
24709                 my $repcount = 0;
24710
24711
24712                 Parse::RecDescent::_trace(q{Trying terminal: [/EXP/i]}, Parse::RecDescent::_tracefirst($text),
24713                                           q{sysfun},
24714                                           $tracelevel)
24715                                                 if defined $::RD_TRACE;
24716                 $lastsep = "";
24717                 $expectation->is(q{})->at($text);
24718                 
24719
24720                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:EXP)//i)
24721                 {
24722                         
24723                         $expectation->failed();
24724                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24725                                                   Parse::RecDescent::_tracefirst($text))
24726                                         if defined $::RD_TRACE;
24727
24728                         last;
24729                 }
24730                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24731                                                 . $& . q{])},
24732                                                   Parse::RecDescent::_tracefirst($text))
24733                                         if defined $::RD_TRACE;
24734                 push @item, $item{__PATTERN1__}=$&;
24735                 
24736
24737
24738                 Parse::RecDescent::_trace(q{>>Matched production: [/EXP/i]<<},
24739                                           Parse::RecDescent::_tracefirst($text),
24740                                           q{sysfun},
24741                                           $tracelevel)
24742                                                 if defined $::RD_TRACE;
24743                 $_matched = 1;
24744                 last;
24745         }
24746
24747
24748         while (!$_matched && !$commit)
24749         {
24750                 
24751                 Parse::RecDescent::_trace(q{Trying production: [/FLOOR/i]},
24752                                           Parse::RecDescent::_tracefirst($_[1]),
24753                                           q{sysfun},
24754                                           $tracelevel)
24755                                                 if defined $::RD_TRACE;
24756                 my $thisprod = $thisrule->{"prods"}[19];
24757                 $text = $_[1];
24758                 my $_savetext;
24759                 @item = (q{sysfun});
24760                 %item = (__RULE__ => q{sysfun});
24761                 my $repcount = 0;
24762
24763
24764                 Parse::RecDescent::_trace(q{Trying terminal: [/FLOOR/i]}, Parse::RecDescent::_tracefirst($text),
24765                                           q{sysfun},
24766                                           $tracelevel)
24767                                                 if defined $::RD_TRACE;
24768                 $lastsep = "";
24769                 $expectation->is(q{})->at($text);
24770                 
24771
24772                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FLOOR)//i)
24773                 {
24774                         
24775                         $expectation->failed();
24776                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24777                                                   Parse::RecDescent::_tracefirst($text))
24778                                         if defined $::RD_TRACE;
24779
24780                         last;
24781                 }
24782                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24783                                                 . $& . q{])},
24784                                                   Parse::RecDescent::_tracefirst($text))
24785                                         if defined $::RD_TRACE;
24786                 push @item, $item{__PATTERN1__}=$&;
24787                 
24788
24789
24790                 Parse::RecDescent::_trace(q{>>Matched production: [/FLOOR/i]<<},
24791                                           Parse::RecDescent::_tracefirst($text),
24792                                           q{sysfun},
24793                                           $tracelevel)
24794                                                 if defined $::RD_TRACE;
24795                 $_matched = 1;
24796                 last;
24797         }
24798
24799
24800         while (!$_matched && !$commit)
24801         {
24802                 
24803                 Parse::RecDescent::_trace(q{Trying production: [/GET_ROUTINE_SAR/i]},
24804                                           Parse::RecDescent::_tracefirst($_[1]),
24805                                           q{sysfun},
24806                                           $tracelevel)
24807                                                 if defined $::RD_TRACE;
24808                 my $thisprod = $thisrule->{"prods"}[20];
24809                 $text = $_[1];
24810                 my $_savetext;
24811                 @item = (q{sysfun});
24812                 %item = (__RULE__ => q{sysfun});
24813                 my $repcount = 0;
24814
24815
24816                 Parse::RecDescent::_trace(q{Trying terminal: [/GET_ROUTINE_SAR/i]}, Parse::RecDescent::_tracefirst($text),
24817                                           q{sysfun},
24818                                           $tracelevel)
24819                                                 if defined $::RD_TRACE;
24820                 $lastsep = "";
24821                 $expectation->is(q{})->at($text);
24822                 
24823
24824                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GET_ROUTINE_SAR)//i)
24825                 {
24826                         
24827                         $expectation->failed();
24828                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24829                                                   Parse::RecDescent::_tracefirst($text))
24830                                         if defined $::RD_TRACE;
24831
24832                         last;
24833                 }
24834                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24835                                                 . $& . q{])},
24836                                                   Parse::RecDescent::_tracefirst($text))
24837                                         if defined $::RD_TRACE;
24838                 push @item, $item{__PATTERN1__}=$&;
24839                 
24840
24841
24842                 Parse::RecDescent::_trace(q{>>Matched production: [/GET_ROUTINE_SAR/i]<<},
24843                                           Parse::RecDescent::_tracefirst($text),
24844                                           q{sysfun},
24845                                           $tracelevel)
24846                                                 if defined $::RD_TRACE;
24847                 $_matched = 1;
24848                 last;
24849         }
24850
24851
24852         while (!$_matched && !$commit)
24853         {
24854                 
24855                 Parse::RecDescent::_trace(q{Trying production: [/INSERT/i]},
24856                                           Parse::RecDescent::_tracefirst($_[1]),
24857                                           q{sysfun},
24858                                           $tracelevel)
24859                                                 if defined $::RD_TRACE;
24860                 my $thisprod = $thisrule->{"prods"}[21];
24861                 $text = $_[1];
24862                 my $_savetext;
24863                 @item = (q{sysfun});
24864                 %item = (__RULE__ => q{sysfun});
24865                 my $repcount = 0;
24866
24867
24868                 Parse::RecDescent::_trace(q{Trying terminal: [/INSERT/i]}, Parse::RecDescent::_tracefirst($text),
24869                                           q{sysfun},
24870                                           $tracelevel)
24871                                                 if defined $::RD_TRACE;
24872                 $lastsep = "";
24873                 $expectation->is(q{})->at($text);
24874                 
24875
24876                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:INSERT)//i)
24877                 {
24878                         
24879                         $expectation->failed();
24880                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24881                                                   Parse::RecDescent::_tracefirst($text))
24882                                         if defined $::RD_TRACE;
24883
24884                         last;
24885                 }
24886                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24887                                                 . $& . q{])},
24888                                                   Parse::RecDescent::_tracefirst($text))
24889                                         if defined $::RD_TRACE;
24890                 push @item, $item{__PATTERN1__}=$&;
24891                 
24892
24893
24894                 Parse::RecDescent::_trace(q{>>Matched production: [/INSERT/i]<<},
24895                                           Parse::RecDescent::_tracefirst($text),
24896                                           q{sysfun},
24897                                           $tracelevel)
24898                                                 if defined $::RD_TRACE;
24899                 $_matched = 1;
24900                 last;
24901         }
24902
24903
24904         while (!$_matched && !$commit)
24905         {
24906                 
24907                 Parse::RecDescent::_trace(q{Trying production: [/JULIAN_DAY/i]},
24908                                           Parse::RecDescent::_tracefirst($_[1]),
24909                                           q{sysfun},
24910                                           $tracelevel)
24911                                                 if defined $::RD_TRACE;
24912                 my $thisprod = $thisrule->{"prods"}[22];
24913                 $text = $_[1];
24914                 my $_savetext;
24915                 @item = (q{sysfun});
24916                 %item = (__RULE__ => q{sysfun});
24917                 my $repcount = 0;
24918
24919
24920                 Parse::RecDescent::_trace(q{Trying terminal: [/JULIAN_DAY/i]}, Parse::RecDescent::_tracefirst($text),
24921                                           q{sysfun},
24922                                           $tracelevel)
24923                                                 if defined $::RD_TRACE;
24924                 $lastsep = "";
24925                 $expectation->is(q{})->at($text);
24926                 
24927
24928                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:JULIAN_DAY)//i)
24929                 {
24930                         
24931                         $expectation->failed();
24932                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24933                                                   Parse::RecDescent::_tracefirst($text))
24934                                         if defined $::RD_TRACE;
24935
24936                         last;
24937                 }
24938                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24939                                                 . $& . q{])},
24940                                                   Parse::RecDescent::_tracefirst($text))
24941                                         if defined $::RD_TRACE;
24942                 push @item, $item{__PATTERN1__}=$&;
24943                 
24944
24945
24946                 Parse::RecDescent::_trace(q{>>Matched production: [/JULIAN_DAY/i]<<},
24947                                           Parse::RecDescent::_tracefirst($text),
24948                                           q{sysfun},
24949                                           $tracelevel)
24950                                                 if defined $::RD_TRACE;
24951                 $_matched = 1;
24952                 last;
24953         }
24954
24955
24956         while (!$_matched && !$commit)
24957         {
24958                 
24959                 Parse::RecDescent::_trace(q{Trying production: [/LCASE/i]},
24960                                           Parse::RecDescent::_tracefirst($_[1]),
24961                                           q{sysfun},
24962                                           $tracelevel)
24963                                                 if defined $::RD_TRACE;
24964                 my $thisprod = $thisrule->{"prods"}[23];
24965                 $text = $_[1];
24966                 my $_savetext;
24967                 @item = (q{sysfun});
24968                 %item = (__RULE__ => q{sysfun});
24969                 my $repcount = 0;
24970
24971
24972                 Parse::RecDescent::_trace(q{Trying terminal: [/LCASE/i]}, Parse::RecDescent::_tracefirst($text),
24973                                           q{sysfun},
24974                                           $tracelevel)
24975                                                 if defined $::RD_TRACE;
24976                 $lastsep = "";
24977                 $expectation->is(q{})->at($text);
24978                 
24979
24980                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LCASE)//i)
24981                 {
24982                         
24983                         $expectation->failed();
24984                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24985                                                   Parse::RecDescent::_tracefirst($text))
24986                                         if defined $::RD_TRACE;
24987
24988                         last;
24989                 }
24990                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24991                                                 . $& . q{])},
24992                                                   Parse::RecDescent::_tracefirst($text))
24993                                         if defined $::RD_TRACE;
24994                 push @item, $item{__PATTERN1__}=$&;
24995                 
24996
24997
24998                 Parse::RecDescent::_trace(q{>>Matched production: [/LCASE/i]<<},
24999                                           Parse::RecDescent::_tracefirst($text),
25000                                           q{sysfun},
25001                                           $tracelevel)
25002                                                 if defined $::RD_TRACE;
25003                 $_matched = 1;
25004                 last;
25005         }
25006
25007
25008         while (!$_matched && !$commit)
25009         {
25010                 
25011                 Parse::RecDescent::_trace(q{Trying production: [/LEFT/i]},
25012                                           Parse::RecDescent::_tracefirst($_[1]),
25013                                           q{sysfun},
25014                                           $tracelevel)
25015                                                 if defined $::RD_TRACE;
25016                 my $thisprod = $thisrule->{"prods"}[24];
25017                 $text = $_[1];
25018                 my $_savetext;
25019                 @item = (q{sysfun});
25020                 %item = (__RULE__ => q{sysfun});
25021                 my $repcount = 0;
25022
25023
25024                 Parse::RecDescent::_trace(q{Trying terminal: [/LEFT/i]}, Parse::RecDescent::_tracefirst($text),
25025                                           q{sysfun},
25026                                           $tracelevel)
25027                                                 if defined $::RD_TRACE;
25028                 $lastsep = "";
25029                 $expectation->is(q{})->at($text);
25030                 
25031
25032                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LEFT)//i)
25033                 {
25034                         
25035                         $expectation->failed();
25036                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25037                                                   Parse::RecDescent::_tracefirst($text))
25038                                         if defined $::RD_TRACE;
25039
25040                         last;
25041                 }
25042                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25043                                                 . $& . q{])},
25044                                                   Parse::RecDescent::_tracefirst($text))
25045                                         if defined $::RD_TRACE;
25046                 push @item, $item{__PATTERN1__}=$&;
25047                 
25048
25049
25050                 Parse::RecDescent::_trace(q{>>Matched production: [/LEFT/i]<<},
25051                                           Parse::RecDescent::_tracefirst($text),
25052                                           q{sysfun},
25053                                           $tracelevel)
25054                                                 if defined $::RD_TRACE;
25055                 $_matched = 1;
25056                 last;
25057         }
25058
25059
25060         while (!$_matched && !$commit)
25061         {
25062                 
25063                 Parse::RecDescent::_trace(q{Trying production: [/LN/i]},
25064                                           Parse::RecDescent::_tracefirst($_[1]),
25065                                           q{sysfun},
25066                                           $tracelevel)
25067                                                 if defined $::RD_TRACE;
25068                 my $thisprod = $thisrule->{"prods"}[25];
25069                 $text = $_[1];
25070                 my $_savetext;
25071                 @item = (q{sysfun});
25072                 %item = (__RULE__ => q{sysfun});
25073                 my $repcount = 0;
25074
25075
25076                 Parse::RecDescent::_trace(q{Trying terminal: [/LN/i]}, Parse::RecDescent::_tracefirst($text),
25077                                           q{sysfun},
25078                                           $tracelevel)
25079                                                 if defined $::RD_TRACE;
25080                 $lastsep = "";
25081                 $expectation->is(q{})->at($text);
25082                 
25083
25084                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LN)//i)
25085                 {
25086                         
25087                         $expectation->failed();
25088                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25089                                                   Parse::RecDescent::_tracefirst($text))
25090                                         if defined $::RD_TRACE;
25091
25092                         last;
25093                 }
25094                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25095                                                 . $& . q{])},
25096                                                   Parse::RecDescent::_tracefirst($text))
25097                                         if defined $::RD_TRACE;
25098                 push @item, $item{__PATTERN1__}=$&;
25099                 
25100
25101
25102                 Parse::RecDescent::_trace(q{>>Matched production: [/LN/i]<<},
25103                                           Parse::RecDescent::_tracefirst($text),
25104                                           q{sysfun},
25105                                           $tracelevel)
25106                                                 if defined $::RD_TRACE;
25107                 $_matched = 1;
25108                 last;
25109         }
25110
25111
25112         while (!$_matched && !$commit)
25113         {
25114                 
25115                 Parse::RecDescent::_trace(q{Trying production: [/LOCATE/i]},
25116                                           Parse::RecDescent::_tracefirst($_[1]),
25117                                           q{sysfun},
25118                                           $tracelevel)
25119                                                 if defined $::RD_TRACE;
25120                 my $thisprod = $thisrule->{"prods"}[26];
25121                 $text = $_[1];
25122                 my $_savetext;
25123                 @item = (q{sysfun});
25124                 %item = (__RULE__ => q{sysfun});
25125                 my $repcount = 0;
25126
25127
25128                 Parse::RecDescent::_trace(q{Trying terminal: [/LOCATE/i]}, Parse::RecDescent::_tracefirst($text),
25129                                           q{sysfun},
25130                                           $tracelevel)
25131                                                 if defined $::RD_TRACE;
25132                 $lastsep = "";
25133                 $expectation->is(q{})->at($text);
25134                 
25135
25136                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOCATE)//i)
25137                 {
25138                         
25139                         $expectation->failed();
25140                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25141                                                   Parse::RecDescent::_tracefirst($text))
25142                                         if defined $::RD_TRACE;
25143
25144                         last;
25145                 }
25146                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25147                                                 . $& . q{])},
25148                                                   Parse::RecDescent::_tracefirst($text))
25149                                         if defined $::RD_TRACE;
25150                 push @item, $item{__PATTERN1__}=$&;
25151                 
25152
25153
25154                 Parse::RecDescent::_trace(q{>>Matched production: [/LOCATE/i]<<},
25155                                           Parse::RecDescent::_tracefirst($text),
25156                                           q{sysfun},
25157                                           $tracelevel)
25158                                                 if defined $::RD_TRACE;
25159                 $_matched = 1;
25160                 last;
25161         }
25162
25163
25164         while (!$_matched && !$commit)
25165         {
25166                 
25167                 Parse::RecDescent::_trace(q{Trying production: [/LOG/i]},
25168                                           Parse::RecDescent::_tracefirst($_[1]),
25169                                           q{sysfun},
25170                                           $tracelevel)
25171                                                 if defined $::RD_TRACE;
25172                 my $thisprod = $thisrule->{"prods"}[27];
25173                 $text = $_[1];
25174                 my $_savetext;
25175                 @item = (q{sysfun});
25176                 %item = (__RULE__ => q{sysfun});
25177                 my $repcount = 0;
25178
25179
25180                 Parse::RecDescent::_trace(q{Trying terminal: [/LOG/i]}, Parse::RecDescent::_tracefirst($text),
25181                                           q{sysfun},
25182                                           $tracelevel)
25183                                                 if defined $::RD_TRACE;
25184                 $lastsep = "";
25185                 $expectation->is(q{})->at($text);
25186                 
25187
25188                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOG)//i)
25189                 {
25190                         
25191                         $expectation->failed();
25192                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25193                                                   Parse::RecDescent::_tracefirst($text))
25194                                         if defined $::RD_TRACE;
25195
25196                         last;
25197                 }
25198                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25199                                                 . $& . q{])},
25200                                                   Parse::RecDescent::_tracefirst($text))
25201                                         if defined $::RD_TRACE;
25202                 push @item, $item{__PATTERN1__}=$&;
25203                 
25204
25205
25206                 Parse::RecDescent::_trace(q{>>Matched production: [/LOG/i]<<},
25207                                           Parse::RecDescent::_tracefirst($text),
25208                                           q{sysfun},
25209                                           $tracelevel)
25210                                                 if defined $::RD_TRACE;
25211                 $_matched = 1;
25212                 last;
25213         }
25214
25215
25216         while (!$_matched && !$commit)
25217         {
25218                 
25219                 Parse::RecDescent::_trace(q{Trying production: [/LOG10/i]},
25220                                           Parse::RecDescent::_tracefirst($_[1]),
25221                                           q{sysfun},
25222                                           $tracelevel)
25223                                                 if defined $::RD_TRACE;
25224                 my $thisprod = $thisrule->{"prods"}[28];
25225                 $text = $_[1];
25226                 my $_savetext;
25227                 @item = (q{sysfun});
25228                 %item = (__RULE__ => q{sysfun});
25229                 my $repcount = 0;
25230
25231
25232                 Parse::RecDescent::_trace(q{Trying terminal: [/LOG10/i]}, Parse::RecDescent::_tracefirst($text),
25233                                           q{sysfun},
25234                                           $tracelevel)
25235                                                 if defined $::RD_TRACE;
25236                 $lastsep = "";
25237                 $expectation->is(q{})->at($text);
25238                 
25239
25240                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOG10)//i)
25241                 {
25242                         
25243                         $expectation->failed();
25244                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25245                                                   Parse::RecDescent::_tracefirst($text))
25246                                         if defined $::RD_TRACE;
25247
25248                         last;
25249                 }
25250                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25251                                                 . $& . q{])},
25252                                                   Parse::RecDescent::_tracefirst($text))
25253                                         if defined $::RD_TRACE;
25254                 push @item, $item{__PATTERN1__}=$&;
25255                 
25256
25257
25258                 Parse::RecDescent::_trace(q{>>Matched production: [/LOG10/i]<<},
25259                                           Parse::RecDescent::_tracefirst($text),
25260                                           q{sysfun},
25261                                           $tracelevel)
25262                                                 if defined $::RD_TRACE;
25263                 $_matched = 1;
25264                 last;
25265         }
25266
25267
25268         while (!$_matched && !$commit)
25269         {
25270                 
25271                 Parse::RecDescent::_trace(q{Trying production: [/LTRIM/i]},
25272                                           Parse::RecDescent::_tracefirst($_[1]),
25273                                           q{sysfun},
25274                                           $tracelevel)
25275                                                 if defined $::RD_TRACE;
25276                 my $thisprod = $thisrule->{"prods"}[29];
25277                 $text = $_[1];
25278                 my $_savetext;
25279                 @item = (q{sysfun});
25280                 %item = (__RULE__ => q{sysfun});
25281                 my $repcount = 0;
25282
25283
25284                 Parse::RecDescent::_trace(q{Trying terminal: [/LTRIM/i]}, Parse::RecDescent::_tracefirst($text),
25285                                           q{sysfun},
25286                                           $tracelevel)
25287                                                 if defined $::RD_TRACE;
25288                 $lastsep = "";
25289                 $expectation->is(q{})->at($text);
25290                 
25291
25292                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LTRIM)//i)
25293                 {
25294                         
25295                         $expectation->failed();
25296                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25297                                                   Parse::RecDescent::_tracefirst($text))
25298                                         if defined $::RD_TRACE;
25299
25300                         last;
25301                 }
25302                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25303                                                 . $& . q{])},
25304                                                   Parse::RecDescent::_tracefirst($text))
25305                                         if defined $::RD_TRACE;
25306                 push @item, $item{__PATTERN1__}=$&;
25307                 
25308
25309
25310                 Parse::RecDescent::_trace(q{>>Matched production: [/LTRIM/i]<<},
25311                                           Parse::RecDescent::_tracefirst($text),
25312                                           q{sysfun},
25313                                           $tracelevel)
25314                                                 if defined $::RD_TRACE;
25315                 $_matched = 1;
25316                 last;
25317         }
25318
25319
25320         while (!$_matched && !$commit)
25321         {
25322                 
25323                 Parse::RecDescent::_trace(q{Trying production: [/MIDNIGHT_SECONDS/i]},
25324                                           Parse::RecDescent::_tracefirst($_[1]),
25325                                           q{sysfun},
25326                                           $tracelevel)
25327                                                 if defined $::RD_TRACE;
25328                 my $thisprod = $thisrule->{"prods"}[30];
25329                 $text = $_[1];
25330                 my $_savetext;
25331                 @item = (q{sysfun});
25332                 %item = (__RULE__ => q{sysfun});
25333                 my $repcount = 0;
25334
25335
25336                 Parse::RecDescent::_trace(q{Trying terminal: [/MIDNIGHT_SECONDS/i]}, Parse::RecDescent::_tracefirst($text),
25337                                           q{sysfun},
25338                                           $tracelevel)
25339                                                 if defined $::RD_TRACE;
25340                 $lastsep = "";
25341                 $expectation->is(q{})->at($text);
25342                 
25343
25344                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MIDNIGHT_SECONDS)//i)
25345                 {
25346                         
25347                         $expectation->failed();
25348                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25349                                                   Parse::RecDescent::_tracefirst($text))
25350                                         if defined $::RD_TRACE;
25351
25352                         last;
25353                 }
25354                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25355                                                 . $& . q{])},
25356                                                   Parse::RecDescent::_tracefirst($text))
25357                                         if defined $::RD_TRACE;
25358                 push @item, $item{__PATTERN1__}=$&;
25359                 
25360
25361
25362                 Parse::RecDescent::_trace(q{>>Matched production: [/MIDNIGHT_SECONDS/i]<<},
25363                                           Parse::RecDescent::_tracefirst($text),
25364                                           q{sysfun},
25365                                           $tracelevel)
25366                                                 if defined $::RD_TRACE;
25367                 $_matched = 1;
25368                 last;
25369         }
25370
25371
25372         while (!$_matched && !$commit)
25373         {
25374                 
25375                 Parse::RecDescent::_trace(q{Trying production: [/MOD/i]},
25376                                           Parse::RecDescent::_tracefirst($_[1]),
25377                                           q{sysfun},
25378                                           $tracelevel)
25379                                                 if defined $::RD_TRACE;
25380                 my $thisprod = $thisrule->{"prods"}[31];
25381                 $text = $_[1];
25382                 my $_savetext;
25383                 @item = (q{sysfun});
25384                 %item = (__RULE__ => q{sysfun});
25385                 my $repcount = 0;
25386
25387
25388                 Parse::RecDescent::_trace(q{Trying terminal: [/MOD/i]}, Parse::RecDescent::_tracefirst($text),
25389                                           q{sysfun},
25390                                           $tracelevel)
25391                                                 if defined $::RD_TRACE;
25392                 $lastsep = "";
25393                 $expectation->is(q{})->at($text);
25394                 
25395
25396                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MOD)//i)
25397                 {
25398                         
25399                         $expectation->failed();
25400                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25401                                                   Parse::RecDescent::_tracefirst($text))
25402                                         if defined $::RD_TRACE;
25403
25404                         last;
25405                 }
25406                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25407                                                 . $& . q{])},
25408                                                   Parse::RecDescent::_tracefirst($text))
25409                                         if defined $::RD_TRACE;
25410                 push @item, $item{__PATTERN1__}=$&;
25411                 
25412
25413
25414                 Parse::RecDescent::_trace(q{>>Matched production: [/MOD/i]<<},
25415                                           Parse::RecDescent::_tracefirst($text),
25416                                           q{sysfun},
25417                                           $tracelevel)
25418                                                 if defined $::RD_TRACE;
25419                 $_matched = 1;
25420                 last;
25421         }
25422
25423
25424         while (!$_matched && !$commit)
25425         {
25426                 
25427                 Parse::RecDescent::_trace(q{Trying production: [/MONTHNAME/i]},
25428                                           Parse::RecDescent::_tracefirst($_[1]),
25429                                           q{sysfun},
25430                                           $tracelevel)
25431                                                 if defined $::RD_TRACE;
25432                 my $thisprod = $thisrule->{"prods"}[32];
25433                 $text = $_[1];
25434                 my $_savetext;
25435                 @item = (q{sysfun});
25436                 %item = (__RULE__ => q{sysfun});
25437                 my $repcount = 0;
25438
25439
25440                 Parse::RecDescent::_trace(q{Trying terminal: [/MONTHNAME/i]}, Parse::RecDescent::_tracefirst($text),
25441                                           q{sysfun},
25442                                           $tracelevel)
25443                                                 if defined $::RD_TRACE;
25444                 $lastsep = "";
25445                 $expectation->is(q{})->at($text);
25446                 
25447
25448                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MONTHNAME)//i)
25449                 {
25450                         
25451                         $expectation->failed();
25452                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25453                                                   Parse::RecDescent::_tracefirst($text))
25454                                         if defined $::RD_TRACE;
25455
25456                         last;
25457                 }
25458                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25459                                                 . $& . q{])},
25460                                                   Parse::RecDescent::_tracefirst($text))
25461                                         if defined $::RD_TRACE;
25462                 push @item, $item{__PATTERN1__}=$&;
25463                 
25464
25465
25466                 Parse::RecDescent::_trace(q{>>Matched production: [/MONTHNAME/i]<<},
25467                                           Parse::RecDescent::_tracefirst($text),
25468                                           q{sysfun},
25469                                           $tracelevel)
25470                                                 if defined $::RD_TRACE;
25471                 $_matched = 1;
25472                 last;
25473         }
25474
25475
25476         while (!$_matched && !$commit)
25477         {
25478                 
25479                 Parse::RecDescent::_trace(q{Trying production: [/POWER/i]},
25480                                           Parse::RecDescent::_tracefirst($_[1]),
25481                                           q{sysfun},
25482                                           $tracelevel)
25483                                                 if defined $::RD_TRACE;
25484                 my $thisprod = $thisrule->{"prods"}[33];
25485                 $text = $_[1];
25486                 my $_savetext;
25487                 @item = (q{sysfun});
25488                 %item = (__RULE__ => q{sysfun});
25489                 my $repcount = 0;
25490
25491
25492                 Parse::RecDescent::_trace(q{Trying terminal: [/POWER/i]}, Parse::RecDescent::_tracefirst($text),
25493                                           q{sysfun},
25494                                           $tracelevel)
25495                                                 if defined $::RD_TRACE;
25496                 $lastsep = "";
25497                 $expectation->is(q{})->at($text);
25498                 
25499
25500                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:POWER)//i)
25501                 {
25502                         
25503                         $expectation->failed();
25504                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25505                                                   Parse::RecDescent::_tracefirst($text))
25506                                         if defined $::RD_TRACE;
25507
25508                         last;
25509                 }
25510                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25511                                                 . $& . q{])},
25512                                                   Parse::RecDescent::_tracefirst($text))
25513                                         if defined $::RD_TRACE;
25514                 push @item, $item{__PATTERN1__}=$&;
25515                 
25516
25517
25518                 Parse::RecDescent::_trace(q{>>Matched production: [/POWER/i]<<},
25519                                           Parse::RecDescent::_tracefirst($text),
25520                                           q{sysfun},
25521                                           $tracelevel)
25522                                                 if defined $::RD_TRACE;
25523                 $_matched = 1;
25524                 last;
25525         }
25526
25527
25528         while (!$_matched && !$commit)
25529         {
25530                 
25531                 Parse::RecDescent::_trace(q{Trying production: [/PUT_ROUTINE_SAR/i]},
25532                                           Parse::RecDescent::_tracefirst($_[1]),
25533                                           q{sysfun},
25534                                           $tracelevel)
25535                                                 if defined $::RD_TRACE;
25536                 my $thisprod = $thisrule->{"prods"}[34];
25537                 $text = $_[1];
25538                 my $_savetext;
25539                 @item = (q{sysfun});
25540                 %item = (__RULE__ => q{sysfun});
25541                 my $repcount = 0;
25542
25543
25544                 Parse::RecDescent::_trace(q{Trying terminal: [/PUT_ROUTINE_SAR/i]}, Parse::RecDescent::_tracefirst($text),
25545                                           q{sysfun},
25546                                           $tracelevel)
25547                                                 if defined $::RD_TRACE;
25548                 $lastsep = "";
25549                 $expectation->is(q{})->at($text);
25550                 
25551
25552                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PUT_ROUTINE_SAR)//i)
25553                 {
25554                         
25555                         $expectation->failed();
25556                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25557                                                   Parse::RecDescent::_tracefirst($text))
25558                                         if defined $::RD_TRACE;
25559
25560                         last;
25561                 }
25562                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25563                                                 . $& . q{])},
25564                                                   Parse::RecDescent::_tracefirst($text))
25565                                         if defined $::RD_TRACE;
25566                 push @item, $item{__PATTERN1__}=$&;
25567                 
25568
25569
25570                 Parse::RecDescent::_trace(q{>>Matched production: [/PUT_ROUTINE_SAR/i]<<},
25571                                           Parse::RecDescent::_tracefirst($text),
25572                                           q{sysfun},
25573                                           $tracelevel)
25574                                                 if defined $::RD_TRACE;
25575                 $_matched = 1;
25576                 last;
25577         }
25578
25579
25580         while (!$_matched && !$commit)
25581         {
25582                 
25583                 Parse::RecDescent::_trace(q{Trying production: [/QUARTER/i]},
25584                                           Parse::RecDescent::_tracefirst($_[1]),
25585                                           q{sysfun},
25586                                           $tracelevel)
25587                                                 if defined $::RD_TRACE;
25588                 my $thisprod = $thisrule->{"prods"}[35];
25589                 $text = $_[1];
25590                 my $_savetext;
25591                 @item = (q{sysfun});
25592                 %item = (__RULE__ => q{sysfun});
25593                 my $repcount = 0;
25594
25595
25596                 Parse::RecDescent::_trace(q{Trying terminal: [/QUARTER/i]}, Parse::RecDescent::_tracefirst($text),
25597                                           q{sysfun},
25598                                           $tracelevel)
25599                                                 if defined $::RD_TRACE;
25600                 $lastsep = "";
25601                 $expectation->is(q{})->at($text);
25602                 
25603
25604                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:QUARTER)//i)
25605                 {
25606                         
25607                         $expectation->failed();
25608                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25609                                                   Parse::RecDescent::_tracefirst($text))
25610                                         if defined $::RD_TRACE;
25611
25612                         last;
25613                 }
25614                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25615                                                 . $& . q{])},
25616                                                   Parse::RecDescent::_tracefirst($text))
25617                                         if defined $::RD_TRACE;
25618                 push @item, $item{__PATTERN1__}=$&;
25619                 
25620
25621
25622                 Parse::RecDescent::_trace(q{>>Matched production: [/QUARTER/i]<<},
25623                                           Parse::RecDescent::_tracefirst($text),
25624                                           q{sysfun},
25625                                           $tracelevel)
25626                                                 if defined $::RD_TRACE;
25627                 $_matched = 1;
25628                 last;
25629         }
25630
25631
25632         while (!$_matched && !$commit)
25633         {
25634                 
25635                 Parse::RecDescent::_trace(q{Trying production: [/RADIANS/i]},
25636                                           Parse::RecDescent::_tracefirst($_[1]),
25637                                           q{sysfun},
25638                                           $tracelevel)
25639                                                 if defined $::RD_TRACE;
25640                 my $thisprod = $thisrule->{"prods"}[36];
25641                 $text = $_[1];
25642                 my $_savetext;
25643                 @item = (q{sysfun});
25644                 %item = (__RULE__ => q{sysfun});
25645                 my $repcount = 0;
25646
25647
25648                 Parse::RecDescent::_trace(q{Trying terminal: [/RADIANS/i]}, Parse::RecDescent::_tracefirst($text),
25649                                           q{sysfun},
25650                                           $tracelevel)
25651                                                 if defined $::RD_TRACE;
25652                 $lastsep = "";
25653                 $expectation->is(q{})->at($text);
25654                 
25655
25656                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RADIANS)//i)
25657                 {
25658                         
25659                         $expectation->failed();
25660                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25661                                                   Parse::RecDescent::_tracefirst($text))
25662                                         if defined $::RD_TRACE;
25663
25664                         last;
25665                 }
25666                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25667                                                 . $& . q{])},
25668                                                   Parse::RecDescent::_tracefirst($text))
25669                                         if defined $::RD_TRACE;
25670                 push @item, $item{__PATTERN1__}=$&;
25671                 
25672
25673
25674                 Parse::RecDescent::_trace(q{>>Matched production: [/RADIANS/i]<<},
25675                                           Parse::RecDescent::_tracefirst($text),
25676                                           q{sysfun},
25677                                           $tracelevel)
25678                                                 if defined $::RD_TRACE;
25679                 $_matched = 1;
25680                 last;
25681         }
25682
25683
25684         while (!$_matched && !$commit)
25685         {
25686                 
25687                 Parse::RecDescent::_trace(q{Trying production: [/RAND/i]},
25688                                           Parse::RecDescent::_tracefirst($_[1]),
25689                                           q{sysfun},
25690                                           $tracelevel)
25691                                                 if defined $::RD_TRACE;
25692                 my $thisprod = $thisrule->{"prods"}[37];
25693                 $text = $_[1];
25694                 my $_savetext;
25695                 @item = (q{sysfun});
25696                 %item = (__RULE__ => q{sysfun});
25697                 my $repcount = 0;
25698
25699
25700                 Parse::RecDescent::_trace(q{Trying terminal: [/RAND/i]}, Parse::RecDescent::_tracefirst($text),
25701                                           q{sysfun},
25702                                           $tracelevel)
25703                                                 if defined $::RD_TRACE;
25704                 $lastsep = "";
25705                 $expectation->is(q{})->at($text);
25706                 
25707
25708                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RAND)//i)
25709                 {
25710                         
25711                         $expectation->failed();
25712                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25713                                                   Parse::RecDescent::_tracefirst($text))
25714                                         if defined $::RD_TRACE;
25715
25716                         last;
25717                 }
25718                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25719                                                 . $& . q{])},
25720                                                   Parse::RecDescent::_tracefirst($text))
25721                                         if defined $::RD_TRACE;
25722                 push @item, $item{__PATTERN1__}=$&;
25723                 
25724
25725
25726                 Parse::RecDescent::_trace(q{>>Matched production: [/RAND/i]<<},
25727                                           Parse::RecDescent::_tracefirst($text),
25728                                           q{sysfun},
25729                                           $tracelevel)
25730                                                 if defined $::RD_TRACE;
25731                 $_matched = 1;
25732                 last;
25733         }
25734
25735
25736         while (!$_matched && !$commit)
25737         {
25738                 
25739                 Parse::RecDescent::_trace(q{Trying production: [/REPEAT/i]},
25740                                           Parse::RecDescent::_tracefirst($_[1]),
25741                                           q{sysfun},
25742                                           $tracelevel)
25743                                                 if defined $::RD_TRACE;
25744                 my $thisprod = $thisrule->{"prods"}[38];
25745                 $text = $_[1];
25746                 my $_savetext;
25747                 @item = (q{sysfun});
25748                 %item = (__RULE__ => q{sysfun});
25749                 my $repcount = 0;
25750
25751
25752                 Parse::RecDescent::_trace(q{Trying terminal: [/REPEAT/i]}, Parse::RecDescent::_tracefirst($text),
25753                                           q{sysfun},
25754                                           $tracelevel)
25755                                                 if defined $::RD_TRACE;
25756                 $lastsep = "";
25757                 $expectation->is(q{})->at($text);
25758                 
25759
25760                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REPEAT)//i)
25761                 {
25762                         
25763                         $expectation->failed();
25764                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25765                                                   Parse::RecDescent::_tracefirst($text))
25766                                         if defined $::RD_TRACE;
25767
25768                         last;
25769                 }
25770                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25771                                                 . $& . q{])},
25772                                                   Parse::RecDescent::_tracefirst($text))
25773                                         if defined $::RD_TRACE;
25774                 push @item, $item{__PATTERN1__}=$&;
25775                 
25776
25777
25778                 Parse::RecDescent::_trace(q{>>Matched production: [/REPEAT/i]<<},
25779                                           Parse::RecDescent::_tracefirst($text),
25780                                           q{sysfun},
25781                                           $tracelevel)
25782                                                 if defined $::RD_TRACE;
25783                 $_matched = 1;
25784                 last;
25785         }
25786
25787
25788         while (!$_matched && !$commit)
25789         {
25790                 
25791                 Parse::RecDescent::_trace(q{Trying production: [/REPLACE/i]},
25792                                           Parse::RecDescent::_tracefirst($_[1]),
25793                                           q{sysfun},
25794                                           $tracelevel)
25795                                                 if defined $::RD_TRACE;
25796                 my $thisprod = $thisrule->{"prods"}[39];
25797                 $text = $_[1];
25798                 my $_savetext;
25799                 @item = (q{sysfun});
25800                 %item = (__RULE__ => q{sysfun});
25801                 my $repcount = 0;
25802
25803
25804                 Parse::RecDescent::_trace(q{Trying terminal: [/REPLACE/i]}, Parse::RecDescent::_tracefirst($text),
25805                                           q{sysfun},
25806                                           $tracelevel)
25807                                                 if defined $::RD_TRACE;
25808                 $lastsep = "";
25809                 $expectation->is(q{})->at($text);
25810                 
25811
25812                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REPLACE)//i)
25813                 {
25814                         
25815                         $expectation->failed();
25816                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25817                                                   Parse::RecDescent::_tracefirst($text))
25818                                         if defined $::RD_TRACE;
25819
25820                         last;
25821                 }
25822                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25823                                                 . $& . q{])},
25824                                                   Parse::RecDescent::_tracefirst($text))
25825                                         if defined $::RD_TRACE;
25826                 push @item, $item{__PATTERN1__}=$&;
25827                 
25828
25829
25830                 Parse::RecDescent::_trace(q{>>Matched production: [/REPLACE/i]<<},
25831                                           Parse::RecDescent::_tracefirst($text),
25832                                           q{sysfun},
25833                                           $tracelevel)
25834                                                 if defined $::RD_TRACE;
25835                 $_matched = 1;
25836                 last;
25837         }
25838
25839
25840         while (!$_matched && !$commit)
25841         {
25842                 
25843                 Parse::RecDescent::_trace(q{Trying production: [/RIGHT/i]},
25844                                           Parse::RecDescent::_tracefirst($_[1]),
25845                                           q{sysfun},
25846                                           $tracelevel)
25847                                                 if defined $::RD_TRACE;
25848                 my $thisprod = $thisrule->{"prods"}[40];
25849                 $text = $_[1];
25850                 my $_savetext;
25851                 @item = (q{sysfun});
25852                 %item = (__RULE__ => q{sysfun});
25853                 my $repcount = 0;
25854
25855
25856                 Parse::RecDescent::_trace(q{Trying terminal: [/RIGHT/i]}, Parse::RecDescent::_tracefirst($text),
25857                                           q{sysfun},
25858                                           $tracelevel)
25859                                                 if defined $::RD_TRACE;
25860                 $lastsep = "";
25861                 $expectation->is(q{})->at($text);
25862                 
25863
25864                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RIGHT)//i)
25865                 {
25866                         
25867                         $expectation->failed();
25868                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25869                                                   Parse::RecDescent::_tracefirst($text))
25870                                         if defined $::RD_TRACE;
25871
25872                         last;
25873                 }
25874                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25875                                                 . $& . q{])},
25876                                                   Parse::RecDescent::_tracefirst($text))
25877                                         if defined $::RD_TRACE;
25878                 push @item, $item{__PATTERN1__}=$&;
25879                 
25880
25881
25882                 Parse::RecDescent::_trace(q{>>Matched production: [/RIGHT/i]<<},
25883                                           Parse::RecDescent::_tracefirst($text),
25884                                           q{sysfun},
25885                                           $tracelevel)
25886                                                 if defined $::RD_TRACE;
25887                 $_matched = 1;
25888                 last;
25889         }
25890
25891
25892         while (!$_matched && !$commit)
25893         {
25894                 
25895                 Parse::RecDescent::_trace(q{Trying production: [/ROUND/i]},
25896                                           Parse::RecDescent::_tracefirst($_[1]),
25897                                           q{sysfun},
25898                                           $tracelevel)
25899                                                 if defined $::RD_TRACE;
25900                 my $thisprod = $thisrule->{"prods"}[41];
25901                 $text = $_[1];
25902                 my $_savetext;
25903                 @item = (q{sysfun});
25904                 %item = (__RULE__ => q{sysfun});
25905                 my $repcount = 0;
25906
25907
25908                 Parse::RecDescent::_trace(q{Trying terminal: [/ROUND/i]}, Parse::RecDescent::_tracefirst($text),
25909                                           q{sysfun},
25910                                           $tracelevel)
25911                                                 if defined $::RD_TRACE;
25912                 $lastsep = "";
25913                 $expectation->is(q{})->at($text);
25914                 
25915
25916                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ROUND)//i)
25917                 {
25918                         
25919                         $expectation->failed();
25920                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25921                                                   Parse::RecDescent::_tracefirst($text))
25922                                         if defined $::RD_TRACE;
25923
25924                         last;
25925                 }
25926                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25927                                                 . $& . q{])},
25928                                                   Parse::RecDescent::_tracefirst($text))
25929                                         if defined $::RD_TRACE;
25930                 push @item, $item{__PATTERN1__}=$&;
25931                 
25932
25933
25934                 Parse::RecDescent::_trace(q{>>Matched production: [/ROUND/i]<<},
25935                                           Parse::RecDescent::_tracefirst($text),
25936                                           q{sysfun},
25937                                           $tracelevel)
25938                                                 if defined $::RD_TRACE;
25939                 $_matched = 1;
25940                 last;
25941         }
25942
25943
25944         while (!$_matched && !$commit)
25945         {
25946                 
25947                 Parse::RecDescent::_trace(q{Trying production: [/RTRIM/ I]},
25948                                           Parse::RecDescent::_tracefirst($_[1]),
25949                                           q{sysfun},
25950                                           $tracelevel)
25951                                                 if defined $::RD_TRACE;
25952                 my $thisprod = $thisrule->{"prods"}[42];
25953                 $text = $_[1];
25954                 my $_savetext;
25955                 @item = (q{sysfun});
25956                 %item = (__RULE__ => q{sysfun});
25957                 my $repcount = 0;
25958
25959
25960                 Parse::RecDescent::_trace(q{Trying terminal: [/RTRIM/]}, Parse::RecDescent::_tracefirst($text),
25961                                           q{sysfun},
25962                                           $tracelevel)
25963                                                 if defined $::RD_TRACE;
25964                 $lastsep = "";
25965                 $expectation->is(q{})->at($text);
25966                 
25967
25968                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RTRIM)//)
25969                 {
25970                         
25971                         $expectation->failed();
25972                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25973                                                   Parse::RecDescent::_tracefirst($text))
25974                                         if defined $::RD_TRACE;
25975
25976                         last;
25977                 }
25978                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25979                                                 . $& . q{])},
25980                                                   Parse::RecDescent::_tracefirst($text))
25981                                         if defined $::RD_TRACE;
25982                 push @item, $item{__PATTERN1__}=$&;
25983                 
25984
25985                 Parse::RecDescent::_trace(q{Trying subrule: [I]},
25986                                   Parse::RecDescent::_tracefirst($text),
25987                                   q{sysfun},
25988                                   $tracelevel)
25989                                         if defined $::RD_TRACE;
25990                 if (1) { no strict qw{refs};
25991                 $expectation->is(q{I})->at($text);
25992                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::I($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
25993                 {
25994                         
25995                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [I]>>},
25996                                                   Parse::RecDescent::_tracefirst($text),
25997                                                   q{sysfun},
25998                                                   $tracelevel)
25999                                                         if defined $::RD_TRACE;
26000                         $expectation->failed();
26001                         last;
26002                 }
26003                 Parse::RecDescent::_trace(q{>>Matched subrule: [I]<< (return value: [}
26004                                         . $_tok . q{]},
26005                                           
26006                                           Parse::RecDescent::_tracefirst($text),
26007                                           q{sysfun},
26008                                           $tracelevel)
26009                                                 if defined $::RD_TRACE;
26010                 $item{q{I}} = $_tok;
26011                 push @item, $_tok;
26012                 
26013                 }
26014
26015
26016                 Parse::RecDescent::_trace(q{>>Matched production: [/RTRIM/ I]<<},
26017                                           Parse::RecDescent::_tracefirst($text),
26018                                           q{sysfun},
26019                                           $tracelevel)
26020                                                 if defined $::RD_TRACE;
26021                 $_matched = 1;
26022                 last;
26023         }
26024
26025
26026         while (!$_matched && !$commit)
26027         {
26028                 
26029                 Parse::RecDescent::_trace(q{Trying production: [/SIGN/i]},
26030                                           Parse::RecDescent::_tracefirst($_[1]),
26031                                           q{sysfun},
26032                                           $tracelevel)
26033                                                 if defined $::RD_TRACE;
26034                 my $thisprod = $thisrule->{"prods"}[43];
26035                 $text = $_[1];
26036                 my $_savetext;
26037                 @item = (q{sysfun});
26038                 %item = (__RULE__ => q{sysfun});
26039                 my $repcount = 0;
26040
26041
26042                 Parse::RecDescent::_trace(q{Trying terminal: [/SIGN/i]}, Parse::RecDescent::_tracefirst($text),
26043                                           q{sysfun},
26044                                           $tracelevel)
26045                                                 if defined $::RD_TRACE;
26046                 $lastsep = "";
26047                 $expectation->is(q{})->at($text);
26048                 
26049
26050                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SIGN)//i)
26051                 {
26052                         
26053                         $expectation->failed();
26054                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26055                                                   Parse::RecDescent::_tracefirst($text))
26056                                         if defined $::RD_TRACE;
26057
26058                         last;
26059                 }
26060                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26061                                                 . $& . q{])},
26062                                                   Parse::RecDescent::_tracefirst($text))
26063                                         if defined $::RD_TRACE;
26064                 push @item, $item{__PATTERN1__}=$&;
26065                 
26066
26067
26068                 Parse::RecDescent::_trace(q{>>Matched production: [/SIGN/i]<<},
26069                                           Parse::RecDescent::_tracefirst($text),
26070                                           q{sysfun},
26071                                           $tracelevel)
26072                                                 if defined $::RD_TRACE;
26073                 $_matched = 1;
26074                 last;
26075         }
26076
26077
26078         while (!$_matched && !$commit)
26079         {
26080                 
26081                 Parse::RecDescent::_trace(q{Trying production: [/SIN/i]},
26082                                           Parse::RecDescent::_tracefirst($_[1]),
26083                                           q{sysfun},
26084                                           $tracelevel)
26085                                                 if defined $::RD_TRACE;
26086                 my $thisprod = $thisrule->{"prods"}[44];
26087                 $text = $_[1];
26088                 my $_savetext;
26089                 @item = (q{sysfun});
26090                 %item = (__RULE__ => q{sysfun});
26091                 my $repcount = 0;
26092
26093
26094                 Parse::RecDescent::_trace(q{Trying terminal: [/SIN/i]}, Parse::RecDescent::_tracefirst($text),
26095                                           q{sysfun},
26096                                           $tracelevel)
26097                                                 if defined $::RD_TRACE;
26098                 $lastsep = "";
26099                 $expectation->is(q{})->at($text);
26100                 
26101
26102                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SIN)//i)
26103                 {
26104                         
26105                         $expectation->failed();
26106                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26107                                                   Parse::RecDescent::_tracefirst($text))
26108                                         if defined $::RD_TRACE;
26109
26110                         last;
26111                 }
26112                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26113                                                 . $& . q{])},
26114                                                   Parse::RecDescent::_tracefirst($text))
26115                                         if defined $::RD_TRACE;
26116                 push @item, $item{__PATTERN1__}=$&;
26117                 
26118
26119
26120                 Parse::RecDescent::_trace(q{>>Matched production: [/SIN/i]<<},
26121                                           Parse::RecDescent::_tracefirst($text),
26122                                           q{sysfun},
26123                                           $tracelevel)
26124                                                 if defined $::RD_TRACE;
26125                 $_matched = 1;
26126                 last;
26127         }
26128
26129
26130         while (!$_matched && !$commit)
26131         {
26132                 
26133                 Parse::RecDescent::_trace(q{Trying production: [/SOUNDEX/i]},
26134                                           Parse::RecDescent::_tracefirst($_[1]),
26135                                           q{sysfun},
26136                                           $tracelevel)
26137                                                 if defined $::RD_TRACE;
26138                 my $thisprod = $thisrule->{"prods"}[45];
26139                 $text = $_[1];
26140                 my $_savetext;
26141                 @item = (q{sysfun});
26142                 %item = (__RULE__ => q{sysfun});
26143                 my $repcount = 0;
26144
26145
26146                 Parse::RecDescent::_trace(q{Trying terminal: [/SOUNDEX/i]}, Parse::RecDescent::_tracefirst($text),
26147                                           q{sysfun},
26148                                           $tracelevel)
26149                                                 if defined $::RD_TRACE;
26150                 $lastsep = "";
26151                 $expectation->is(q{})->at($text);
26152                 
26153
26154                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SOUNDEX)//i)
26155                 {
26156                         
26157                         $expectation->failed();
26158                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26159                                                   Parse::RecDescent::_tracefirst($text))
26160                                         if defined $::RD_TRACE;
26161
26162                         last;
26163                 }
26164                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26165                                                 . $& . q{])},
26166                                                   Parse::RecDescent::_tracefirst($text))
26167                                         if defined $::RD_TRACE;
26168                 push @item, $item{__PATTERN1__}=$&;
26169                 
26170
26171
26172                 Parse::RecDescent::_trace(q{>>Matched production: [/SOUNDEX/i]<<},
26173                                           Parse::RecDescent::_tracefirst($text),
26174                                           q{sysfun},
26175                                           $tracelevel)
26176                                                 if defined $::RD_TRACE;
26177                 $_matched = 1;
26178                 last;
26179         }
26180
26181
26182         while (!$_matched && !$commit)
26183         {
26184                 
26185                 Parse::RecDescent::_trace(q{Trying production: [/SPACE/i]},
26186                                           Parse::RecDescent::_tracefirst($_[1]),
26187                                           q{sysfun},
26188                                           $tracelevel)
26189                                                 if defined $::RD_TRACE;
26190                 my $thisprod = $thisrule->{"prods"}[46];
26191                 $text = $_[1];
26192                 my $_savetext;
26193                 @item = (q{sysfun});
26194                 %item = (__RULE__ => q{sysfun});
26195                 my $repcount = 0;
26196
26197
26198                 Parse::RecDescent::_trace(q{Trying terminal: [/SPACE/i]}, Parse::RecDescent::_tracefirst($text),
26199                                           q{sysfun},
26200                                           $tracelevel)
26201                                                 if defined $::RD_TRACE;
26202                 $lastsep = "";
26203                 $expectation->is(q{})->at($text);
26204                 
26205
26206                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SPACE)//i)
26207                 {
26208                         
26209                         $expectation->failed();
26210                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26211                                                   Parse::RecDescent::_tracefirst($text))
26212                                         if defined $::RD_TRACE;
26213
26214                         last;
26215                 }
26216                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26217                                                 . $& . q{])},
26218                                                   Parse::RecDescent::_tracefirst($text))
26219                                         if defined $::RD_TRACE;
26220                 push @item, $item{__PATTERN1__}=$&;
26221                 
26222
26223
26224                 Parse::RecDescent::_trace(q{>>Matched production: [/SPACE/i]<<},
26225                                           Parse::RecDescent::_tracefirst($text),
26226                                           q{sysfun},
26227                                           $tracelevel)
26228                                                 if defined $::RD_TRACE;
26229                 $_matched = 1;
26230                 last;
26231         }
26232
26233
26234         while (!$_matched && !$commit)
26235         {
26236                 
26237                 Parse::RecDescent::_trace(q{Trying production: [/SQLCACHE_SNAPSHOT/i]},
26238                                           Parse::RecDescent::_tracefirst($_[1]),
26239                                           q{sysfun},
26240                                           $tracelevel)
26241                                                 if defined $::RD_TRACE;
26242                 my $thisprod = $thisrule->{"prods"}[47];
26243                 $text = $_[1];
26244                 my $_savetext;
26245                 @item = (q{sysfun});
26246                 %item = (__RULE__ => q{sysfun});
26247                 my $repcount = 0;
26248
26249
26250                 Parse::RecDescent::_trace(q{Trying terminal: [/SQLCACHE_SNAPSHOT/i]}, Parse::RecDescent::_tracefirst($text),
26251                                           q{sysfun},
26252                                           $tracelevel)
26253                                                 if defined $::RD_TRACE;
26254                 $lastsep = "";
26255                 $expectation->is(q{})->at($text);
26256                 
26257
26258                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SQLCACHE_SNAPSHOT)//i)
26259                 {
26260                         
26261                         $expectation->failed();
26262                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26263                                                   Parse::RecDescent::_tracefirst($text))
26264                                         if defined $::RD_TRACE;
26265
26266                         last;
26267                 }
26268                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26269                                                 . $& . q{])},
26270                                                   Parse::RecDescent::_tracefirst($text))
26271                                         if defined $::RD_TRACE;
26272                 push @item, $item{__PATTERN1__}=$&;
26273                 
26274
26275
26276                 Parse::RecDescent::_trace(q{>>Matched production: [/SQLCACHE_SNAPSHOT/i]<<},
26277                                           Parse::RecDescent::_tracefirst($text),
26278                                           q{sysfun},
26279                                           $tracelevel)
26280                                                 if defined $::RD_TRACE;
26281                 $_matched = 1;
26282                 last;
26283         }
26284
26285
26286         while (!$_matched && !$commit)
26287         {
26288                 
26289                 Parse::RecDescent::_trace(q{Trying production: [/SQRT/i]},
26290                                           Parse::RecDescent::_tracefirst($_[1]),
26291                                           q{sysfun},
26292                                           $tracelevel)
26293                                                 if defined $::RD_TRACE;
26294                 my $thisprod = $thisrule->{"prods"}[48];
26295                 $text = $_[1];
26296                 my $_savetext;
26297                 @item = (q{sysfun});
26298                 %item = (__RULE__ => q{sysfun});
26299                 my $repcount = 0;
26300
26301
26302                 Parse::RecDescent::_trace(q{Trying terminal: [/SQRT/i]}, Parse::RecDescent::_tracefirst($text),
26303                                           q{sysfun},
26304                                           $tracelevel)
26305                                                 if defined $::RD_TRACE;
26306                 $lastsep = "";
26307                 $expectation->is(q{})->at($text);
26308                 
26309
26310                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SQRT)//i)
26311                 {
26312                         
26313                         $expectation->failed();
26314                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26315                                                   Parse::RecDescent::_tracefirst($text))
26316                                         if defined $::RD_TRACE;
26317
26318                         last;
26319                 }
26320                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26321                                                 . $& . q{])},
26322                                                   Parse::RecDescent::_tracefirst($text))
26323                                         if defined $::RD_TRACE;
26324                 push @item, $item{__PATTERN1__}=$&;
26325                 
26326
26327
26328                 Parse::RecDescent::_trace(q{>>Matched production: [/SQRT/i]<<},
26329                                           Parse::RecDescent::_tracefirst($text),
26330                                           q{sysfun},
26331                                           $tracelevel)
26332                                                 if defined $::RD_TRACE;
26333                 $_matched = 1;
26334                 last;
26335         }
26336
26337
26338         while (!$_matched && !$commit)
26339         {
26340                 
26341                 Parse::RecDescent::_trace(q{Trying production: [/TAN/i]},
26342                                           Parse::RecDescent::_tracefirst($_[1]),
26343                                           q{sysfun},
26344                                           $tracelevel)
26345                                                 if defined $::RD_TRACE;
26346                 my $thisprod = $thisrule->{"prods"}[49];
26347                 $text = $_[1];
26348                 my $_savetext;
26349                 @item = (q{sysfun});
26350                 %item = (__RULE__ => q{sysfun});
26351                 my $repcount = 0;
26352
26353
26354                 Parse::RecDescent::_trace(q{Trying terminal: [/TAN/i]}, Parse::RecDescent::_tracefirst($text),
26355                                           q{sysfun},
26356                                           $tracelevel)
26357                                                 if defined $::RD_TRACE;
26358                 $lastsep = "";
26359                 $expectation->is(q{})->at($text);
26360                 
26361
26362                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TAN)//i)
26363                 {
26364                         
26365                         $expectation->failed();
26366                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26367                                                   Parse::RecDescent::_tracefirst($text))
26368                                         if defined $::RD_TRACE;
26369
26370                         last;
26371                 }
26372                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26373                                                 . $& . q{])},
26374                                                   Parse::RecDescent::_tracefirst($text))
26375                                         if defined $::RD_TRACE;
26376                 push @item, $item{__PATTERN1__}=$&;
26377                 
26378
26379
26380                 Parse::RecDescent::_trace(q{>>Matched production: [/TAN/i]<<},
26381                                           Parse::RecDescent::_tracefirst($text),
26382                                           q{sysfun},
26383                                           $tracelevel)
26384                                                 if defined $::RD_TRACE;
26385                 $_matched = 1;
26386                 last;
26387         }
26388
26389
26390         while (!$_matched && !$commit)
26391         {
26392                 
26393                 Parse::RecDescent::_trace(q{Trying production: [/TIMESTAMP_ISO/i]},
26394                                           Parse::RecDescent::_tracefirst($_[1]),
26395                                           q{sysfun},
26396                                           $tracelevel)
26397                                                 if defined $::RD_TRACE;
26398                 my $thisprod = $thisrule->{"prods"}[50];
26399                 $text = $_[1];
26400                 my $_savetext;
26401                 @item = (q{sysfun});
26402                 %item = (__RULE__ => q{sysfun});
26403                 my $repcount = 0;
26404
26405
26406                 Parse::RecDescent::_trace(q{Trying terminal: [/TIMESTAMP_ISO/i]}, Parse::RecDescent::_tracefirst($text),
26407                                           q{sysfun},
26408                                           $tracelevel)
26409                                                 if defined $::RD_TRACE;
26410                 $lastsep = "";
26411                 $expectation->is(q{})->at($text);
26412                 
26413
26414                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TIMESTAMP_ISO)//i)
26415                 {
26416                         
26417                         $expectation->failed();
26418                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26419                                                   Parse::RecDescent::_tracefirst($text))
26420                                         if defined $::RD_TRACE;
26421
26422                         last;
26423                 }
26424                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26425                                                 . $& . q{])},
26426                                                   Parse::RecDescent::_tracefirst($text))
26427                                         if defined $::RD_TRACE;
26428                 push @item, $item{__PATTERN1__}=$&;
26429                 
26430
26431
26432                 Parse::RecDescent::_trace(q{>>Matched production: [/TIMESTAMP_ISO/i]<<},
26433                                           Parse::RecDescent::_tracefirst($text),
26434                                           q{sysfun},
26435                                           $tracelevel)
26436                                                 if defined $::RD_TRACE;
26437                 $_matched = 1;
26438                 last;
26439         }
26440
26441
26442         while (!$_matched && !$commit)
26443         {
26444                 
26445                 Parse::RecDescent::_trace(q{Trying production: [/TIMESTAMPDIFF/i]},
26446                                           Parse::RecDescent::_tracefirst($_[1]),
26447                                           q{sysfun},
26448                                           $tracelevel)
26449                                                 if defined $::RD_TRACE;
26450                 my $thisprod = $thisrule->{"prods"}[51];
26451                 $text = $_[1];
26452                 my $_savetext;
26453                 @item = (q{sysfun});
26454                 %item = (__RULE__ => q{sysfun});
26455                 my $repcount = 0;
26456
26457
26458                 Parse::RecDescent::_trace(q{Trying terminal: [/TIMESTAMPDIFF/i]}, Parse::RecDescent::_tracefirst($text),
26459                                           q{sysfun},
26460                                           $tracelevel)
26461                                                 if defined $::RD_TRACE;
26462                 $lastsep = "";
26463                 $expectation->is(q{})->at($text);
26464                 
26465
26466                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TIMESTAMPDIFF)//i)
26467                 {
26468                         
26469                         $expectation->failed();
26470                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26471                                                   Parse::RecDescent::_tracefirst($text))
26472                                         if defined $::RD_TRACE;
26473
26474                         last;
26475                 }
26476                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26477                                                 . $& . q{])},
26478                                                   Parse::RecDescent::_tracefirst($text))
26479                                         if defined $::RD_TRACE;
26480                 push @item, $item{__PATTERN1__}=$&;
26481                 
26482
26483
26484                 Parse::RecDescent::_trace(q{>>Matched production: [/TIMESTAMPDIFF/i]<<},
26485                                           Parse::RecDescent::_tracefirst($text),
26486                                           q{sysfun},
26487                                           $tracelevel)
26488                                                 if defined $::RD_TRACE;
26489                 $_matched = 1;
26490                 last;
26491         }
26492
26493
26494         while (!$_matched && !$commit)
26495         {
26496                 
26497                 Parse::RecDescent::_trace(q{Trying production: [/TRUNCATE/i, or /TRUNC/i]},
26498                                           Parse::RecDescent::_tracefirst($_[1]),
26499                                           q{sysfun},
26500                                           $tracelevel)
26501                                                 if defined $::RD_TRACE;
26502                 my $thisprod = $thisrule->{"prods"}[52];
26503                 $text = $_[1];
26504                 my $_savetext;
26505                 @item = (q{sysfun});
26506                 %item = (__RULE__ => q{sysfun});
26507                 my $repcount = 0;
26508
26509
26510                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_53_of_rule_sysfun]},
26511                                   Parse::RecDescent::_tracefirst($text),
26512                                   q{sysfun},
26513                                   $tracelevel)
26514                                         if defined $::RD_TRACE;
26515                 if (1) { no strict qw{refs};
26516                 $expectation->is(q{})->at($text);
26517                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_53_of_rule_sysfun($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
26518                 {
26519                         
26520                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_53_of_rule_sysfun]>>},
26521                                                   Parse::RecDescent::_tracefirst($text),
26522                                                   q{sysfun},
26523                                                   $tracelevel)
26524                                                         if defined $::RD_TRACE;
26525                         $expectation->failed();
26526                         last;
26527                 }
26528                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_53_of_rule_sysfun]<< (return value: [}
26529                                         . $_tok . q{]},
26530                                           
26531                                           Parse::RecDescent::_tracefirst($text),
26532                                           q{sysfun},
26533                                           $tracelevel)
26534                                                 if defined $::RD_TRACE;
26535                 $item{q{_alternation_1_of_production_53_of_rule_sysfun}} = $_tok;
26536                 push @item, $_tok;
26537                 
26538                 }
26539
26540
26541                 Parse::RecDescent::_trace(q{>>Matched production: [/TRUNCATE/i, or /TRUNC/i]<<},
26542                                           Parse::RecDescent::_tracefirst($text),
26543                                           q{sysfun},
26544                                           $tracelevel)
26545                                                 if defined $::RD_TRACE;
26546                 $_matched = 1;
26547                 last;
26548         }
26549
26550
26551         while (!$_matched && !$commit)
26552         {
26553                 
26554                 Parse::RecDescent::_trace(q{Trying production: [/UCASE/i]},
26555                                           Parse::RecDescent::_tracefirst($_[1]),
26556                                           q{sysfun},
26557                                           $tracelevel)
26558                                                 if defined $::RD_TRACE;
26559                 my $thisprod = $thisrule->{"prods"}[53];
26560                 $text = $_[1];
26561                 my $_savetext;
26562                 @item = (q{sysfun});
26563                 %item = (__RULE__ => q{sysfun});
26564                 my $repcount = 0;
26565
26566
26567                 Parse::RecDescent::_trace(q{Trying terminal: [/UCASE/i]}, Parse::RecDescent::_tracefirst($text),
26568                                           q{sysfun},
26569                                           $tracelevel)
26570                                                 if defined $::RD_TRACE;
26571                 $lastsep = "";
26572                 $expectation->is(q{})->at($text);
26573                 
26574
26575                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UCASE)//i)
26576                 {
26577                         
26578                         $expectation->failed();
26579                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26580                                                   Parse::RecDescent::_tracefirst($text))
26581                                         if defined $::RD_TRACE;
26582
26583                         last;
26584                 }
26585                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26586                                                 . $& . q{])},
26587                                                   Parse::RecDescent::_tracefirst($text))
26588                                         if defined $::RD_TRACE;
26589                 push @item, $item{__PATTERN1__}=$&;
26590                 
26591
26592
26593                 Parse::RecDescent::_trace(q{>>Matched production: [/UCASE/i]<<},
26594                                           Parse::RecDescent::_tracefirst($text),
26595                                           q{sysfun},
26596                                           $tracelevel)
26597                                                 if defined $::RD_TRACE;
26598                 $_matched = 1;
26599                 last;
26600         }
26601
26602
26603         while (!$_matched && !$commit)
26604         {
26605                 
26606                 Parse::RecDescent::_trace(q{Trying production: [/WEEK/i]},
26607                                           Parse::RecDescent::_tracefirst($_[1]),
26608                                           q{sysfun},
26609                                           $tracelevel)
26610                                                 if defined $::RD_TRACE;
26611                 my $thisprod = $thisrule->{"prods"}[54];
26612                 $text = $_[1];
26613                 my $_savetext;
26614                 @item = (q{sysfun});
26615                 %item = (__RULE__ => q{sysfun});
26616                 my $repcount = 0;
26617
26618
26619                 Parse::RecDescent::_trace(q{Trying terminal: [/WEEK/i]}, Parse::RecDescent::_tracefirst($text),
26620                                           q{sysfun},
26621                                           $tracelevel)
26622                                                 if defined $::RD_TRACE;
26623                 $lastsep = "";
26624                 $expectation->is(q{})->at($text);
26625                 
26626
26627                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WEEK)//i)
26628                 {
26629                         
26630                         $expectation->failed();
26631                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26632                                                   Parse::RecDescent::_tracefirst($text))
26633                                         if defined $::RD_TRACE;
26634
26635                         last;
26636                 }
26637                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26638                                                 . $& . q{])},
26639                                                   Parse::RecDescent::_tracefirst($text))
26640                                         if defined $::RD_TRACE;
26641                 push @item, $item{__PATTERN1__}=$&;
26642                 
26643
26644
26645                 Parse::RecDescent::_trace(q{>>Matched production: [/WEEK/i]<<},
26646                                           Parse::RecDescent::_tracefirst($text),
26647                                           q{sysfun},
26648                                           $tracelevel)
26649                                                 if defined $::RD_TRACE;
26650                 $_matched = 1;
26651                 last;
26652         }
26653
26654
26655         while (!$_matched && !$commit)
26656         {
26657                 
26658                 Parse::RecDescent::_trace(q{Trying production: [/WEEK_ISO/i]},
26659                                           Parse::RecDescent::_tracefirst($_[1]),
26660                                           q{sysfun},
26661                                           $tracelevel)
26662                                                 if defined $::RD_TRACE;
26663                 my $thisprod = $thisrule->{"prods"}[55];
26664                 $text = $_[1];
26665                 my $_savetext;
26666                 @item = (q{sysfun});
26667                 %item = (__RULE__ => q{sysfun});
26668                 my $repcount = 0;
26669
26670
26671                 Parse::RecDescent::_trace(q{Trying terminal: [/WEEK_ISO/i]}, Parse::RecDescent::_tracefirst($text),
26672                                           q{sysfun},
26673                                           $tracelevel)
26674                                                 if defined $::RD_TRACE;
26675                 $lastsep = "";
26676                 $expectation->is(q{})->at($text);
26677                 
26678
26679                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WEEK_ISO)//i)
26680                 {
26681                         
26682                         $expectation->failed();
26683                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26684                                                   Parse::RecDescent::_tracefirst($text))
26685                                         if defined $::RD_TRACE;
26686
26687                         last;
26688                 }
26689                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26690                                                 . $& . q{])},
26691                                                   Parse::RecDescent::_tracefirst($text))
26692                                         if defined $::RD_TRACE;
26693                 push @item, $item{__PATTERN1__}=$&;
26694                 
26695
26696
26697                 Parse::RecDescent::_trace(q{>>Matched production: [/WEEK_ISO/i]<<},
26698                                           Parse::RecDescent::_tracefirst($text),
26699                                           q{sysfun},
26700                                           $tracelevel)
26701                                                 if defined $::RD_TRACE;
26702                 $_matched = 1;
26703                 last;
26704         }
26705
26706
26707         unless ( $_matched || defined($return) || defined($score) )
26708         {
26709                 
26710
26711                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
26712                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
26713                                          Parse::RecDescent::_tracefirst($_[1]),
26714                                          q{sysfun},
26715                                          $tracelevel)
26716                                         if defined $::RD_TRACE;
26717                 return undef;
26718         }
26719         if (!defined($return) && defined($score))
26720         {
26721                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
26722                                           q{sysfun},
26723                                           $tracelevel)
26724                                                 if defined $::RD_TRACE;
26725                 $return = $score_return;
26726         }
26727         splice @{$thisparser->{errors}}, $err_at;
26728         $return = $item[$#item] unless defined $return;
26729         if (defined $::RD_TRACE)
26730         {
26731                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
26732                                           $return . q{])}, "",
26733                                           q{sysfun},
26734                                           $tracelevel);
26735                 Parse::RecDescent::_trace(q{(consumed: [} .
26736                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
26737                                           Parse::RecDescent::_tracefirst($text),
26738                                           , q{sysfun},
26739                                           $tracelevel)
26740         }
26741         $_[1] = $text;
26742         return $return;
26743 }
26744
26745 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
26746 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond
26747 {
26748         my $thisparser = $_[0];
26749         use vars q{$tracelevel};
26750         local $tracelevel = ($tracelevel||0)+1;
26751         $ERRORS = 0;
26752         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond"};
26753         
26754         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond]},
26755                                   Parse::RecDescent::_tracefirst($_[1]),
26756                                   q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26757                                   $tracelevel)
26758                                         if defined $::RD_TRACE;
26759
26760         
26761         my $err_at = @{$thisparser->{errors}};
26762
26763         my $score;
26764         my $score_return;
26765         my $_tok;
26766         my $return = undef;
26767         my $_matched=0;
26768         my $commit=0;
26769         my @item = ();
26770         my %item = ();
26771         my $repeating =  defined($_[2]) && $_[2];
26772         my $_noactions = defined($_[3]) && $_[3];
26773         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
26774         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
26775         my $text;
26776         my $lastsep="";
26777         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
26778         $expectation->at($_[1]);
26779         
26780         my $thisline;
26781         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
26782
26783         
26784
26785         while (!$_matched && !$commit)
26786         {
26787                 
26788                 Parse::RecDescent::_trace(q{Trying production: [/SELECTIVITY/i numeric_constant]},
26789                                           Parse::RecDescent::_tracefirst($_[1]),
26790                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26791                                           $tracelevel)
26792                                                 if defined $::RD_TRACE;
26793                 my $thisprod = $thisrule->{"prods"}[0];
26794                 $text = $_[1];
26795                 my $_savetext;
26796                 @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond});
26797                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond});
26798                 my $repcount = 0;
26799
26800
26801                 Parse::RecDescent::_trace(q{Trying terminal: [/SELECTIVITY/i]}, Parse::RecDescent::_tracefirst($text),
26802                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26803                                           $tracelevel)
26804                                                 if defined $::RD_TRACE;
26805                 $lastsep = "";
26806                 $expectation->is(q{})->at($text);
26807                 
26808
26809                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SELECTIVITY)//i)
26810                 {
26811                         
26812                         $expectation->failed();
26813                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26814                                                   Parse::RecDescent::_tracefirst($text))
26815                                         if defined $::RD_TRACE;
26816
26817                         last;
26818                 }
26819                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26820                                                 . $& . q{])},
26821                                                   Parse::RecDescent::_tracefirst($text))
26822                                         if defined $::RD_TRACE;
26823                 push @item, $item{__PATTERN1__}=$&;
26824                 
26825
26826                 Parse::RecDescent::_trace(q{Trying subrule: [numeric_constant]},
26827                                   Parse::RecDescent::_tracefirst($text),
26828                                   q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26829                                   $tracelevel)
26830                                         if defined $::RD_TRACE;
26831                 if (1) { no strict qw{refs};
26832                 $expectation->is(q{numeric_constant})->at($text);
26833                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
26834                 {
26835                         
26836                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [numeric_constant]>>},
26837                                                   Parse::RecDescent::_tracefirst($text),
26838                                                   q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26839                                                   $tracelevel)
26840                                                         if defined $::RD_TRACE;
26841                         $expectation->failed();
26842                         last;
26843                 }
26844                 Parse::RecDescent::_trace(q{>>Matched subrule: [numeric_constant]<< (return value: [}
26845                                         . $_tok . q{]},
26846                                           
26847                                           Parse::RecDescent::_tracefirst($text),
26848                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26849                                           $tracelevel)
26850                                                 if defined $::RD_TRACE;
26851                 $item{q{numeric_constant}} = $_tok;
26852                 push @item, $_tok;
26853                 
26854                 }
26855
26856
26857                 Parse::RecDescent::_trace(q{>>Matched production: [/SELECTIVITY/i numeric_constant]<<},
26858                                           Parse::RecDescent::_tracefirst($text),
26859                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26860                                           $tracelevel)
26861                                                 if defined $::RD_TRACE;
26862                 $_matched = 1;
26863                 last;
26864         }
26865
26866
26867         unless ( $_matched || defined($return) || defined($score) )
26868         {
26869                 
26870
26871                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
26872                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
26873                                          Parse::RecDescent::_tracefirst($_[1]),
26874                                          q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26875                                          $tracelevel)
26876                                         if defined $::RD_TRACE;
26877                 return undef;
26878         }
26879         if (!defined($return) && defined($score))
26880         {
26881                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
26882                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26883                                           $tracelevel)
26884                                                 if defined $::RD_TRACE;
26885                 $return = $score_return;
26886         }
26887         splice @{$thisparser->{errors}}, $err_at;
26888         $return = $item[$#item] unless defined $return;
26889         if (defined $::RD_TRACE)
26890         {
26891                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
26892                                           $return . q{])}, "",
26893                                           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26894                                           $tracelevel);
26895                 Parse::RecDescent::_trace(q{(consumed: [} .
26896                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
26897                                           Parse::RecDescent::_tracefirst($text),
26898                                           , q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26899                                           $tracelevel)
26900         }
26901         $_[1] = $text;
26902         return $return;
26903 }
26904
26905 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
26906 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME
26907 {
26908         my $thisparser = $_[0];
26909         use vars q{$tracelevel};
26910         local $tracelevel = ($tracelevel||0)+1;
26911         $ERRORS = 0;
26912         my $thisrule = $thisparser->{"rules"}{"NAME"};
26913         
26914         Parse::RecDescent::_trace(q{Trying rule: [NAME]},
26915                                   Parse::RecDescent::_tracefirst($_[1]),
26916                                   q{NAME},
26917                                   $tracelevel)
26918                                         if defined $::RD_TRACE;
26919
26920         
26921         my $err_at = @{$thisparser->{errors}};
26922
26923         my $score;
26924         my $score_return;
26925         my $_tok;
26926         my $return = undef;
26927         my $_matched=0;
26928         my $commit=0;
26929         my @item = ();
26930         my %item = ();
26931         my $repeating =  defined($_[2]) && $_[2];
26932         my $_noactions = defined($_[3]) && $_[3];
26933         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
26934         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
26935         my $text;
26936         my $lastsep="";
26937         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
26938         $expectation->at($_[1]);
26939         
26940         my $thisline;
26941         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
26942
26943         
26944
26945         while (!$_matched && !$commit)
26946         {
26947                 
26948                 Parse::RecDescent::_trace(q{Trying production: [/\\w+/]},
26949                                           Parse::RecDescent::_tracefirst($_[1]),
26950                                           q{NAME},
26951                                           $tracelevel)
26952                                                 if defined $::RD_TRACE;
26953                 my $thisprod = $thisrule->{"prods"}[0];
26954                 $text = $_[1];
26955                 my $_savetext;
26956                 @item = (q{NAME});
26957                 %item = (__RULE__ => q{NAME});
26958                 my $repcount = 0;
26959
26960
26961                 Parse::RecDescent::_trace(q{Trying terminal: [/\\w+/]}, Parse::RecDescent::_tracefirst($text),
26962                                           q{NAME},
26963                                           $tracelevel)
26964                                                 if defined $::RD_TRACE;
26965                 $lastsep = "";
26966                 $expectation->is(q{})->at($text);
26967                 
26968
26969                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:\w+)//)
26970                 {
26971                         
26972                         $expectation->failed();
26973                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26974                                                   Parse::RecDescent::_tracefirst($text))
26975                                         if defined $::RD_TRACE;
26976
26977                         last;
26978                 }
26979                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26980                                                 . $& . q{])},
26981                                                   Parse::RecDescent::_tracefirst($text))
26982                                         if defined $::RD_TRACE;
26983                 push @item, $item{__PATTERN1__}=$&;
26984                 
26985
26986
26987                 Parse::RecDescent::_trace(q{>>Matched production: [/\\w+/]<<},
26988                                           Parse::RecDescent::_tracefirst($text),
26989                                           q{NAME},
26990                                           $tracelevel)
26991                                                 if defined $::RD_TRACE;
26992                 $_matched = 1;
26993                 last;
26994         }
26995
26996
26997         while (!$_matched && !$commit)
26998         {
26999                 
27000                 Parse::RecDescent::_trace(q{Trying production: [/\\w\{1,18\}/]},
27001                                           Parse::RecDescent::_tracefirst($_[1]),
27002                                           q{NAME},
27003                                           $tracelevel)
27004                                                 if defined $::RD_TRACE;
27005                 my $thisprod = $thisrule->{"prods"}[1];
27006                 $text = $_[1];
27007                 my $_savetext;
27008                 @item = (q{NAME});
27009                 %item = (__RULE__ => q{NAME});
27010                 my $repcount = 0;
27011
27012
27013                 Parse::RecDescent::_trace(q{Trying terminal: [/\\w\{1,18\}/]}, Parse::RecDescent::_tracefirst($text),
27014                                           q{NAME},
27015                                           $tracelevel)
27016                                                 if defined $::RD_TRACE;
27017                 $lastsep = "";
27018                 $expectation->is(q{})->at($text);
27019                 
27020
27021                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:\w{1,18})//)
27022                 {
27023                         
27024                         $expectation->failed();
27025                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
27026                                                   Parse::RecDescent::_tracefirst($text))
27027                                         if defined $::RD_TRACE;
27028
27029                         last;
27030                 }
27031                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27032                                                 . $& . q{])},
27033                                                   Parse::RecDescent::_tracefirst($text))
27034                                         if defined $::RD_TRACE;
27035                 push @item, $item{__PATTERN1__}=$&;
27036                 
27037
27038
27039                 Parse::RecDescent::_trace(q{>>Matched production: [/\\w\{1,18\}/]<<},
27040                                           Parse::RecDescent::_tracefirst($text),
27041                                           q{NAME},
27042                                           $tracelevel)
27043                                                 if defined $::RD_TRACE;
27044                 $_matched = 1;
27045                 last;
27046         }
27047
27048
27049         unless ( $_matched || defined($return) || defined($score) )
27050         {
27051                 
27052
27053                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
27054                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
27055                                          Parse::RecDescent::_tracefirst($_[1]),
27056                                          q{NAME},
27057                                          $tracelevel)
27058                                         if defined $::RD_TRACE;
27059                 return undef;
27060         }
27061         if (!defined($return) && defined($score))
27062         {
27063                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
27064                                           q{NAME},
27065                                           $tracelevel)
27066                                                 if defined $::RD_TRACE;
27067                 $return = $score_return;
27068         }
27069         splice @{$thisparser->{errors}}, $err_at;
27070         $return = $item[$#item] unless defined $return;
27071         if (defined $::RD_TRACE)
27072         {
27073                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
27074                                           $return . q{])}, "",
27075                                           q{NAME},
27076                                           $tracelevel);
27077                 Parse::RecDescent::_trace(q{(consumed: [} .
27078                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
27079                                           Parse::RecDescent::_tracefirst($text),
27080                                           , q{NAME},
27081                                           $tracelevel)
27082         }
27083         $_[1] = $text;
27084         return $return;
27085 }
27086
27087 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27088 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant
27089 {
27090         my $thisparser = $_[0];
27091         use vars q{$tracelevel};
27092         local $tracelevel = ($tracelevel||0)+1;
27093         $ERRORS = 0;
27094         my $thisrule = $thisparser->{"rules"}{"constant"};
27095         
27096         Parse::RecDescent::_trace(q{Trying rule: [constant]},
27097                                   Parse::RecDescent::_tracefirst($_[1]),
27098                                   q{constant},
27099                                   $tracelevel)
27100                                         if defined $::RD_TRACE;
27101
27102         
27103         my $err_at = @{$thisparser->{errors}};
27104
27105         my $score;
27106         my $score_return;
27107         my $_tok;
27108         my $return = undef;
27109         my $_matched=0;
27110         my $commit=0;
27111         my @item = ();
27112         my %item = ();
27113         my $repeating =  defined($_[2]) && $_[2];
27114         my $_noactions = defined($_[3]) && $_[3];
27115         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
27116         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
27117         my $text;
27118         my $lastsep="";
27119         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27120         $expectation->at($_[1]);
27121         
27122         my $thisline;
27123         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27124
27125         
27126
27127         while (!$_matched && !$commit)
27128         {
27129                 
27130                 Parse::RecDescent::_trace(q{Trying production: [int_const]},
27131                                           Parse::RecDescent::_tracefirst($_[1]),
27132                                           q{constant},
27133                                           $tracelevel)
27134                                                 if defined $::RD_TRACE;
27135                 my $thisprod = $thisrule->{"prods"}[0];
27136                 $text = $_[1];
27137                 my $_savetext;
27138                 @item = (q{constant});
27139                 %item = (__RULE__ => q{constant});
27140                 my $repcount = 0;
27141
27142
27143                 Parse::RecDescent::_trace(q{Trying subrule: [int_const]},
27144                                   Parse::RecDescent::_tracefirst($text),
27145                                   q{constant},
27146                                   $tracelevel)
27147                                         if defined $::RD_TRACE;
27148                 if (1) { no strict qw{refs};
27149                 $expectation->is(q{})->at($text);
27150                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::int_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27151                 {
27152                         
27153                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [int_const]>>},
27154                                                   Parse::RecDescent::_tracefirst($text),
27155                                                   q{constant},
27156                                                   $tracelevel)
27157                                                         if defined $::RD_TRACE;
27158                         $expectation->failed();
27159                         last;
27160                 }
27161                 Parse::RecDescent::_trace(q{>>Matched subrule: [int_const]<< (return value: [}
27162                                         . $_tok . q{]},
27163                                           
27164                                           Parse::RecDescent::_tracefirst($text),
27165                                           q{constant},
27166                                           $tracelevel)
27167                                                 if defined $::RD_TRACE;
27168                 $item{q{int_const}} = $_tok;
27169                 push @item, $_tok;
27170                 
27171                 }
27172
27173
27174                 Parse::RecDescent::_trace(q{>>Matched production: [int_const]<<},
27175                                           Parse::RecDescent::_tracefirst($text),
27176                                           q{constant},
27177                                           $tracelevel)
27178                                                 if defined $::RD_TRACE;
27179                 $_matched = 1;
27180                 last;
27181         }
27182
27183
27184         while (!$_matched && !$commit)
27185         {
27186                 
27187                 Parse::RecDescent::_trace(q{Trying production: [float_const]},
27188                                           Parse::RecDescent::_tracefirst($_[1]),
27189                                           q{constant},
27190                                           $tracelevel)
27191                                                 if defined $::RD_TRACE;
27192                 my $thisprod = $thisrule->{"prods"}[1];
27193                 $text = $_[1];
27194                 my $_savetext;
27195                 @item = (q{constant});
27196                 %item = (__RULE__ => q{constant});
27197                 my $repcount = 0;
27198
27199
27200                 Parse::RecDescent::_trace(q{Trying subrule: [float_const]},
27201                                   Parse::RecDescent::_tracefirst($text),
27202                                   q{constant},
27203                                   $tracelevel)
27204                                         if defined $::RD_TRACE;
27205                 if (1) { no strict qw{refs};
27206                 $expectation->is(q{})->at($text);
27207                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::float_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27208                 {
27209                         
27210                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [float_const]>>},
27211                                                   Parse::RecDescent::_tracefirst($text),
27212                                                   q{constant},
27213                                                   $tracelevel)
27214                                                         if defined $::RD_TRACE;
27215                         $expectation->failed();
27216                         last;
27217                 }
27218                 Parse::RecDescent::_trace(q{>>Matched subrule: [float_const]<< (return value: [}
27219                                         . $_tok . q{]},
27220                                           
27221                                           Parse::RecDescent::_tracefirst($text),
27222                                           q{constant},
27223                                           $tracelevel)
27224                                                 if defined $::RD_TRACE;
27225                 $item{q{float_const}} = $_tok;
27226                 push @item, $_tok;
27227                 
27228                 }
27229
27230
27231                 Parse::RecDescent::_trace(q{>>Matched production: [float_const]<<},
27232                                           Parse::RecDescent::_tracefirst($text),
27233                                           q{constant},
27234                                           $tracelevel)
27235                                                 if defined $::RD_TRACE;
27236                 $_matched = 1;
27237                 last;
27238         }
27239
27240
27241         while (!$_matched && !$commit)
27242         {
27243                 
27244                 Parse::RecDescent::_trace(q{Trying production: [dec_const]},
27245                                           Parse::RecDescent::_tracefirst($_[1]),
27246                                           q{constant},
27247                                           $tracelevel)
27248                                                 if defined $::RD_TRACE;
27249                 my $thisprod = $thisrule->{"prods"}[2];
27250                 $text = $_[1];
27251                 my $_savetext;
27252                 @item = (q{constant});
27253                 %item = (__RULE__ => q{constant});
27254                 my $repcount = 0;
27255
27256
27257                 Parse::RecDescent::_trace(q{Trying subrule: [dec_const]},
27258                                   Parse::RecDescent::_tracefirst($text),
27259                                   q{constant},
27260                                   $tracelevel)
27261                                         if defined $::RD_TRACE;
27262                 if (1) { no strict qw{refs};
27263                 $expectation->is(q{})->at($text);
27264                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::dec_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27265                 {
27266                         
27267                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [dec_const]>>},
27268                                                   Parse::RecDescent::_tracefirst($text),
27269                                                   q{constant},
27270                                                   $tracelevel)
27271                                                         if defined $::RD_TRACE;
27272                         $expectation->failed();
27273                         last;
27274                 }
27275                 Parse::RecDescent::_trace(q{>>Matched subrule: [dec_const]<< (return value: [}
27276                                         . $_tok . q{]},
27277                                           
27278                                           Parse::RecDescent::_tracefirst($text),
27279                                           q{constant},
27280                                           $tracelevel)
27281                                                 if defined $::RD_TRACE;
27282                 $item{q{dec_const}} = $_tok;
27283                 push @item, $_tok;
27284                 
27285                 }
27286
27287
27288                 Parse::RecDescent::_trace(q{>>Matched production: [dec_const]<<},
27289                                           Parse::RecDescent::_tracefirst($text),
27290                                           q{constant},
27291                                           $tracelevel)
27292                                                 if defined $::RD_TRACE;
27293                 $_matched = 1;
27294                 last;
27295         }
27296
27297
27298         while (!$_matched && !$commit)
27299         {
27300                 
27301                 Parse::RecDescent::_trace(q{Trying production: [char_const]},
27302                                           Parse::RecDescent::_tracefirst($_[1]),
27303                                           q{constant},
27304                                           $tracelevel)
27305                                                 if defined $::RD_TRACE;
27306                 my $thisprod = $thisrule->{"prods"}[3];
27307                 $text = $_[1];
27308                 my $_savetext;
27309                 @item = (q{constant});
27310                 %item = (__RULE__ => q{constant});
27311                 my $repcount = 0;
27312
27313
27314                 Parse::RecDescent::_trace(q{Trying subrule: [char_const]},
27315                                   Parse::RecDescent::_tracefirst($text),
27316                                   q{constant},
27317                                   $tracelevel)
27318                                         if defined $::RD_TRACE;
27319                 if (1) { no strict qw{refs};
27320                 $expectation->is(q{})->at($text);
27321                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::char_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27322                 {
27323                         
27324                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [char_const]>>},
27325                                                   Parse::RecDescent::_tracefirst($text),
27326                                                   q{constant},
27327                                                   $tracelevel)
27328                                                         if defined $::RD_TRACE;
27329                         $expectation->failed();
27330                         last;
27331                 }
27332                 Parse::RecDescent::_trace(q{>>Matched subrule: [char_const]<< (return value: [}
27333                                         . $_tok . q{]},
27334                                           
27335                                           Parse::RecDescent::_tracefirst($text),
27336                                           q{constant},
27337                                           $tracelevel)
27338                                                 if defined $::RD_TRACE;
27339                 $item{q{char_const}} = $_tok;
27340                 push @item, $_tok;
27341                 
27342                 }
27343
27344
27345                 Parse::RecDescent::_trace(q{>>Matched production: [char_const]<<},
27346                                           Parse::RecDescent::_tracefirst($text),
27347                                           q{constant},
27348                                           $tracelevel)
27349                                                 if defined $::RD_TRACE;
27350                 $_matched = 1;
27351                 last;
27352         }
27353
27354
27355         while (!$_matched && !$commit)
27356         {
27357                 
27358                 Parse::RecDescent::_trace(q{Trying production: [hex_const]},
27359                                           Parse::RecDescent::_tracefirst($_[1]),
27360                                           q{constant},
27361                                           $tracelevel)
27362                                                 if defined $::RD_TRACE;
27363                 my $thisprod = $thisrule->{"prods"}[4];
27364                 $text = $_[1];
27365                 my $_savetext;
27366                 @item = (q{constant});
27367                 %item = (__RULE__ => q{constant});
27368                 my $repcount = 0;
27369
27370
27371                 Parse::RecDescent::_trace(q{Trying subrule: [hex_const]},
27372                                   Parse::RecDescent::_tracefirst($text),
27373                                   q{constant},
27374                                   $tracelevel)
27375                                         if defined $::RD_TRACE;
27376                 if (1) { no strict qw{refs};
27377                 $expectation->is(q{})->at($text);
27378                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::hex_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27379                 {
27380                         
27381                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [hex_const]>>},
27382                                                   Parse::RecDescent::_tracefirst($text),
27383                                                   q{constant},
27384                                                   $tracelevel)
27385                                                         if defined $::RD_TRACE;
27386                         $expectation->failed();
27387                         last;
27388                 }
27389                 Parse::RecDescent::_trace(q{>>Matched subrule: [hex_const]<< (return value: [}
27390                                         . $_tok . q{]},
27391                                           
27392                                           Parse::RecDescent::_tracefirst($text),
27393                                           q{constant},
27394                                           $tracelevel)
27395                                                 if defined $::RD_TRACE;
27396                 $item{q{hex_const}} = $_tok;
27397                 push @item, $_tok;
27398                 
27399                 }
27400
27401
27402                 Parse::RecDescent::_trace(q{>>Matched production: [hex_const]<<},
27403                                           Parse::RecDescent::_tracefirst($text),
27404                                           q{constant},
27405                                           $tracelevel)
27406                                                 if defined $::RD_TRACE;
27407                 $_matched = 1;
27408                 last;
27409         }
27410
27411
27412         while (!$_matched && !$commit)
27413         {
27414                 
27415                 Parse::RecDescent::_trace(q{Trying production: [grastr_const]},
27416                                           Parse::RecDescent::_tracefirst($_[1]),
27417                                           q{constant},
27418                                           $tracelevel)
27419                                                 if defined $::RD_TRACE;
27420                 my $thisprod = $thisrule->{"prods"}[5];
27421                 $text = $_[1];
27422                 my $_savetext;
27423                 @item = (q{constant});
27424                 %item = (__RULE__ => q{constant});
27425                 my $repcount = 0;
27426
27427
27428                 Parse::RecDescent::_trace(q{Trying subrule: [grastr_const]},
27429                                   Parse::RecDescent::_tracefirst($text),
27430                                   q{constant},
27431                                   $tracelevel)
27432                                         if defined $::RD_TRACE;
27433                 if (1) { no strict qw{refs};
27434                 $expectation->is(q{})->at($text);
27435                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::grastr_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27436                 {
27437                         
27438                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [grastr_const]>>},
27439                                                   Parse::RecDescent::_tracefirst($text),
27440                                                   q{constant},
27441                                                   $tracelevel)
27442                                                         if defined $::RD_TRACE;
27443                         $expectation->failed();
27444                         last;
27445                 }
27446                 Parse::RecDescent::_trace(q{>>Matched subrule: [grastr_const]<< (return value: [}
27447                                         . $_tok . q{]},
27448                                           
27449                                           Parse::RecDescent::_tracefirst($text),
27450                                           q{constant},
27451                                           $tracelevel)
27452                                                 if defined $::RD_TRACE;
27453                 $item{q{grastr_const}} = $_tok;
27454                 push @item, $_tok;
27455                 
27456                 }
27457
27458
27459                 Parse::RecDescent::_trace(q{>>Matched production: [grastr_const]<<},
27460                                           Parse::RecDescent::_tracefirst($text),
27461                                           q{constant},
27462                                           $tracelevel)
27463                                                 if defined $::RD_TRACE;
27464                 $_matched = 1;
27465                 last;
27466         }
27467
27468
27469         unless ( $_matched || defined($return) || defined($score) )
27470         {
27471                 
27472
27473                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
27474                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
27475                                          Parse::RecDescent::_tracefirst($_[1]),
27476                                          q{constant},
27477                                          $tracelevel)
27478                                         if defined $::RD_TRACE;
27479                 return undef;
27480         }
27481         if (!defined($return) && defined($score))
27482         {
27483                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
27484                                           q{constant},
27485                                           $tracelevel)
27486                                                 if defined $::RD_TRACE;
27487                 $return = $score_return;
27488         }
27489         splice @{$thisparser->{errors}}, $err_at;
27490         $return = $item[$#item] unless defined $return;
27491         if (defined $::RD_TRACE)
27492         {
27493                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
27494                                           $return . q{])}, "",
27495                                           q{constant},
27496                                           $tracelevel);
27497                 Parse::RecDescent::_trace(q{(consumed: [} .
27498                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
27499                                           Parse::RecDescent::_tracefirst($text),
27500                                           , q{constant},
27501                                           $tracelevel)
27502         }
27503         $_[1] = $text;
27504         return $return;
27505 }
27506
27507 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27508 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_ranking_function
27509 {
27510         my $thisparser = $_[0];
27511         use vars q{$tracelevel};
27512         local $tracelevel = ($tracelevel||0)+1;
27513         $ERRORS = 0;
27514         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_ranking_function"};
27515         
27516         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_ranking_function]},
27517                                   Parse::RecDescent::_tracefirst($_[1]),
27518                                   q{_alternation_1_of_production_1_of_rule_ranking_function},
27519                                   $tracelevel)
27520                                         if defined $::RD_TRACE;
27521
27522         
27523         my $err_at = @{$thisparser->{errors}};
27524
27525         my $score;
27526         my $score_return;
27527         my $_tok;
27528         my $return = undef;
27529         my $_matched=0;
27530         my $commit=0;
27531         my @item = ();
27532         my %item = ();
27533         my $repeating =  defined($_[2]) && $_[2];
27534         my $_noactions = defined($_[3]) && $_[3];
27535         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
27536         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
27537         my $text;
27538         my $lastsep="";
27539         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27540         $expectation->at($_[1]);
27541         
27542         my $thisline;
27543         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27544
27545         
27546
27547         while (!$_matched && !$commit)
27548         {
27549                 
27550                 Parse::RecDescent::_trace(q{Trying production: [/RANK/ '()']},
27551                                           Parse::RecDescent::_tracefirst($_[1]),
27552                                           q{_alternation_1_of_production_1_of_rule_ranking_function},
27553                                           $tracelevel)
27554                                                 if defined $::RD_TRACE;
27555                 my $thisprod = $thisrule->{"prods"}[0];
27556                 $text = $_[1];
27557                 my $_savetext;
27558                 @item = (q{_alternation_1_of_production_1_of_rule_ranking_function});
27559                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_ranking_function});
27560                 my $repcount = 0;
27561
27562
27563                 Parse::RecDescent::_trace(q{Trying terminal: [/RANK/]}, Parse::RecDescent::_tracefirst($text),
27564                                           q{_alternation_1_of_production_1_of_rule_ranking_function},
27565                                           $tracelevel)
27566                                                 if defined $::RD_TRACE;
27567                 $lastsep = "";
27568                 $expectation->is(q{})->at($text);
27569                 
27570
27571                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RANK)//)
27572                 {
27573                         
27574                         $expectation->failed();
27575                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
27576                                                   Parse::RecDescent::_tracefirst($text))
27577                                         if defined $::RD_TRACE;
27578
27579                         last;
27580                 }
27581                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27582                                                 . $& . q{])},
27583                                                   Parse::RecDescent::_tracefirst($text))
27584                                         if defined $::RD_TRACE;
27585                 push @item, $item{__PATTERN1__}=$&;
27586                 
27587
27588                 Parse::RecDescent::_trace(q{Trying terminal: ['()']},
27589                                           Parse::RecDescent::_tracefirst($text),
27590                                           q{_alternation_1_of_production_1_of_rule_ranking_function},
27591                                           $tracelevel)
27592                                                 if defined $::RD_TRACE;
27593                 $lastsep = "";
27594                 $expectation->is(q{'()'})->at($text);
27595                 
27596
27597                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(\)//)
27598                 {
27599                         
27600                         $expectation->failed();
27601                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
27602                                                   Parse::RecDescent::_tracefirst($text))
27603                                                         if defined $::RD_TRACE;
27604                         last;
27605                 }
27606                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27607                                                 . $& . q{])},
27608                                                   Parse::RecDescent::_tracefirst($text))
27609                                                         if defined $::RD_TRACE;
27610                 push @item, $item{__STRING1__}=$&;
27611                 
27612
27613
27614                 Parse::RecDescent::_trace(q{>>Matched production: [/RANK/ '()']<<},
27615                                           Parse::RecDescent::_tracefirst($text),
27616                                           q{_alternation_1_of_production_1_of_rule_ranking_function},
27617                                           $tracelevel)
27618                                                 if defined $::RD_TRACE;
27619                 $_matched = 1;
27620                 last;
27621         }
27622
27623
27624         while (!$_matched && !$commit)
27625         {
27626                 
27627                 Parse::RecDescent::_trace(q{Trying production: [/DENSE_RANK|DENSERANK/i '()']},
27628                                           Parse::RecDescent::_tracefirst($_[1]),
27629                                           q{_alternation_1_of_production_1_of_rule_ranking_function},
27630                                           $tracelevel)
27631                                                 if defined $::RD_TRACE;
27632                 my $thisprod = $thisrule->{"prods"}[1];
27633                 $text = $_[1];
27634                 my $_savetext;
27635                 @item = (q{_alternation_1_of_production_1_of_rule_ranking_function});
27636                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_ranking_function});
27637                 my $repcount = 0;
27638
27639
27640                 Parse::RecDescent::_trace(q{Trying terminal: [/DENSE_RANK|DENSERANK/i]}, Parse::RecDescent::_tracefirst($text),
27641                                           q{_alternation_1_of_production_1_of_rule_ranking_function},
27642                                           $tracelevel)
27643                                                 if defined $::RD_TRACE;
27644                 $lastsep = "";
27645                 $expectation->is(q{})->at($text);
27646                 
27647
27648                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DENSE_RANK|DENSERANK)//i)
27649                 {
27650                         
27651                         $expectation->failed();
27652                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
27653                                                   Parse::RecDescent::_tracefirst($text))
27654                                         if defined $::RD_TRACE;
27655
27656                         last;
27657                 }
27658                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27659                                                 . $& . q{])},
27660                                                   Parse::RecDescent::_tracefirst($text))
27661                                         if defined $::RD_TRACE;
27662                 push @item, $item{__PATTERN1__}=$&;
27663                 
27664
27665                 Parse::RecDescent::_trace(q{Trying terminal: ['()']},
27666                                           Parse::RecDescent::_tracefirst($text),
27667                                           q{_alternation_1_of_production_1_of_rule_ranking_function},
27668                                           $tracelevel)
27669                                                 if defined $::RD_TRACE;
27670                 $lastsep = "";
27671                 $expectation->is(q{'()'})->at($text);
27672                 
27673
27674                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(\)//)
27675                 {
27676                         
27677                         $expectation->failed();
27678                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
27679                                                   Parse::RecDescent::_tracefirst($text))
27680                                                         if defined $::RD_TRACE;
27681                         last;
27682                 }
27683                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27684                                                 . $& . q{])},
27685                                                   Parse::RecDescent::_tracefirst($text))
27686                                                         if defined $::RD_TRACE;
27687                 push @item, $item{__STRING1__}=$&;
27688                 
27689
27690
27691                 Parse::RecDescent::_trace(q{>>Matched production: [/DENSE_RANK|DENSERANK/i '()']<<},
27692                                           Parse::RecDescent::_tracefirst($text),
27693                                           q{_alternation_1_of_production_1_of_rule_ranking_function},
27694                                           $tracelevel)
27695                                                 if defined $::RD_TRACE;
27696                 $_matched = 1;
27697                 last;
27698         }
27699
27700
27701         unless ( $_matched || defined($return) || defined($score) )
27702         {
27703                 
27704
27705                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
27706                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
27707                                          Parse::RecDescent::_tracefirst($_[1]),
27708                                          q{_alternation_1_of_production_1_of_rule_ranking_function},
27709                                          $tracelevel)
27710                                         if defined $::RD_TRACE;
27711                 return undef;
27712         }
27713         if (!defined($return) && defined($score))
27714         {
27715                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
27716                                           q{_alternation_1_of_production_1_of_rule_ranking_function},
27717                                           $tracelevel)
27718                                                 if defined $::RD_TRACE;
27719                 $return = $score_return;
27720         }
27721         splice @{$thisparser->{errors}}, $err_at;
27722         $return = $item[$#item] unless defined $return;
27723         if (defined $::RD_TRACE)
27724         {
27725                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
27726                                           $return . q{])}, "",
27727                                           q{_alternation_1_of_production_1_of_rule_ranking_function},
27728                                           $tracelevel);
27729                 Parse::RecDescent::_trace(q{(consumed: [} .
27730                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
27731                                           Parse::RecDescent::_tracefirst($text),
27732                                           , q{_alternation_1_of_production_1_of_rule_ranking_function},
27733                                           $tracelevel)
27734         }
27735         $_[1] = $text;
27736         return $return;
27737 }
27738
27739 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27740 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause
27741 {
27742         my $thisparser = $_[0];
27743         use vars q{$tracelevel};
27744         local $tracelevel = ($tracelevel||0)+1;
27745         $ERRORS = 0;
27746         my $thisrule = $thisparser->{"rules"}{"window_aggregation_group_clause"};
27747         
27748         Parse::RecDescent::_trace(q{Trying rule: [window_aggregation_group_clause]},
27749                                   Parse::RecDescent::_tracefirst($_[1]),
27750                                   q{window_aggregation_group_clause},
27751                                   $tracelevel)
27752                                         if defined $::RD_TRACE;
27753
27754         
27755         my $err_at = @{$thisparser->{errors}};
27756
27757         my $score;
27758         my $score_return;
27759         my $_tok;
27760         my $return = undef;
27761         my $_matched=0;
27762         my $commit=0;
27763         my @item = ();
27764         my %item = ();
27765         my $repeating =  defined($_[2]) && $_[2];
27766         my $_noactions = defined($_[3]) && $_[3];
27767         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
27768         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
27769         my $text;
27770         my $lastsep="";
27771         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27772         $expectation->at($_[1]);
27773         
27774         my $thisline;
27775         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27776
27777         
27778
27779         while (!$_matched && !$commit)
27780         {
27781                 
27782                 Parse::RecDescent::_trace(q{Trying production: [/ROWS/i, or /RANGE/i group_start, or group_between, or group_end]},
27783                                           Parse::RecDescent::_tracefirst($_[1]),
27784                                           q{window_aggregation_group_clause},
27785                                           $tracelevel)
27786                                                 if defined $::RD_TRACE;
27787                 my $thisprod = $thisrule->{"prods"}[0];
27788                 $text = $_[1];
27789                 my $_savetext;
27790                 @item = (q{window_aggregation_group_clause});
27791                 %item = (__RULE__ => q{window_aggregation_group_clause});
27792                 my $repcount = 0;
27793
27794
27795                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]},
27796                                   Parse::RecDescent::_tracefirst($text),
27797                                   q{window_aggregation_group_clause},
27798                                   $tracelevel)
27799                                         if defined $::RD_TRACE;
27800                 if (1) { no strict qw{refs};
27801                 $expectation->is(q{})->at($text);
27802                 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 })))
27803                 {
27804                         
27805                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]>>},
27806                                                   Parse::RecDescent::_tracefirst($text),
27807                                                   q{window_aggregation_group_clause},
27808                                                   $tracelevel)
27809                                                         if defined $::RD_TRACE;
27810                         $expectation->failed();
27811                         last;
27812                 }
27813                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]<< (return value: [}
27814                                         . $_tok . q{]},
27815                                           
27816                                           Parse::RecDescent::_tracefirst($text),
27817                                           q{window_aggregation_group_clause},
27818                                           $tracelevel)
27819                                                 if defined $::RD_TRACE;
27820                 $item{q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}} = $_tok;
27821                 push @item, $_tok;
27822                 
27823                 }
27824
27825                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]},
27826                                   Parse::RecDescent::_tracefirst($text),
27827                                   q{window_aggregation_group_clause},
27828                                   $tracelevel)
27829                                         if defined $::RD_TRACE;
27830                 if (1) { no strict qw{refs};
27831                 $expectation->is(q{group_start, or group_between, or group_end})->at($text);
27832                 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 })))
27833                 {
27834                         
27835                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]>>},
27836                                                   Parse::RecDescent::_tracefirst($text),
27837                                                   q{window_aggregation_group_clause},
27838                                                   $tracelevel)
27839                                                         if defined $::RD_TRACE;
27840                         $expectation->failed();
27841                         last;
27842                 }
27843                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]<< (return value: [}
27844                                         . $_tok . q{]},
27845                                           
27846                                           Parse::RecDescent::_tracefirst($text),
27847                                           q{window_aggregation_group_clause},
27848                                           $tracelevel)
27849                                                 if defined $::RD_TRACE;
27850                 $item{q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}} = $_tok;
27851                 push @item, $_tok;
27852                 
27853                 }
27854
27855
27856                 Parse::RecDescent::_trace(q{>>Matched production: [/ROWS/i, or /RANGE/i group_start, or group_between, or group_end]<<},
27857                                           Parse::RecDescent::_tracefirst($text),
27858                                           q{window_aggregation_group_clause},
27859                                           $tracelevel)
27860                                                 if defined $::RD_TRACE;
27861                 $_matched = 1;
27862                 last;
27863         }
27864
27865
27866         unless ( $_matched || defined($return) || defined($score) )
27867         {
27868                 
27869
27870                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
27871                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
27872                                          Parse::RecDescent::_tracefirst($_[1]),
27873                                          q{window_aggregation_group_clause},
27874                                          $tracelevel)
27875                                         if defined $::RD_TRACE;
27876                 return undef;
27877         }
27878         if (!defined($return) && defined($score))
27879         {
27880                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
27881                                           q{window_aggregation_group_clause},
27882                                           $tracelevel)
27883                                                 if defined $::RD_TRACE;
27884                 $return = $score_return;
27885         }
27886         splice @{$thisparser->{errors}}, $err_at;
27887         $return = $item[$#item] unless defined $return;
27888         if (defined $::RD_TRACE)
27889         {
27890                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
27891                                           $return . q{])}, "",
27892                                           q{window_aggregation_group_clause},
27893                                           $tracelevel);
27894                 Parse::RecDescent::_trace(q{(consumed: [} .
27895                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
27896                                           Parse::RecDescent::_tracefirst($text),
27897                                           , q{window_aggregation_group_clause},
27898                                           $tracelevel)
27899         }
27900         $_[1] = $text;
27901         return $return;
27902 }
27903
27904 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27905 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_window_aggregation_group_clause
27906 {
27907         my $thisparser = $_[0];
27908         use vars q{$tracelevel};
27909         local $tracelevel = ($tracelevel||0)+1;
27910         $ERRORS = 0;
27911         my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_window_aggregation_group_clause"};
27912         
27913         Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]},
27914                                   Parse::RecDescent::_tracefirst($_[1]),
27915                                   q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27916                                   $tracelevel)
27917                                         if defined $::RD_TRACE;
27918
27919         
27920         my $err_at = @{$thisparser->{errors}};
27921
27922         my $score;
27923         my $score_return;
27924         my $_tok;
27925         my $return = undef;
27926         my $_matched=0;
27927         my $commit=0;
27928         my @item = ();
27929         my %item = ();
27930         my $repeating =  defined($_[2]) && $_[2];
27931         my $_noactions = defined($_[3]) && $_[3];
27932         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
27933         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
27934         my $text;
27935         my $lastsep="";
27936         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27937         $expectation->at($_[1]);
27938         
27939         my $thisline;
27940         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27941
27942         
27943
27944         while (!$_matched && !$commit)
27945         {
27946                 
27947                 Parse::RecDescent::_trace(q{Trying production: [group_start]},
27948                                           Parse::RecDescent::_tracefirst($_[1]),
27949                                           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27950                                           $tracelevel)
27951                                                 if defined $::RD_TRACE;
27952                 my $thisprod = $thisrule->{"prods"}[0];
27953                 $text = $_[1];
27954                 my $_savetext;
27955                 @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
27956                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
27957                 my $repcount = 0;
27958
27959
27960                 Parse::RecDescent::_trace(q{Trying subrule: [group_start]},
27961                                   Parse::RecDescent::_tracefirst($text),
27962                                   q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27963                                   $tracelevel)
27964                                         if defined $::RD_TRACE;
27965                 if (1) { no strict qw{refs};
27966                 $expectation->is(q{})->at($text);
27967                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_start($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27968                 {
27969                         
27970                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_start]>>},
27971                                                   Parse::RecDescent::_tracefirst($text),
27972                                                   q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27973                                                   $tracelevel)
27974                                                         if defined $::RD_TRACE;
27975                         $expectation->failed();
27976                         last;
27977                 }
27978                 Parse::RecDescent::_trace(q{>>Matched subrule: [group_start]<< (return value: [}
27979                                         . $_tok . q{]},
27980                                           
27981                                           Parse::RecDescent::_tracefirst($text),
27982                                           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27983                                           $tracelevel)
27984                                                 if defined $::RD_TRACE;
27985                 $item{q{group_start}} = $_tok;
27986                 push @item, $_tok;
27987                 
27988                 }
27989
27990
27991                 Parse::RecDescent::_trace(q{>>Matched production: [group_start]<<},
27992                                           Parse::RecDescent::_tracefirst($text),
27993                                           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27994                                           $tracelevel)
27995                                                 if defined $::RD_TRACE;
27996                 $_matched = 1;
27997                 last;
27998         }
27999
28000
28001         while (!$_matched && !$commit)
28002         {
28003                 
28004                 Parse::RecDescent::_trace(q{Trying production: [group_between]},
28005                                           Parse::RecDescent::_tracefirst($_[1]),
28006                                           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28007                                           $tracelevel)
28008                                                 if defined $::RD_TRACE;
28009                 my $thisprod = $thisrule->{"prods"}[1];
28010                 $text = $_[1];
28011                 my $_savetext;
28012                 @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
28013                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
28014                 my $repcount = 0;
28015
28016
28017                 Parse::RecDescent::_trace(q{Trying subrule: [group_between]},
28018                                   Parse::RecDescent::_tracefirst($text),
28019                                   q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28020                                   $tracelevel)
28021                                         if defined $::RD_TRACE;
28022                 if (1) { no strict qw{refs};
28023                 $expectation->is(q{})->at($text);
28024                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_between($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
28025                 {
28026                         
28027                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_between]>>},
28028                                                   Parse::RecDescent::_tracefirst($text),
28029                                                   q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28030                                                   $tracelevel)
28031                                                         if defined $::RD_TRACE;
28032                         $expectation->failed();
28033                         last;
28034                 }
28035                 Parse::RecDescent::_trace(q{>>Matched subrule: [group_between]<< (return value: [}
28036                                         . $_tok . q{]},
28037                                           
28038                                           Parse::RecDescent::_tracefirst($text),
28039                                           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28040                                           $tracelevel)
28041                                                 if defined $::RD_TRACE;
28042                 $item{q{group_between}} = $_tok;
28043                 push @item, $_tok;
28044                 
28045                 }
28046
28047
28048                 Parse::RecDescent::_trace(q{>>Matched production: [group_between]<<},
28049                                           Parse::RecDescent::_tracefirst($text),
28050                                           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28051                                           $tracelevel)
28052                                                 if defined $::RD_TRACE;
28053                 $_matched = 1;
28054                 last;
28055         }
28056
28057
28058         while (!$_matched && !$commit)
28059         {
28060                 
28061                 Parse::RecDescent::_trace(q{Trying production: [group_end]},
28062                                           Parse::RecDescent::_tracefirst($_[1]),
28063                                           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28064                                           $tracelevel)
28065                                                 if defined $::RD_TRACE;
28066                 my $thisprod = $thisrule->{"prods"}[2];
28067                 $text = $_[1];
28068                 my $_savetext;
28069                 @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
28070                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
28071                 my $repcount = 0;
28072
28073
28074                 Parse::RecDescent::_trace(q{Trying subrule: [group_end]},
28075                                   Parse::RecDescent::_tracefirst($text),
28076                                   q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28077                                   $tracelevel)
28078                                         if defined $::RD_TRACE;
28079                 if (1) { no strict qw{refs};
28080                 $expectation->is(q{})->at($text);
28081                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_end($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
28082                 {
28083                         
28084                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_end]>>},
28085                                                   Parse::RecDescent::_tracefirst($text),
28086                                                   q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28087                                                   $tracelevel)
28088                                                         if defined $::RD_TRACE;
28089                         $expectation->failed();
28090                         last;
28091                 }
28092                 Parse::RecDescent::_trace(q{>>Matched subrule: [group_end]<< (return value: [}
28093                                         . $_tok . q{]},
28094                                           
28095                                           Parse::RecDescent::_tracefirst($text),
28096                                           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28097                                           $tracelevel)
28098                                                 if defined $::RD_TRACE;
28099                 $item{q{group_end}} = $_tok;
28100                 push @item, $_tok;
28101                 
28102                 }
28103
28104
28105                 Parse::RecDescent::_trace(q{>>Matched production: [group_end]<<},
28106                                           Parse::RecDescent::_tracefirst($text),
28107                                           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28108                                           $tracelevel)
28109                                                 if defined $::RD_TRACE;
28110                 $_matched = 1;
28111                 last;
28112         }
28113
28114
28115         unless ( $_matched || defined($return) || defined($score) )
28116         {
28117                 
28118
28119                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
28120                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
28121                                          Parse::RecDescent::_tracefirst($_[1]),
28122                                          q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28123                                          $tracelevel)
28124                                         if defined $::RD_TRACE;
28125                 return undef;
28126         }
28127         if (!defined($return) && defined($score))
28128         {
28129                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
28130                                           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28131                                           $tracelevel)
28132                                                 if defined $::RD_TRACE;
28133                 $return = $score_return;
28134         }
28135         splice @{$thisparser->{errors}}, $err_at;
28136         $return = $item[$#item] unless defined $return;
28137         if (defined $::RD_TRACE)
28138         {
28139                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
28140                                           $return . q{])}, "",
28141                                           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28142                                           $tracelevel);
28143                 Parse::RecDescent::_trace(q{(consumed: [} .
28144                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
28145                                           Parse::RecDescent::_tracefirst($text),
28146                                           , q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28147                                           $tracelevel)
28148         }
28149         $_[1] = $text;
28150         return $return;
28151 }
28152
28153 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28154 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::VIEW
28155 {
28156         my $thisparser = $_[0];
28157         use vars q{$tracelevel};
28158         local $tracelevel = ($tracelevel||0)+1;
28159         $ERRORS = 0;
28160         my $thisrule = $thisparser->{"rules"}{"VIEW"};
28161         
28162         Parse::RecDescent::_trace(q{Trying rule: [VIEW]},
28163                                   Parse::RecDescent::_tracefirst($_[1]),
28164                                   q{VIEW},
28165                                   $tracelevel)
28166                                         if defined $::RD_TRACE;
28167
28168         
28169         my $err_at = @{$thisparser->{errors}};
28170
28171         my $score;
28172         my $score_return;
28173         my $_tok;
28174         my $return = undef;
28175         my $_matched=0;
28176         my $commit=0;
28177         my @item = ();
28178         my %item = ();
28179         my $repeating =  defined($_[2]) && $_[2];
28180         my $_noactions = defined($_[3]) && $_[3];
28181         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
28182         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
28183         my $text;
28184         my $lastsep="";
28185         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28186         $expectation->at($_[1]);
28187         
28188         my $thisline;
28189         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28190
28191         
28192
28193         while (!$_matched && !$commit)
28194         {
28195                 
28196                 Parse::RecDescent::_trace(q{Trying production: [/view/i]},
28197                                           Parse::RecDescent::_tracefirst($_[1]),
28198                                           q{VIEW},
28199                                           $tracelevel)
28200                                                 if defined $::RD_TRACE;
28201                 my $thisprod = $thisrule->{"prods"}[0];
28202                 $text = $_[1];
28203                 my $_savetext;
28204                 @item = (q{VIEW});
28205                 %item = (__RULE__ => q{VIEW});
28206                 my $repcount = 0;
28207
28208
28209                 Parse::RecDescent::_trace(q{Trying terminal: [/view/i]}, Parse::RecDescent::_tracefirst($text),
28210                                           q{VIEW},
28211                                           $tracelevel)
28212                                                 if defined $::RD_TRACE;
28213                 $lastsep = "";
28214                 $expectation->is(q{})->at($text);
28215                 
28216
28217                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:view)//i)
28218                 {
28219                         
28220                         $expectation->failed();
28221                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28222                                                   Parse::RecDescent::_tracefirst($text))
28223                                         if defined $::RD_TRACE;
28224
28225                         last;
28226                 }
28227                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28228                                                 . $& . q{])},
28229                                                   Parse::RecDescent::_tracefirst($text))
28230                                         if defined $::RD_TRACE;
28231                 push @item, $item{__PATTERN1__}=$&;
28232                 
28233
28234
28235                 Parse::RecDescent::_trace(q{>>Matched production: [/view/i]<<},
28236                                           Parse::RecDescent::_tracefirst($text),
28237                                           q{VIEW},
28238                                           $tracelevel)
28239                                                 if defined $::RD_TRACE;
28240                 $_matched = 1;
28241                 last;
28242         }
28243
28244
28245         unless ( $_matched || defined($return) || defined($score) )
28246         {
28247                 
28248
28249                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
28250                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
28251                                          Parse::RecDescent::_tracefirst($_[1]),
28252                                          q{VIEW},
28253                                          $tracelevel)
28254                                         if defined $::RD_TRACE;
28255                 return undef;
28256         }
28257         if (!defined($return) && defined($score))
28258         {
28259                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
28260                                           q{VIEW},
28261                                           $tracelevel)
28262                                                 if defined $::RD_TRACE;
28263                 $return = $score_return;
28264         }
28265         splice @{$thisparser->{errors}}, $err_at;
28266         $return = $item[$#item] unless defined $return;
28267         if (defined $::RD_TRACE)
28268         {
28269                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
28270                                           $return . q{])}, "",
28271                                           q{VIEW},
28272                                           $tracelevel);
28273                 Parse::RecDescent::_trace(q{(consumed: [} .
28274                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
28275                                           Parse::RecDescent::_tracefirst($text),
28276                                           , q{VIEW},
28277                                           $tracelevel)
28278         }
28279         $_[1] = $text;
28280         return $return;
28281 }
28282
28283 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28284 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::with_expression
28285 {
28286         my $thisparser = $_[0];
28287         use vars q{$tracelevel};
28288         local $tracelevel = ($tracelevel||0)+1;
28289         $ERRORS = 0;
28290         my $thisrule = $thisparser->{"rules"}{"with_expression"};
28291         
28292         Parse::RecDescent::_trace(q{Trying rule: [with_expression]},
28293                                   Parse::RecDescent::_tracefirst($_[1]),
28294                                   q{with_expression},
28295                                   $tracelevel)
28296                                         if defined $::RD_TRACE;
28297
28298         
28299         my $err_at = @{$thisparser->{errors}};
28300
28301         my $score;
28302         my $score_return;
28303         my $_tok;
28304         my $return = undef;
28305         my $_matched=0;
28306         my $commit=0;
28307         my @item = ();
28308         my %item = ();
28309         my $repeating =  defined($_[2]) && $_[2];
28310         my $_noactions = defined($_[3]) && $_[3];
28311         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
28312         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
28313         my $text;
28314         my $lastsep="";
28315         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28316         $expectation->at($_[1]);
28317         
28318         my $thisline;
28319         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28320
28321         
28322
28323         while (!$_matched && !$commit)
28324         {
28325                 
28326                 Parse::RecDescent::_trace(q{Trying production: [/WITH/i <leftop: common_table_expression /,/ common_table_expression>]},
28327                                           Parse::RecDescent::_tracefirst($_[1]),
28328                                           q{with_expression},
28329                                           $tracelevel)
28330                                                 if defined $::RD_TRACE;
28331                 my $thisprod = $thisrule->{"prods"}[0];
28332                 $text = $_[1];
28333                 my $_savetext;
28334                 @item = (q{with_expression});
28335                 %item = (__RULE__ => q{with_expression});
28336                 my $repcount = 0;
28337
28338
28339                 Parse::RecDescent::_trace(q{Trying terminal: [/WITH/i]}, Parse::RecDescent::_tracefirst($text),
28340                                           q{with_expression},
28341                                           $tracelevel)
28342                                                 if defined $::RD_TRACE;
28343                 $lastsep = "";
28344                 $expectation->is(q{})->at($text);
28345                 
28346
28347                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WITH)//i)
28348                 {
28349                         
28350                         $expectation->failed();
28351                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28352                                                   Parse::RecDescent::_tracefirst($text))
28353                                         if defined $::RD_TRACE;
28354
28355                         last;
28356                 }
28357                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28358                                                 . $& . q{])},
28359                                                   Parse::RecDescent::_tracefirst($text))
28360                                         if defined $::RD_TRACE;
28361                 push @item, $item{__PATTERN1__}=$&;
28362                 
28363
28364                 Parse::RecDescent::_trace(q{Trying operator: [<leftop: common_table_expression /,/ common_table_expression>]},
28365                                   Parse::RecDescent::_tracefirst($text),
28366                                   q{with_expression},
28367                                   $tracelevel)
28368                                         if defined $::RD_TRACE;
28369                 $expectation->is(q{<leftop: common_table_expression /,/ common_table_expression>})->at($text);
28370
28371                 $_tok = undef;
28372                 OPLOOP: while (1)
28373                 {
28374                   $repcount = 0;
28375                   my  @item;
28376                   
28377                   # MATCH LEFTARG
28378                   
28379                 Parse::RecDescent::_trace(q{Trying subrule: [common_table_expression]},
28380                                   Parse::RecDescent::_tracefirst($text),
28381                                   q{with_expression},
28382                                   $tracelevel)
28383                                         if defined $::RD_TRACE;
28384                 if (1) { no strict qw{refs};
28385                 $expectation->is(q{common_table_expression})->at($text);
28386                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
28387                 {
28388                         
28389                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [common_table_expression]>>},
28390                                                   Parse::RecDescent::_tracefirst($text),
28391                                                   q{with_expression},
28392                                                   $tracelevel)
28393                                                         if defined $::RD_TRACE;
28394                         $expectation->failed();
28395                         last;
28396                 }
28397                 Parse::RecDescent::_trace(q{>>Matched subrule: [common_table_expression]<< (return value: [}
28398                                         . $_tok . q{]},
28399                                           
28400                                           Parse::RecDescent::_tracefirst($text),
28401                                           q{with_expression},
28402                                           $tracelevel)
28403                                                 if defined $::RD_TRACE;
28404                 $item{q{common_table_expression}} = $_tok;
28405                 push @item, $_tok;
28406                 
28407                 }
28408
28409
28410                   $repcount++;
28411
28412                   my $savetext = $text;
28413                   my $backtrack;
28414
28415                   # MATCH (OP RIGHTARG)(s)
28416                   while ($repcount < 100000000)
28417                   {
28418                         $backtrack = 0;
28419                         
28420                 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
28421                                           q{with_expression},
28422                                           $tracelevel)
28423                                                 if defined $::RD_TRACE;
28424                 $lastsep = "";
28425                 $expectation->is(q{/,/})->at($text);
28426                 
28427
28428                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
28429                 {
28430                         
28431                         $expectation->failed();
28432                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28433                                                   Parse::RecDescent::_tracefirst($text))
28434                                         if defined $::RD_TRACE;
28435
28436                         last;
28437                 }
28438                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28439                                                 . $& . q{])},
28440                                                   Parse::RecDescent::_tracefirst($text))
28441                                         if defined $::RD_TRACE;
28442                 push @item, $item{__PATTERN2__}=$&;
28443                 
28444
28445                         pop @item;
28446                         if (defined $1) {push @item, $item{'common_table_expression(s)'}=$1; $backtrack=1;}
28447                         
28448                 Parse::RecDescent::_trace(q{Trying subrule: [common_table_expression]},
28449                                   Parse::RecDescent::_tracefirst($text),
28450                                   q{with_expression},
28451                                   $tracelevel)
28452                                         if defined $::RD_TRACE;
28453                 if (1) { no strict qw{refs};
28454                 $expectation->is(q{common_table_expression})->at($text);
28455                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
28456                 {
28457                         
28458                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [common_table_expression]>>},
28459                                                   Parse::RecDescent::_tracefirst($text),
28460                                                   q{with_expression},
28461                                                   $tracelevel)
28462                                                         if defined $::RD_TRACE;
28463                         $expectation->failed();
28464                         last;
28465                 }
28466                 Parse::RecDescent::_trace(q{>>Matched subrule: [common_table_expression]<< (return value: [}
28467                                         . $_tok . q{]},
28468                                           
28469                                           Parse::RecDescent::_tracefirst($text),
28470                                           q{with_expression},
28471                                           $tracelevel)
28472                                                 if defined $::RD_TRACE;
28473                 $item{q{common_table_expression}} = $_tok;
28474                 push @item, $_tok;
28475                 
28476                 }
28477
28478                         $savetext = $text;
28479                         $repcount++;
28480                   }
28481                   $text = $savetext;
28482                   pop @item if $backtrack;
28483
28484                   unless (@item) { undef $_tok; last }
28485                   $_tok = [ @item ];
28486                   last;
28487                 } 
28488
28489                 unless ($repcount>=1)
28490                 {
28491                         Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: common_table_expression /,/ common_table_expression>]>>},
28492                                                   Parse::RecDescent::_tracefirst($text),
28493                                                   q{with_expression},
28494                                                   $tracelevel)
28495                                                         if defined $::RD_TRACE;
28496                         $expectation->failed();
28497                         last;
28498                 }
28499                 Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: common_table_expression /,/ common_table_expression>]<< (return value: [}
28500                                           . qq{@{$_tok||[]}} . q{]},
28501                                           Parse::RecDescent::_tracefirst($text),
28502                                           q{with_expression},
28503                                           $tracelevel)
28504                                                 if defined $::RD_TRACE;
28505
28506                 push @item, $item{'common_table_expression(s)'}=$_tok||[];
28507
28508
28509                 Parse::RecDescent::_trace(q{Trying action},
28510                                           Parse::RecDescent::_tracefirst($text),
28511                                           q{with_expression},
28512                                           $tracelevel)
28513                                                 if defined $::RD_TRACE;
28514                 
28515
28516                 $_tok = ($_noactions) ? 0 : do {
28517     $return = $item{'common_table_expression'};
28518 };
28519                 unless (defined $_tok)
28520                 {
28521                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
28522                                         if defined $::RD_TRACE;
28523                         last;
28524                 }
28525                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
28526                                           . $_tok . q{])},
28527                                           Parse::RecDescent::_tracefirst($text))
28528                                                 if defined $::RD_TRACE;
28529                 push @item, $_tok;
28530                 $item{__ACTION1__}=$_tok;
28531                 
28532
28533
28534                 Parse::RecDescent::_trace(q{>>Matched production: [/WITH/i <leftop: common_table_expression /,/ common_table_expression>]<<},
28535                                           Parse::RecDescent::_tracefirst($text),
28536                                           q{with_expression},
28537                                           $tracelevel)
28538                                                 if defined $::RD_TRACE;
28539                 $_matched = 1;
28540                 last;
28541         }
28542
28543
28544         unless ( $_matched || defined($return) || defined($score) )
28545         {
28546                 
28547
28548                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
28549                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
28550                                          Parse::RecDescent::_tracefirst($_[1]),
28551                                          q{with_expression},
28552                                          $tracelevel)
28553                                         if defined $::RD_TRACE;
28554                 return undef;
28555         }
28556         if (!defined($return) && defined($score))
28557         {
28558                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
28559                                           q{with_expression},
28560                                           $tracelevel)
28561                                                 if defined $::RD_TRACE;
28562                 $return = $score_return;
28563         }
28564         splice @{$thisparser->{errors}}, $err_at;
28565         $return = $item[$#item] unless defined $return;
28566         if (defined $::RD_TRACE)
28567         {
28568                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
28569                                           $return . q{])}, "",
28570                                           q{with_expression},
28571                                           $tracelevel);
28572                 Parse::RecDescent::_trace(q{(consumed: [} .
28573                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
28574                                           Parse::RecDescent::_tracefirst($text),
28575                                           , q{with_expression},
28576                                           $tracelevel)
28577         }
28578         $_[1] = $text;
28579         return $return;
28580 }
28581
28582 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28583 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant
28584 {
28585         my $thisparser = $_[0];
28586         use vars q{$tracelevel};
28587         local $tracelevel = ($tracelevel||0)+1;
28588         $ERRORS = 0;
28589         my $thisrule = $thisparser->{"rules"}{"numeric_constant"};
28590         
28591         Parse::RecDescent::_trace(q{Trying rule: [numeric_constant]},
28592                                   Parse::RecDescent::_tracefirst($_[1]),
28593                                   q{numeric_constant},
28594                                   $tracelevel)
28595                                         if defined $::RD_TRACE;
28596
28597         
28598         my $err_at = @{$thisparser->{errors}};
28599
28600         my $score;
28601         my $score_return;
28602         my $_tok;
28603         my $return = undef;
28604         my $_matched=0;
28605         my $commit=0;
28606         my @item = ();
28607         my %item = ();
28608         my $repeating =  defined($_[2]) && $_[2];
28609         my $_noactions = defined($_[3]) && $_[3];
28610         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
28611         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
28612         my $text;
28613         my $lastsep="";
28614         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28615         $expectation->at($_[1]);
28616         
28617         my $thisline;
28618         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28619
28620         
28621
28622         while (!$_matched && !$commit)
28623         {
28624                 
28625                 Parse::RecDescent::_trace(q{Trying production: [/\\d+/]},
28626                                           Parse::RecDescent::_tracefirst($_[1]),
28627                                           q{numeric_constant},
28628                                           $tracelevel)
28629                                                 if defined $::RD_TRACE;
28630                 my $thisprod = $thisrule->{"prods"}[0];
28631                 $text = $_[1];
28632                 my $_savetext;
28633                 @item = (q{numeric_constant});
28634                 %item = (__RULE__ => q{numeric_constant});
28635                 my $repcount = 0;
28636
28637
28638                 Parse::RecDescent::_trace(q{Trying terminal: [/\\d+/]}, Parse::RecDescent::_tracefirst($text),
28639                                           q{numeric_constant},
28640                                           $tracelevel)
28641                                                 if defined $::RD_TRACE;
28642                 $lastsep = "";
28643                 $expectation->is(q{})->at($text);
28644                 
28645
28646                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:\d+)//)
28647                 {
28648                         
28649                         $expectation->failed();
28650                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28651                                                   Parse::RecDescent::_tracefirst($text))
28652                                         if defined $::RD_TRACE;
28653
28654                         last;
28655                 }
28656                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28657                                                 . $& . q{])},
28658                                                   Parse::RecDescent::_tracefirst($text))
28659                                         if defined $::RD_TRACE;
28660                 push @item, $item{__PATTERN1__}=$&;
28661                 
28662
28663
28664                 Parse::RecDescent::_trace(q{>>Matched production: [/\\d+/]<<},
28665                                           Parse::RecDescent::_tracefirst($text),
28666                                           q{numeric_constant},
28667                                           $tracelevel)
28668                                                 if defined $::RD_TRACE;
28669                 $_matched = 1;
28670                 last;
28671         }
28672
28673
28674         unless ( $_matched || defined($return) || defined($score) )
28675         {
28676                 
28677
28678                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
28679                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
28680                                          Parse::RecDescent::_tracefirst($_[1]),
28681                                          q{numeric_constant},
28682                                          $tracelevel)
28683                                         if defined $::RD_TRACE;
28684                 return undef;
28685         }
28686         if (!defined($return) && defined($score))
28687         {
28688                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
28689                                           q{numeric_constant},
28690                                           $tracelevel)
28691                                                 if defined $::RD_TRACE;
28692                 $return = $score_return;
28693         }
28694         splice @{$thisparser->{errors}}, $err_at;
28695         $return = $item[$#item] unless defined $return;
28696         if (defined $::RD_TRACE)
28697         {
28698                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
28699                                           $return . q{])}, "",
28700                                           q{numeric_constant},
28701                                           $tracelevel);
28702                 Parse::RecDescent::_trace(q{(consumed: [} .
28703                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
28704                                           Parse::RecDescent::_tracefirst($text),
28705                                           , q{numeric_constant},
28706                                           $tracelevel)
28707         }
28708         $_[1] = $text;
28709         return $return;
28710 }
28711
28712 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28713 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_table
28714 {
28715         my $thisparser = $_[0];
28716         use vars q{$tracelevel};
28717         local $tracelevel = ($tracelevel||0)+1;
28718         $ERRORS = 0;
28719         my $thisrule = $thisparser->{"rules"}{"old_new_table"};
28720         
28721         Parse::RecDescent::_trace(q{Trying rule: [old_new_table]},
28722                                   Parse::RecDescent::_tracefirst($_[1]),
28723                                   q{old_new_table},
28724                                   $tracelevel)
28725                                         if defined $::RD_TRACE;
28726
28727         
28728         my $err_at = @{$thisparser->{errors}};
28729
28730         my $score;
28731         my $score_return;
28732         my $_tok;
28733         my $return = undef;
28734         my $_matched=0;
28735         my $commit=0;
28736         my @item = ();
28737         my %item = ();
28738         my $repeating =  defined($_[2]) && $_[2];
28739         my $_noactions = defined($_[3]) && $_[3];
28740         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
28741         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
28742         my $text;
28743         my $lastsep="";
28744         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28745         $expectation->at($_[1]);
28746         
28747         my $thisline;
28748         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28749
28750         
28751
28752         while (!$_matched && !$commit)
28753         {
28754                 
28755                 Parse::RecDescent::_trace(q{Trying production: [/OLD_TABLE/i /(AS)?/i identifier]},
28756                                           Parse::RecDescent::_tracefirst($_[1]),
28757                                           q{old_new_table},
28758                                           $tracelevel)
28759                                                 if defined $::RD_TRACE;
28760                 my $thisprod = $thisrule->{"prods"}[0];
28761                 $text = $_[1];
28762                 my $_savetext;
28763                 @item = (q{old_new_table});
28764                 %item = (__RULE__ => q{old_new_table});
28765                 my $repcount = 0;
28766
28767
28768                 Parse::RecDescent::_trace(q{Trying terminal: [/OLD_TABLE/i]}, Parse::RecDescent::_tracefirst($text),
28769                                           q{old_new_table},
28770                                           $tracelevel)
28771                                                 if defined $::RD_TRACE;
28772                 $lastsep = "";
28773                 $expectation->is(q{})->at($text);
28774                 
28775
28776                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OLD_TABLE)//i)
28777                 {
28778                         
28779                         $expectation->failed();
28780                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28781                                                   Parse::RecDescent::_tracefirst($text))
28782                                         if defined $::RD_TRACE;
28783
28784                         last;
28785                 }
28786                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28787                                                 . $& . q{])},
28788                                                   Parse::RecDescent::_tracefirst($text))
28789                                         if defined $::RD_TRACE;
28790                 push @item, $item{__PATTERN1__}=$&;
28791                 
28792
28793                 Parse::RecDescent::_trace(q{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
28794                                           q{old_new_table},
28795                                           $tracelevel)
28796                                                 if defined $::RD_TRACE;
28797                 $lastsep = "";
28798                 $expectation->is(q{/(AS)?/i})->at($text);
28799                 
28800
28801                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(AS)?)//i)
28802                 {
28803                         
28804                         $expectation->failed();
28805                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28806                                                   Parse::RecDescent::_tracefirst($text))
28807                                         if defined $::RD_TRACE;
28808
28809                         last;
28810                 }
28811                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28812                                                 . $& . q{])},
28813                                                   Parse::RecDescent::_tracefirst($text))
28814                                         if defined $::RD_TRACE;
28815                 push @item, $item{__PATTERN2__}=$&;
28816                 
28817
28818                 Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
28819                                   Parse::RecDescent::_tracefirst($text),
28820                                   q{old_new_table},
28821                                   $tracelevel)
28822                                         if defined $::RD_TRACE;
28823                 if (1) { no strict qw{refs};
28824                 $expectation->is(q{identifier})->at($text);
28825                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
28826                 {
28827                         
28828                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [identifier]>>},
28829                                                   Parse::RecDescent::_tracefirst($text),
28830                                                   q{old_new_table},
28831                                                   $tracelevel)
28832                                                         if defined $::RD_TRACE;
28833                         $expectation->failed();
28834                         last;
28835                 }
28836                 Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
28837                                         . $_tok . q{]},
28838                                           
28839                                           Parse::RecDescent::_tracefirst($text),
28840                                           q{old_new_table},
28841                                           $tracelevel)
28842                                                 if defined $::RD_TRACE;
28843                 $item{q{identifier}} = $_tok;
28844                 push @item, $_tok;
28845                 
28846                 }
28847
28848                 Parse::RecDescent::_trace(q{Trying action},
28849                                           Parse::RecDescent::_tracefirst($text),
28850                                           q{old_new_table},
28851                                           $tracelevel)
28852                                                 if defined $::RD_TRACE;
28853                 
28854
28855                 $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
28856                 unless (defined $_tok)
28857                 {
28858                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
28859                                         if defined $::RD_TRACE;
28860                         last;
28861                 }
28862                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
28863                                           . $_tok . q{])},
28864                                           Parse::RecDescent::_tracefirst($text))
28865                                                 if defined $::RD_TRACE;
28866                 push @item, $_tok;
28867                 $item{__ACTION1__}=$_tok;
28868                 
28869
28870
28871                 Parse::RecDescent::_trace(q{>>Matched production: [/OLD_TABLE/i /(AS)?/i identifier]<<},
28872                                           Parse::RecDescent::_tracefirst($text),
28873                                           q{old_new_table},
28874                                           $tracelevel)
28875                                                 if defined $::RD_TRACE;
28876                 $_matched = 1;
28877                 last;
28878         }
28879
28880
28881         while (!$_matched && !$commit)
28882         {
28883                 
28884                 Parse::RecDescent::_trace(q{Trying production: [/NEW_TABLE/i /(AS)?/i identifier]},
28885                                           Parse::RecDescent::_tracefirst($_[1]),
28886                                           q{old_new_table},
28887                                           $tracelevel)
28888                                                 if defined $::RD_TRACE;
28889                 my $thisprod = $thisrule->{"prods"}[1];
28890                 $text = $_[1];
28891                 my $_savetext;
28892                 @item = (q{old_new_table});
28893                 %item = (__RULE__ => q{old_new_table});
28894                 my $repcount = 0;
28895
28896
28897                 Parse::RecDescent::_trace(q{Trying terminal: [/NEW_TABLE/i]}, Parse::RecDescent::_tracefirst($text),
28898                                           q{old_new_table},
28899                                           $tracelevel)
28900                                                 if defined $::RD_TRACE;
28901                 $lastsep = "";
28902                 $expectation->is(q{})->at($text);
28903                 
28904
28905                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NEW_TABLE)//i)
28906                 {
28907                         
28908                         $expectation->failed();
28909                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28910                                                   Parse::RecDescent::_tracefirst($text))
28911                                         if defined $::RD_TRACE;
28912
28913                         last;
28914                 }
28915                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28916                                                 . $& . q{])},
28917                                                   Parse::RecDescent::_tracefirst($text))
28918                                         if defined $::RD_TRACE;
28919                 push @item, $item{__PATTERN1__}=$&;
28920                 
28921
28922                 Parse::RecDescent::_trace(q{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
28923                                           q{old_new_table},
28924                                           $tracelevel)
28925                                                 if defined $::RD_TRACE;
28926                 $lastsep = "";
28927                 $expectation->is(q{/(AS)?/i})->at($text);
28928                 
28929
28930                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(AS)?)//i)
28931                 {
28932                         
28933                         $expectation->failed();
28934                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28935                                                   Parse::RecDescent::_tracefirst($text))
28936                                         if defined $::RD_TRACE;
28937
28938                         last;
28939                 }
28940                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28941                                                 . $& . q{])},
28942                                                   Parse::RecDescent::_tracefirst($text))
28943                                         if defined $::RD_TRACE;
28944                 push @item, $item{__PATTERN2__}=$&;
28945                 
28946
28947                 Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
28948                                   Parse::RecDescent::_tracefirst($text),
28949                                   q{old_new_table},
28950                                   $tracelevel)
28951                                         if defined $::RD_TRACE;
28952                 if (1) { no strict qw{refs};
28953                 $expectation->is(q{identifier})->at($text);
28954                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
28955                 {
28956                         
28957                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [identifier]>>},
28958                                                   Parse::RecDescent::_tracefirst($text),
28959                                                   q{old_new_table},
28960                                                   $tracelevel)
28961                                                         if defined $::RD_TRACE;
28962                         $expectation->failed();
28963                         last;
28964                 }
28965                 Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
28966                                         . $_tok . q{]},
28967                                           
28968                                           Parse::RecDescent::_tracefirst($text),
28969                                           q{old_new_table},
28970                                           $tracelevel)
28971                                                 if defined $::RD_TRACE;
28972                 $item{q{identifier}} = $_tok;
28973                 push @item, $_tok;
28974                 
28975                 }
28976
28977                 Parse::RecDescent::_trace(q{Trying action},
28978                                           Parse::RecDescent::_tracefirst($text),
28979                                           q{old_new_table},
28980                                           $tracelevel)
28981                                                 if defined $::RD_TRACE;
28982                 
28983
28984                 $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
28985                 unless (defined $_tok)
28986                 {
28987                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
28988                                         if defined $::RD_TRACE;
28989                         last;
28990                 }
28991                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
28992                                           . $_tok . q{])},
28993                                           Parse::RecDescent::_tracefirst($text))
28994                                                 if defined $::RD_TRACE;
28995                 push @item, $_tok;
28996                 $item{__ACTION1__}=$_tok;
28997                 
28998
28999
29000                 Parse::RecDescent::_trace(q{>>Matched production: [/NEW_TABLE/i /(AS)?/i identifier]<<},
29001                                           Parse::RecDescent::_tracefirst($text),
29002                                           q{old_new_table},
29003                                           $tracelevel)
29004                                                 if defined $::RD_TRACE;
29005                 $_matched = 1;
29006                 last;
29007         }
29008
29009
29010         unless ( $_matched || defined($return) || defined($score) )
29011         {
29012                 
29013
29014                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
29015                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
29016                                          Parse::RecDescent::_tracefirst($_[1]),
29017                                          q{old_new_table},
29018                                          $tracelevel)
29019                                         if defined $::RD_TRACE;
29020                 return undef;
29021         }
29022         if (!defined($return) && defined($score))
29023         {
29024                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29025                                           q{old_new_table},
29026                                           $tracelevel)
29027                                                 if defined $::RD_TRACE;
29028                 $return = $score_return;
29029         }
29030         splice @{$thisparser->{errors}}, $err_at;
29031         $return = $item[$#item] unless defined $return;
29032         if (defined $::RD_TRACE)
29033         {
29034                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29035                                           $return . q{])}, "",
29036                                           q{old_new_table},
29037                                           $tracelevel);
29038                 Parse::RecDescent::_trace(q{(consumed: [} .
29039                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
29040                                           Parse::RecDescent::_tracefirst($text),
29041                                           , q{old_new_table},
29042                                           $tracelevel)
29043         }
29044         $_[1] = $text;
29045         return $return;
29046 }
29047
29048 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29049 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_numbering_function
29050 {
29051         my $thisparser = $_[0];
29052         use vars q{$tracelevel};
29053         local $tracelevel = ($tracelevel||0)+1;
29054         $ERRORS = 0;
29055         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_numbering_function"};
29056         
29057         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_numbering_function]},
29058                                   Parse::RecDescent::_tracefirst($_[1]),
29059                                   q{_alternation_1_of_production_1_of_rule_numbering_function},
29060                                   $tracelevel)
29061                                         if defined $::RD_TRACE;
29062
29063         
29064         my $err_at = @{$thisparser->{errors}};
29065
29066         my $score;
29067         my $score_return;
29068         my $_tok;
29069         my $return = undef;
29070         my $_matched=0;
29071         my $commit=0;
29072         my @item = ();
29073         my %item = ();
29074         my $repeating =  defined($_[2]) && $_[2];
29075         my $_noactions = defined($_[3]) && $_[3];
29076         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
29077         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
29078         my $text;
29079         my $lastsep="";
29080         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29081         $expectation->at($_[1]);
29082         
29083         my $thisline;
29084         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29085
29086         
29087
29088         while (!$_matched && !$commit)
29089         {
29090                 
29091                 Parse::RecDescent::_trace(q{Trying production: [window_order_clause window_aggregation_group_clause]},
29092                                           Parse::RecDescent::_tracefirst($_[1]),
29093                                           q{_alternation_1_of_production_1_of_rule_numbering_function},
29094                                           $tracelevel)
29095                                                 if defined $::RD_TRACE;
29096                 my $thisprod = $thisrule->{"prods"}[0];
29097                 $text = $_[1];
29098                 my $_savetext;
29099                 @item = (q{_alternation_1_of_production_1_of_rule_numbering_function});
29100                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_numbering_function});
29101                 my $repcount = 0;
29102
29103
29104                 Parse::RecDescent::_trace(q{Trying subrule: [window_order_clause]},
29105                                   Parse::RecDescent::_tracefirst($text),
29106                                   q{_alternation_1_of_production_1_of_rule_numbering_function},
29107                                   $tracelevel)
29108                                         if defined $::RD_TRACE;
29109                 if (1) { no strict qw{refs};
29110                 $expectation->is(q{})->at($text);
29111                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
29112                 {
29113                         
29114                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [window_order_clause]>>},
29115                                                   Parse::RecDescent::_tracefirst($text),
29116                                                   q{_alternation_1_of_production_1_of_rule_numbering_function},
29117                                                   $tracelevel)
29118                                                         if defined $::RD_TRACE;
29119                         $expectation->failed();
29120                         last;
29121                 }
29122                 Parse::RecDescent::_trace(q{>>Matched subrule: [window_order_clause]<< (return value: [}
29123                                         . $_tok . q{]},
29124                                           
29125                                           Parse::RecDescent::_tracefirst($text),
29126                                           q{_alternation_1_of_production_1_of_rule_numbering_function},
29127                                           $tracelevel)
29128                                                 if defined $::RD_TRACE;
29129                 $item{q{window_order_clause}} = $_tok;
29130                 push @item, $_tok;
29131                 
29132                 }
29133
29134                 Parse::RecDescent::_trace(q{Trying repeated subrule: [window_aggregation_group_clause]},
29135                                   Parse::RecDescent::_tracefirst($text),
29136                                   q{_alternation_1_of_production_1_of_rule_numbering_function},
29137                                   $tracelevel)
29138                                         if defined $::RD_TRACE;
29139                 $expectation->is(q{window_aggregation_group_clause})->at($text);
29140                 
29141                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause, 0, 1, $_noactions,$expectation,undef))) 
29142                 {
29143                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [window_aggregation_group_clause]>>},
29144                                                   Parse::RecDescent::_tracefirst($text),
29145                                                   q{_alternation_1_of_production_1_of_rule_numbering_function},
29146                                                   $tracelevel)
29147                                                         if defined $::RD_TRACE;
29148                         last;
29149                 }
29150                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [window_aggregation_group_clause]<< (}
29151                                         . @$_tok . q{ times)},
29152                                           
29153                                           Parse::RecDescent::_tracefirst($text),
29154                                           q{_alternation_1_of_production_1_of_rule_numbering_function},
29155                                           $tracelevel)
29156                                                 if defined $::RD_TRACE;
29157                 $item{q{window_aggregation_group_clause(?)}} = $_tok;
29158                 push @item, $_tok;
29159                 
29160
29161
29162
29163                 Parse::RecDescent::_trace(q{>>Matched production: [window_order_clause window_aggregation_group_clause]<<},
29164                                           Parse::RecDescent::_tracefirst($text),
29165                                           q{_alternation_1_of_production_1_of_rule_numbering_function},
29166                                           $tracelevel)
29167                                                 if defined $::RD_TRACE;
29168                 $_matched = 1;
29169                 last;
29170         }
29171
29172
29173         unless ( $_matched || defined($return) || defined($score) )
29174         {
29175                 
29176
29177                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
29178                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
29179                                          Parse::RecDescent::_tracefirst($_[1]),
29180                                          q{_alternation_1_of_production_1_of_rule_numbering_function},
29181                                          $tracelevel)
29182                                         if defined $::RD_TRACE;
29183                 return undef;
29184         }
29185         if (!defined($return) && defined($score))
29186         {
29187                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29188                                           q{_alternation_1_of_production_1_of_rule_numbering_function},
29189                                           $tracelevel)
29190                                                 if defined $::RD_TRACE;
29191                 $return = $score_return;
29192         }
29193         splice @{$thisparser->{errors}}, $err_at;
29194         $return = $item[$#item] unless defined $return;
29195         if (defined $::RD_TRACE)
29196         {
29197                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29198                                           $return . q{])}, "",
29199                                           q{_alternation_1_of_production_1_of_rule_numbering_function},
29200                                           $tracelevel);
29201                 Parse::RecDescent::_trace(q{(consumed: [} .
29202                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
29203                                           Parse::RecDescent::_tracefirst($text),
29204                                           , q{_alternation_1_of_production_1_of_rule_numbering_function},
29205                                           $tracelevel)
29206         }
29207         $_[1] = $text;
29208         return $return;
29209 }
29210
29211 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29212 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
29213 {
29214         my $thisparser = $_[0];
29215         use vars q{$tracelevel};
29216         local $tracelevel = ($tracelevel||0)+1;
29217         $ERRORS = 0;
29218         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause"};
29219         
29220         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]},
29221                                   Parse::RecDescent::_tracefirst($_[1]),
29222                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29223                                   $tracelevel)
29224                                         if defined $::RD_TRACE;
29225
29226         
29227         my $err_at = @{$thisparser->{errors}};
29228
29229         my $score;
29230         my $score_return;
29231         my $_tok;
29232         my $return = undef;
29233         my $_matched=0;
29234         my $commit=0;
29235         my @item = ();
29236         my %item = ();
29237         my $repeating =  defined($_[2]) && $_[2];
29238         my $_noactions = defined($_[3]) && $_[3];
29239         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
29240         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
29241         my $text;
29242         my $lastsep="";
29243         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29244         $expectation->at($_[1]);
29245         
29246         my $thisline;
29247         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29248
29249         
29250
29251         while (!$_matched && !$commit)
29252         {
29253                 
29254                 Parse::RecDescent::_trace(q{Trying production: [result_expression]},
29255                                           Parse::RecDescent::_tracefirst($_[1]),
29256                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29257                                           $tracelevel)
29258                                                 if defined $::RD_TRACE;
29259                 my $thisprod = $thisrule->{"prods"}[0];
29260                 $text = $_[1];
29261                 my $_savetext;
29262                 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
29263                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
29264                 my $repcount = 0;
29265
29266
29267                 Parse::RecDescent::_trace(q{Trying subrule: [result_expression]},
29268                                   Parse::RecDescent::_tracefirst($text),
29269                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29270                                   $tracelevel)
29271                                         if defined $::RD_TRACE;
29272                 if (1) { no strict qw{refs};
29273                 $expectation->is(q{})->at($text);
29274                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
29275                 {
29276                         
29277                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [result_expression]>>},
29278                                                   Parse::RecDescent::_tracefirst($text),
29279                                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29280                                                   $tracelevel)
29281                                                         if defined $::RD_TRACE;
29282                         $expectation->failed();
29283                         last;
29284                 }
29285                 Parse::RecDescent::_trace(q{>>Matched subrule: [result_expression]<< (return value: [}
29286                                         . $_tok . q{]},
29287                                           
29288                                           Parse::RecDescent::_tracefirst($text),
29289                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29290                                           $tracelevel)
29291                                                 if defined $::RD_TRACE;
29292                 $item{q{result_expression}} = $_tok;
29293                 push @item, $_tok;
29294                 
29295                 }
29296
29297
29298                 Parse::RecDescent::_trace(q{>>Matched production: [result_expression]<<},
29299                                           Parse::RecDescent::_tracefirst($text),
29300                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29301                                           $tracelevel)
29302                                                 if defined $::RD_TRACE;
29303                 $_matched = 1;
29304                 last;
29305         }
29306
29307
29308         while (!$_matched && !$commit)
29309         {
29310                 
29311                 Parse::RecDescent::_trace(q{Trying production: [/NULL/i]},
29312                                           Parse::RecDescent::_tracefirst($_[1]),
29313                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29314                                           $tracelevel)
29315                                                 if defined $::RD_TRACE;
29316                 my $thisprod = $thisrule->{"prods"}[1];
29317                 $text = $_[1];
29318                 my $_savetext;
29319                 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
29320                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
29321                 my $repcount = 0;
29322
29323
29324                 Parse::RecDescent::_trace(q{Trying terminal: [/NULL/i]}, Parse::RecDescent::_tracefirst($text),
29325                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29326                                           $tracelevel)
29327                                                 if defined $::RD_TRACE;
29328                 $lastsep = "";
29329                 $expectation->is(q{})->at($text);
29330                 
29331
29332                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULL)//i)
29333                 {
29334                         
29335                         $expectation->failed();
29336                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29337                                                   Parse::RecDescent::_tracefirst($text))
29338                                         if defined $::RD_TRACE;
29339
29340                         last;
29341                 }
29342                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29343                                                 . $& . q{])},
29344                                                   Parse::RecDescent::_tracefirst($text))
29345                                         if defined $::RD_TRACE;
29346                 push @item, $item{__PATTERN1__}=$&;
29347                 
29348
29349
29350                 Parse::RecDescent::_trace(q{>>Matched production: [/NULL/i]<<},
29351                                           Parse::RecDescent::_tracefirst($text),
29352                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29353                                           $tracelevel)
29354                                                 if defined $::RD_TRACE;
29355                 $_matched = 1;
29356                 last;
29357         }
29358
29359
29360         unless ( $_matched || defined($return) || defined($score) )
29361         {
29362                 
29363
29364                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
29365                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
29366                                          Parse::RecDescent::_tracefirst($_[1]),
29367                                          q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29368                                          $tracelevel)
29369                                         if defined $::RD_TRACE;
29370                 return undef;
29371         }
29372         if (!defined($return) && defined($score))
29373         {
29374                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29375                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29376                                           $tracelevel)
29377                                                 if defined $::RD_TRACE;
29378                 $return = $score_return;
29379         }
29380         splice @{$thisparser->{errors}}, $err_at;
29381         $return = $item[$#item] unless defined $return;
29382         if (defined $::RD_TRACE)
29383         {
29384                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29385                                           $return . q{])}, "",
29386                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29387                                           $tracelevel);
29388                 Parse::RecDescent::_trace(q{(consumed: [} .
29389                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
29390                                           Parse::RecDescent::_tracefirst($text),
29391                                           , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29392                                           $tracelevel)
29393         }
29394         $_[1] = $text;
29395         return $return;
29396 }
29397
29398 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29399 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr
29400 {
29401         my $thisparser = $_[0];
29402         use vars q{$tracelevel};
29403         local $tracelevel = ($tracelevel||0)+1;
29404         $ERRORS = 0;
29405         my $thisrule = $thisparser->{"rules"}{"old_new_corr"};
29406         
29407         Parse::RecDescent::_trace(q{Trying rule: [old_new_corr]},
29408                                   Parse::RecDescent::_tracefirst($_[1]),
29409                                   q{old_new_corr},
29410                                   $tracelevel)
29411                                         if defined $::RD_TRACE;
29412
29413         
29414         my $err_at = @{$thisparser->{errors}};
29415
29416         my $score;
29417         my $score_return;
29418         my $_tok;
29419         my $return = undef;
29420         my $_matched=0;
29421         my $commit=0;
29422         my @item = ();
29423         my %item = ();
29424         my $repeating =  defined($_[2]) && $_[2];
29425         my $_noactions = defined($_[3]) && $_[3];
29426         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
29427         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
29428         my $text;
29429         my $lastsep="";
29430         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29431         $expectation->at($_[1]);
29432         
29433         my $thisline;
29434         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29435
29436         
29437
29438         while (!$_matched && !$commit)
29439         {
29440                 
29441                 Parse::RecDescent::_trace(q{Trying production: [/OLD/i /(AS)?/i correlation_name]},
29442                                           Parse::RecDescent::_tracefirst($_[1]),
29443                                           q{old_new_corr},
29444                                           $tracelevel)
29445                                                 if defined $::RD_TRACE;
29446                 my $thisprod = $thisrule->{"prods"}[0];
29447                 $text = $_[1];
29448                 my $_savetext;
29449                 @item = (q{old_new_corr});
29450                 %item = (__RULE__ => q{old_new_corr});
29451                 my $repcount = 0;
29452
29453
29454                 Parse::RecDescent::_trace(q{Trying terminal: [/OLD/i]}, Parse::RecDescent::_tracefirst($text),
29455                                           q{old_new_corr},
29456                                           $tracelevel)
29457                                                 if defined $::RD_TRACE;
29458                 $lastsep = "";
29459                 $expectation->is(q{})->at($text);
29460                 
29461
29462                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OLD)//i)
29463                 {
29464                         
29465                         $expectation->failed();
29466                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29467                                                   Parse::RecDescent::_tracefirst($text))
29468                                         if defined $::RD_TRACE;
29469
29470                         last;
29471                 }
29472                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29473                                                 . $& . q{])},
29474                                                   Parse::RecDescent::_tracefirst($text))
29475                                         if defined $::RD_TRACE;
29476                 push @item, $item{__PATTERN1__}=$&;
29477                 
29478
29479                 Parse::RecDescent::_trace(q{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
29480                                           q{old_new_corr},
29481                                           $tracelevel)
29482                                                 if defined $::RD_TRACE;
29483                 $lastsep = "";
29484                 $expectation->is(q{/(AS)?/i})->at($text);
29485                 
29486
29487                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(AS)?)//i)
29488                 {
29489                         
29490                         $expectation->failed();
29491                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29492                                                   Parse::RecDescent::_tracefirst($text))
29493                                         if defined $::RD_TRACE;
29494
29495                         last;
29496                 }
29497                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29498                                                 . $& . q{])},
29499                                                   Parse::RecDescent::_tracefirst($text))
29500                                         if defined $::RD_TRACE;
29501                 push @item, $item{__PATTERN2__}=$&;
29502                 
29503
29504                 Parse::RecDescent::_trace(q{Trying subrule: [correlation_name]},
29505                                   Parse::RecDescent::_tracefirst($text),
29506                                   q{old_new_corr},
29507                                   $tracelevel)
29508                                         if defined $::RD_TRACE;
29509                 if (1) { no strict qw{refs};
29510                 $expectation->is(q{correlation_name})->at($text);
29511                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
29512                 {
29513                         
29514                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [correlation_name]>>},
29515                                                   Parse::RecDescent::_tracefirst($text),
29516                                                   q{old_new_corr},
29517                                                   $tracelevel)
29518                                                         if defined $::RD_TRACE;
29519                         $expectation->failed();
29520                         last;
29521                 }
29522                 Parse::RecDescent::_trace(q{>>Matched subrule: [correlation_name]<< (return value: [}
29523                                         . $_tok . q{]},
29524                                           
29525                                           Parse::RecDescent::_tracefirst($text),
29526                                           q{old_new_corr},
29527                                           $tracelevel)
29528                                                 if defined $::RD_TRACE;
29529                 $item{q{correlation_name}} = $_tok;
29530                 push @item, $_tok;
29531                 
29532                 }
29533
29534                 Parse::RecDescent::_trace(q{Trying action},
29535                                           Parse::RecDescent::_tracefirst($text),
29536                                           q{old_new_corr},
29537                                           $tracelevel)
29538                                                 if defined $::RD_TRACE;
29539                 
29540
29541                 $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
29542                 unless (defined $_tok)
29543                 {
29544                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
29545                                         if defined $::RD_TRACE;
29546                         last;
29547                 }
29548                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
29549                                           . $_tok . q{])},
29550                                           Parse::RecDescent::_tracefirst($text))
29551                                                 if defined $::RD_TRACE;
29552                 push @item, $_tok;
29553                 $item{__ACTION1__}=$_tok;
29554                 
29555
29556
29557                 Parse::RecDescent::_trace(q{>>Matched production: [/OLD/i /(AS)?/i correlation_name]<<},
29558                                           Parse::RecDescent::_tracefirst($text),
29559                                           q{old_new_corr},
29560                                           $tracelevel)
29561                                                 if defined $::RD_TRACE;
29562                 $_matched = 1;
29563                 last;
29564         }
29565
29566
29567         while (!$_matched && !$commit)
29568         {
29569                 
29570                 Parse::RecDescent::_trace(q{Trying production: [/NEW/i /(AS)?/i correlation_name]},
29571                                           Parse::RecDescent::_tracefirst($_[1]),
29572                                           q{old_new_corr},
29573                                           $tracelevel)
29574                                                 if defined $::RD_TRACE;
29575                 my $thisprod = $thisrule->{"prods"}[1];
29576                 $text = $_[1];
29577                 my $_savetext;
29578                 @item = (q{old_new_corr});
29579                 %item = (__RULE__ => q{old_new_corr});
29580                 my $repcount = 0;
29581
29582
29583                 Parse::RecDescent::_trace(q{Trying terminal: [/NEW/i]}, Parse::RecDescent::_tracefirst($text),
29584                                           q{old_new_corr},
29585                                           $tracelevel)
29586                                                 if defined $::RD_TRACE;
29587                 $lastsep = "";
29588                 $expectation->is(q{})->at($text);
29589                 
29590
29591                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NEW)//i)
29592                 {
29593                         
29594                         $expectation->failed();
29595                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29596                                                   Parse::RecDescent::_tracefirst($text))
29597                                         if defined $::RD_TRACE;
29598
29599                         last;
29600                 }
29601                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29602                                                 . $& . q{])},
29603                                                   Parse::RecDescent::_tracefirst($text))
29604                                         if defined $::RD_TRACE;
29605                 push @item, $item{__PATTERN1__}=$&;
29606                 
29607
29608                 Parse::RecDescent::_trace(q{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
29609                                           q{old_new_corr},
29610                                           $tracelevel)
29611                                                 if defined $::RD_TRACE;
29612                 $lastsep = "";
29613                 $expectation->is(q{/(AS)?/i})->at($text);
29614                 
29615
29616                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(AS)?)//i)
29617                 {
29618                         
29619                         $expectation->failed();
29620                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29621                                                   Parse::RecDescent::_tracefirst($text))
29622                                         if defined $::RD_TRACE;
29623
29624                         last;
29625                 }
29626                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29627                                                 . $& . q{])},
29628                                                   Parse::RecDescent::_tracefirst($text))
29629                                         if defined $::RD_TRACE;
29630                 push @item, $item{__PATTERN2__}=$&;
29631                 
29632
29633                 Parse::RecDescent::_trace(q{Trying subrule: [correlation_name]},
29634                                   Parse::RecDescent::_tracefirst($text),
29635                                   q{old_new_corr},
29636                                   $tracelevel)
29637                                         if defined $::RD_TRACE;
29638                 if (1) { no strict qw{refs};
29639                 $expectation->is(q{correlation_name})->at($text);
29640                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
29641                 {
29642                         
29643                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [correlation_name]>>},
29644                                                   Parse::RecDescent::_tracefirst($text),
29645                                                   q{old_new_corr},
29646                                                   $tracelevel)
29647                                                         if defined $::RD_TRACE;
29648                         $expectation->failed();
29649                         last;
29650                 }
29651                 Parse::RecDescent::_trace(q{>>Matched subrule: [correlation_name]<< (return value: [}
29652                                         . $_tok . q{]},
29653                                           
29654                                           Parse::RecDescent::_tracefirst($text),
29655                                           q{old_new_corr},
29656                                           $tracelevel)
29657                                                 if defined $::RD_TRACE;
29658                 $item{q{correlation_name}} = $_tok;
29659                 push @item, $_tok;
29660                 
29661                 }
29662
29663                 Parse::RecDescent::_trace(q{Trying action},
29664                                           Parse::RecDescent::_tracefirst($text),
29665                                           q{old_new_corr},
29666                                           $tracelevel)
29667                                                 if defined $::RD_TRACE;
29668                 
29669
29670                 $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
29671                 unless (defined $_tok)
29672                 {
29673                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
29674                                         if defined $::RD_TRACE;
29675                         last;
29676                 }
29677                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
29678                                           . $_tok . q{])},
29679                                           Parse::RecDescent::_tracefirst($text))
29680                                                 if defined $::RD_TRACE;
29681                 push @item, $_tok;
29682                 $item{__ACTION1__}=$_tok;
29683                 
29684
29685
29686                 Parse::RecDescent::_trace(q{>>Matched production: [/NEW/i /(AS)?/i correlation_name]<<},
29687                                           Parse::RecDescent::_tracefirst($text),
29688                                           q{old_new_corr},
29689                                           $tracelevel)
29690                                                 if defined $::RD_TRACE;
29691                 $_matched = 1;
29692                 last;
29693         }
29694
29695
29696         unless ( $_matched || defined($return) || defined($score) )
29697         {
29698                 
29699
29700                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
29701                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
29702                                          Parse::RecDescent::_tracefirst($_[1]),
29703                                          q{old_new_corr},
29704                                          $tracelevel)
29705                                         if defined $::RD_TRACE;
29706                 return undef;
29707         }
29708         if (!defined($return) && defined($score))
29709         {
29710                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29711                                           q{old_new_corr},
29712                                           $tracelevel)
29713                                                 if defined $::RD_TRACE;
29714                 $return = $score_return;
29715         }
29716         splice @{$thisparser->{errors}}, $err_at;
29717         $return = $item[$#item] unless defined $return;
29718         if (defined $::RD_TRACE)
29719         {
29720                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29721                                           $return . q{])}, "",
29722                                           q{old_new_corr},
29723                                           $tracelevel);
29724                 Parse::RecDescent::_trace(q{(consumed: [} .
29725                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
29726                                           Parse::RecDescent::_tracefirst($text),
29727                                           , q{old_new_corr},
29728                                           $tracelevel)
29729         }
29730         $_[1] = $text;
29731         return $return;
29732 }
29733
29734 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29735 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_42_of_rule_sysibm_function
29736 {
29737         my $thisparser = $_[0];
29738         use vars q{$tracelevel};
29739         local $tracelevel = ($tracelevel||0)+1;
29740         $ERRORS = 0;
29741         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_42_of_rule_sysibm_function"};
29742         
29743         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_42_of_rule_sysibm_function]},
29744                                   Parse::RecDescent::_tracefirst($_[1]),
29745                                   q{_alternation_1_of_production_42_of_rule_sysibm_function},
29746                                   $tracelevel)
29747                                         if defined $::RD_TRACE;
29748
29749         
29750         my $err_at = @{$thisparser->{errors}};
29751
29752         my $score;
29753         my $score_return;
29754         my $_tok;
29755         my $return = undef;
29756         my $_matched=0;
29757         my $commit=0;
29758         my @item = ();
29759         my %item = ();
29760         my $repeating =  defined($_[2]) && $_[2];
29761         my $_noactions = defined($_[3]) && $_[3];
29762         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
29763         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
29764         my $text;
29765         my $lastsep="";
29766         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29767         $expectation->at($_[1]);
29768         
29769         my $thisline;
29770         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29771
29772         
29773
29774         while (!$_matched && !$commit)
29775         {
29776                 
29777                 Parse::RecDescent::_trace(q{Trying production: [/LCASE/i]},
29778                                           Parse::RecDescent::_tracefirst($_[1]),
29779                                           q{_alternation_1_of_production_42_of_rule_sysibm_function},
29780                                           $tracelevel)
29781                                                 if defined $::RD_TRACE;
29782                 my $thisprod = $thisrule->{"prods"}[0];
29783                 $text = $_[1];
29784                 my $_savetext;
29785                 @item = (q{_alternation_1_of_production_42_of_rule_sysibm_function});
29786                 %item = (__RULE__ => q{_alternation_1_of_production_42_of_rule_sysibm_function});
29787                 my $repcount = 0;
29788
29789
29790                 Parse::RecDescent::_trace(q{Trying terminal: [/LCASE/i]}, Parse::RecDescent::_tracefirst($text),
29791                                           q{_alternation_1_of_production_42_of_rule_sysibm_function},
29792                                           $tracelevel)
29793                                                 if defined $::RD_TRACE;
29794                 $lastsep = "";
29795                 $expectation->is(q{})->at($text);
29796                 
29797
29798                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LCASE)//i)
29799                 {
29800                         
29801                         $expectation->failed();
29802                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29803                                                   Parse::RecDescent::_tracefirst($text))
29804                                         if defined $::RD_TRACE;
29805
29806                         last;
29807                 }
29808                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29809                                                 . $& . q{])},
29810                                                   Parse::RecDescent::_tracefirst($text))
29811                                         if defined $::RD_TRACE;
29812                 push @item, $item{__PATTERN1__}=$&;
29813                 
29814
29815
29816                 Parse::RecDescent::_trace(q{>>Matched production: [/LCASE/i]<<},
29817                                           Parse::RecDescent::_tracefirst($text),
29818                                           q{_alternation_1_of_production_42_of_rule_sysibm_function},
29819                                           $tracelevel)
29820                                                 if defined $::RD_TRACE;
29821                 $_matched = 1;
29822                 last;
29823         }
29824
29825
29826         while (!$_matched && !$commit)
29827         {
29828                 
29829                 Parse::RecDescent::_trace(q{Trying production: [/LOWER/]},
29830                                           Parse::RecDescent::_tracefirst($_[1]),
29831                                           q{_alternation_1_of_production_42_of_rule_sysibm_function},
29832                                           $tracelevel)
29833                                                 if defined $::RD_TRACE;
29834                 my $thisprod = $thisrule->{"prods"}[1];
29835                 $text = $_[1];
29836                 my $_savetext;
29837                 @item = (q{_alternation_1_of_production_42_of_rule_sysibm_function});
29838                 %item = (__RULE__ => q{_alternation_1_of_production_42_of_rule_sysibm_function});
29839                 my $repcount = 0;
29840
29841
29842                 Parse::RecDescent::_trace(q{Trying terminal: [/LOWER/]}, Parse::RecDescent::_tracefirst($text),
29843                                           q{_alternation_1_of_production_42_of_rule_sysibm_function},
29844                                           $tracelevel)
29845                                                 if defined $::RD_TRACE;
29846                 $lastsep = "";
29847                 $expectation->is(q{})->at($text);
29848                 
29849
29850                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOWER)//)
29851                 {
29852                         
29853                         $expectation->failed();
29854                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29855                                                   Parse::RecDescent::_tracefirst($text))
29856                                         if defined $::RD_TRACE;
29857
29858                         last;
29859                 }
29860                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29861                                                 . $& . q{])},
29862                                                   Parse::RecDescent::_tracefirst($text))
29863                                         if defined $::RD_TRACE;
29864                 push @item, $item{__PATTERN1__}=$&;
29865                 
29866
29867
29868                 Parse::RecDescent::_trace(q{>>Matched production: [/LOWER/]<<},
29869                                           Parse::RecDescent::_tracefirst($text),
29870                                           q{_alternation_1_of_production_42_of_rule_sysibm_function},
29871                                           $tracelevel)
29872                                                 if defined $::RD_TRACE;
29873                 $_matched = 1;
29874                 last;
29875         }
29876
29877
29878         unless ( $_matched || defined($return) || defined($score) )
29879         {
29880                 
29881
29882                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
29883                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
29884                                          Parse::RecDescent::_tracefirst($_[1]),
29885                                          q{_alternation_1_of_production_42_of_rule_sysibm_function},
29886                                          $tracelevel)
29887                                         if defined $::RD_TRACE;
29888                 return undef;
29889         }
29890         if (!defined($return) && defined($score))
29891         {
29892                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29893                                           q{_alternation_1_of_production_42_of_rule_sysibm_function},
29894                                           $tracelevel)
29895                                                 if defined $::RD_TRACE;
29896                 $return = $score_return;
29897         }
29898         splice @{$thisparser->{errors}}, $err_at;
29899         $return = $item[$#item] unless defined $return;
29900         if (defined $::RD_TRACE)
29901         {
29902                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29903                                           $return . q{])}, "",
29904                                           q{_alternation_1_of_production_42_of_rule_sysibm_function},
29905                                           $tracelevel);
29906                 Parse::RecDescent::_trace(q{(consumed: [} .
29907                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
29908                                           Parse::RecDescent::_tracefirst($text),
29909                                           , q{_alternation_1_of_production_42_of_rule_sysibm_function},
29910                                           $tracelevel)
29911         }
29912         $_[1] = $text;
29913         return $return;
29914 }
29915
29916 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29917 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subtype_treatment
29918 {
29919         my $thisparser = $_[0];
29920         use vars q{$tracelevel};
29921         local $tracelevel = ($tracelevel||0)+1;
29922         $ERRORS = 0;
29923         my $thisrule = $thisparser->{"rules"}{"subtype_treatment"};
29924         
29925         Parse::RecDescent::_trace(q{Trying rule: [subtype_treatment]},
29926                                   Parse::RecDescent::_tracefirst($_[1]),
29927                                   q{subtype_treatment},
29928                                   $tracelevel)
29929                                         if defined $::RD_TRACE;
29930
29931         
29932         my $err_at = @{$thisparser->{errors}};
29933
29934         my $score;
29935         my $score_return;
29936         my $_tok;
29937         my $return = undef;
29938         my $_matched=0;
29939         my $commit=0;
29940         my @item = ();
29941         my %item = ();
29942         my $repeating =  defined($_[2]) && $_[2];
29943         my $_noactions = defined($_[3]) && $_[3];
29944         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
29945         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
29946         my $text;
29947         my $lastsep="";
29948         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29949         $expectation->at($_[1]);
29950         
29951         my $thisline;
29952         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29953
29954         
29955
29956         while (!$_matched && !$commit)
29957         {
29958                 
29959                 Parse::RecDescent::_trace(q{Trying production: [/TREAT/i '(' expression /AS/i data_type ')']},
29960                                           Parse::RecDescent::_tracefirst($_[1]),
29961                                           q{subtype_treatment},
29962                                           $tracelevel)
29963                                                 if defined $::RD_TRACE;
29964                 my $thisprod = $thisrule->{"prods"}[0];
29965                 $text = $_[1];
29966                 my $_savetext;
29967                 @item = (q{subtype_treatment});
29968                 %item = (__RULE__ => q{subtype_treatment});
29969                 my $repcount = 0;
29970
29971
29972                 Parse::RecDescent::_trace(q{Trying terminal: [/TREAT/i]}, Parse::RecDescent::_tracefirst($text),
29973                                           q{subtype_treatment},
29974                                           $tracelevel)
29975                                                 if defined $::RD_TRACE;
29976                 $lastsep = "";
29977                 $expectation->is(q{})->at($text);
29978                 
29979
29980                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TREAT)//i)
29981                 {
29982                         
29983                         $expectation->failed();
29984                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29985                                                   Parse::RecDescent::_tracefirst($text))
29986                                         if defined $::RD_TRACE;
29987
29988                         last;
29989                 }
29990                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29991                                                 . $& . q{])},
29992                                                   Parse::RecDescent::_tracefirst($text))
29993                                         if defined $::RD_TRACE;
29994                 push @item, $item{__PATTERN1__}=$&;
29995                 
29996
29997                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
29998                                           Parse::RecDescent::_tracefirst($text),
29999                                           q{subtype_treatment},
30000                                           $tracelevel)
30001                                                 if defined $::RD_TRACE;
30002                 $lastsep = "";
30003                 $expectation->is(q{'('})->at($text);
30004                 
30005
30006                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
30007                 {
30008                         
30009                         $expectation->failed();
30010                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
30011                                                   Parse::RecDescent::_tracefirst($text))
30012                                                         if defined $::RD_TRACE;
30013                         last;
30014                 }
30015                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30016                                                 . $& . q{])},
30017                                                   Parse::RecDescent::_tracefirst($text))
30018                                                         if defined $::RD_TRACE;
30019                 push @item, $item{__STRING1__}=$&;
30020                 
30021
30022                 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
30023                                   Parse::RecDescent::_tracefirst($text),
30024                                   q{subtype_treatment},
30025                                   $tracelevel)
30026                                         if defined $::RD_TRACE;
30027                 if (1) { no strict qw{refs};
30028                 $expectation->is(q{expression})->at($text);
30029                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30030                 {
30031                         
30032                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
30033                                                   Parse::RecDescent::_tracefirst($text),
30034                                                   q{subtype_treatment},
30035                                                   $tracelevel)
30036                                                         if defined $::RD_TRACE;
30037                         $expectation->failed();
30038                         last;
30039                 }
30040                 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
30041                                         . $_tok . q{]},
30042                                           
30043                                           Parse::RecDescent::_tracefirst($text),
30044                                           q{subtype_treatment},
30045                                           $tracelevel)
30046                                                 if defined $::RD_TRACE;
30047                 $item{q{expression}} = $_tok;
30048                 push @item, $_tok;
30049                 
30050                 }
30051
30052                 Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
30053                                           q{subtype_treatment},
30054                                           $tracelevel)
30055                                                 if defined $::RD_TRACE;
30056                 $lastsep = "";
30057                 $expectation->is(q{/AS/i})->at($text);
30058                 
30059
30060                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AS)//i)
30061                 {
30062                         
30063                         $expectation->failed();
30064                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
30065                                                   Parse::RecDescent::_tracefirst($text))
30066                                         if defined $::RD_TRACE;
30067
30068                         last;
30069                 }
30070                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30071                                                 . $& . q{])},
30072                                                   Parse::RecDescent::_tracefirst($text))
30073                                         if defined $::RD_TRACE;
30074                 push @item, $item{__PATTERN2__}=$&;
30075                 
30076
30077                 Parse::RecDescent::_trace(q{Trying subrule: [data_type]},
30078                                   Parse::RecDescent::_tracefirst($text),
30079                                   q{subtype_treatment},
30080                                   $tracelevel)
30081                                         if defined $::RD_TRACE;
30082                 if (1) { no strict qw{refs};
30083                 $expectation->is(q{data_type})->at($text);
30084                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::data_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30085                 {
30086                         
30087                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [data_type]>>},
30088                                                   Parse::RecDescent::_tracefirst($text),
30089                                                   q{subtype_treatment},
30090                                                   $tracelevel)
30091                                                         if defined $::RD_TRACE;
30092                         $expectation->failed();
30093                         last;
30094                 }
30095                 Parse::RecDescent::_trace(q{>>Matched subrule: [data_type]<< (return value: [}
30096                                         . $_tok . q{]},
30097                                           
30098                                           Parse::RecDescent::_tracefirst($text),
30099                                           q{subtype_treatment},
30100                                           $tracelevel)
30101                                                 if defined $::RD_TRACE;
30102                 $item{q{data_type}} = $_tok;
30103                 push @item, $_tok;
30104                 
30105                 }
30106
30107                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
30108                                           Parse::RecDescent::_tracefirst($text),
30109                                           q{subtype_treatment},
30110                                           $tracelevel)
30111                                                 if defined $::RD_TRACE;
30112                 $lastsep = "";
30113                 $expectation->is(q{')'})->at($text);
30114                 
30115
30116                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
30117                 {
30118                         
30119                         $expectation->failed();
30120                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
30121                                                   Parse::RecDescent::_tracefirst($text))
30122                                                         if defined $::RD_TRACE;
30123                         last;
30124                 }
30125                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30126                                                 . $& . q{])},
30127                                                   Parse::RecDescent::_tracefirst($text))
30128                                                         if defined $::RD_TRACE;
30129                 push @item, $item{__STRING2__}=$&;
30130                 
30131
30132
30133                 Parse::RecDescent::_trace(q{>>Matched production: [/TREAT/i '(' expression /AS/i data_type ')']<<},
30134                                           Parse::RecDescent::_tracefirst($text),
30135                                           q{subtype_treatment},
30136                                           $tracelevel)
30137                                                 if defined $::RD_TRACE;
30138                 $_matched = 1;
30139                 last;
30140         }
30141
30142
30143         unless ( $_matched || defined($return) || defined($score) )
30144         {
30145                 
30146
30147                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
30148                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
30149                                          Parse::RecDescent::_tracefirst($_[1]),
30150                                          q{subtype_treatment},
30151                                          $tracelevel)
30152                                         if defined $::RD_TRACE;
30153                 return undef;
30154         }
30155         if (!defined($return) && defined($score))
30156         {
30157                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
30158                                           q{subtype_treatment},
30159                                           $tracelevel)
30160                                                 if defined $::RD_TRACE;
30161                 $return = $score_return;
30162         }
30163         splice @{$thisparser->{errors}}, $err_at;
30164         $return = $item[$#item] unless defined $return;
30165         if (defined $::RD_TRACE)
30166         {
30167                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
30168                                           $return . q{])}, "",
30169                                           q{subtype_treatment},
30170                                           $tracelevel);
30171                 Parse::RecDescent::_trace(q{(consumed: [} .
30172                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
30173                                           Parse::RecDescent::_tracefirst($text),
30174                                           , q{subtype_treatment},
30175                                           $tracelevel)
30176         }
30177         $_[1] = $text;
30178         return $return;
30179 }
30180
30181 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
30182 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression
30183 {
30184         my $thisparser = $_[0];
30185         use vars q{$tracelevel};
30186         local $tracelevel = ($tracelevel||0)+1;
30187         $ERRORS = 0;
30188         my $thisrule = $thisparser->{"rules"}{"expression"};
30189         
30190         Parse::RecDescent::_trace(q{Trying rule: [expression]},
30191                                   Parse::RecDescent::_tracefirst($_[1]),
30192                                   q{expression},
30193                                   $tracelevel)
30194                                         if defined $::RD_TRACE;
30195
30196         
30197         my $err_at = @{$thisparser->{errors}};
30198
30199         my $score;
30200         my $score_return;
30201         my $_tok;
30202         my $return = undef;
30203         my $_matched=0;
30204         my $commit=0;
30205         my @item = ();
30206         my %item = ();
30207         my $repeating =  defined($_[2]) && $_[2];
30208         my $_noactions = defined($_[3]) && $_[3];
30209         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
30210         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
30211         my $text;
30212         my $lastsep="";
30213         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
30214         $expectation->at($_[1]);
30215         
30216         my $thisline;
30217         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
30218
30219         
30220
30221         while (!$_matched && !$commit)
30222         {
30223                 
30224                 Parse::RecDescent::_trace(q{Trying production: [<leftop: '+', or '-' /operator/ '+', or '-'>]},
30225                                           Parse::RecDescent::_tracefirst($_[1]),
30226                                           q{expression},
30227                                           $tracelevel)
30228                                                 if defined $::RD_TRACE;
30229                 my $thisprod = $thisrule->{"prods"}[0];
30230                 $text = $_[1];
30231                 my $_savetext;
30232                 @item = (q{expression});
30233                 %item = (__RULE__ => q{expression});
30234                 my $repcount = 0;
30235
30236
30237                 Parse::RecDescent::_trace(q{Trying operator: [<leftop: '+', or '-' /operator/ '+', or '-'>]},
30238                                   Parse::RecDescent::_tracefirst($text),
30239                                   q{expression},
30240                                   $tracelevel)
30241                                         if defined $::RD_TRACE;
30242                 $expectation->is(q{})->at($text);
30243
30244                 $_tok = undef;
30245                 OPLOOP: while (1)
30246                 {
30247                   $repcount = 0;
30248                   my  @item;
30249                   
30250                   # MATCH LEFTARG
30251                   
30252                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_expression]},
30253                                   Parse::RecDescent::_tracefirst($text),
30254                                   q{expression},
30255                                   $tracelevel)
30256                                         if defined $::RD_TRACE;
30257                 if (1) { no strict qw{refs};
30258                 $expectation->is(q{'+', or '-'})->at($text);
30259                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30260                 {
30261                         
30262                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_expression]>>},
30263                                                   Parse::RecDescent::_tracefirst($text),
30264                                                   q{expression},
30265                                                   $tracelevel)
30266                                                         if defined $::RD_TRACE;
30267                         $expectation->failed();
30268                         last;
30269                 }
30270                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_expression]<< (return value: [}
30271                                         . $_tok . q{]},
30272                                           
30273                                           Parse::RecDescent::_tracefirst($text),
30274                                           q{expression},
30275                                           $tracelevel)
30276                                                 if defined $::RD_TRACE;
30277                 $item{q{_alternation_1_of_production_1_of_rule_expression}} = $_tok;
30278                 push @item, $_tok;
30279                 
30280                 }
30281
30282
30283                   $repcount++;
30284
30285                   my $savetext = $text;
30286                   my $backtrack;
30287
30288                   # MATCH (OP RIGHTARG)(s)
30289                   while ($repcount < 100000000)
30290                   {
30291                         $backtrack = 0;
30292                         
30293                 Parse::RecDescent::_trace(q{Trying terminal: [/operator/]}, Parse::RecDescent::_tracefirst($text),
30294                                           q{expression},
30295                                           $tracelevel)
30296                                                 if defined $::RD_TRACE;
30297                 $lastsep = "";
30298                 $expectation->is(q{/operator/})->at($text);
30299                 
30300
30301                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:operator)//)
30302                 {
30303                         
30304                         $expectation->failed();
30305                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
30306                                                   Parse::RecDescent::_tracefirst($text))
30307                                         if defined $::RD_TRACE;
30308
30309                         last;
30310                 }
30311                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30312                                                 . $& . q{])},
30313                                                   Parse::RecDescent::_tracefirst($text))
30314                                         if defined $::RD_TRACE;
30315                 push @item, $item{__PATTERN1__}=$&;
30316                 
30317
30318                         pop @item;
30319                         if (defined $1) {push @item, $item{'_alternation_1_of_production_1_of_rule_expression(s)'}=$1; $backtrack=1;}
30320                         
30321                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_expression]},
30322                                   Parse::RecDescent::_tracefirst($text),
30323                                   q{expression},
30324                                   $tracelevel)
30325                                         if defined $::RD_TRACE;
30326                 if (1) { no strict qw{refs};
30327                 $expectation->is(q{'+', or '-'})->at($text);
30328                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30329                 {
30330                         
30331                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_expression]>>},
30332                                                   Parse::RecDescent::_tracefirst($text),
30333                                                   q{expression},
30334                                                   $tracelevel)
30335                                                         if defined $::RD_TRACE;
30336                         $expectation->failed();
30337                         last;
30338                 }
30339                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_expression]<< (return value: [}
30340                                         . $_tok . q{]},
30341                                           
30342                                           Parse::RecDescent::_tracefirst($text),
30343                                           q{expression},
30344                                           $tracelevel)
30345                                                 if defined $::RD_TRACE;
30346                 $item{q{_alternation_1_of_production_1_of_rule_expression}} = $_tok;
30347                 push @item, $_tok;
30348                 
30349                 }
30350
30351                         $savetext = $text;
30352                         $repcount++;
30353                   }
30354                   $text = $savetext;
30355                   pop @item if $backtrack;
30356
30357                   unless (@item) { undef $_tok; last }
30358                   $_tok = [ @item ];
30359                   last;
30360                 } 
30361
30362                 unless ($repcount>=1)
30363                 {
30364                         Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: '+', or '-' /operator/ '+', or '-'>]>>},
30365                                                   Parse::RecDescent::_tracefirst($text),
30366                                                   q{expression},
30367                                                   $tracelevel)
30368                                                         if defined $::RD_TRACE;
30369                         $expectation->failed();
30370                         last;
30371                 }
30372                 Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: '+', or '-' /operator/ '+', or '-'>]<< (return value: [}
30373                                           . qq{@{$_tok||[]}} . q{]},
30374                                           Parse::RecDescent::_tracefirst($text),
30375                                           q{expression},
30376                                           $tracelevel)
30377                                                 if defined $::RD_TRACE;
30378
30379                 push @item, $item{'_alternation_1_of_production_1_of_rule_expression(s)'}=$_tok||[];
30380
30381
30382
30383                 Parse::RecDescent::_trace(q{>>Matched production: [<leftop: '+', or '-' /operator/ '+', or '-'>]<<},
30384                                           Parse::RecDescent::_tracefirst($text),
30385                                           q{expression},
30386                                           $tracelevel)
30387                                                 if defined $::RD_TRACE;
30388                 $_matched = 1;
30389                 last;
30390         }
30391
30392
30393         unless ( $_matched || defined($return) || defined($score) )
30394         {
30395                 
30396
30397                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
30398                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
30399                                          Parse::RecDescent::_tracefirst($_[1]),
30400                                          q{expression},
30401                                          $tracelevel)
30402                                         if defined $::RD_TRACE;
30403                 return undef;
30404         }
30405         if (!defined($return) && defined($score))
30406         {
30407                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
30408                                           q{expression},
30409                                           $tracelevel)
30410                                                 if defined $::RD_TRACE;
30411                 $return = $score_return;
30412         }
30413         splice @{$thisparser->{errors}}, $err_at;
30414         $return = $item[$#item] unless defined $return;
30415         if (defined $::RD_TRACE)
30416         {
30417                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
30418                                           $return . q{])}, "",
30419                                           q{expression},
30420                                           $tracelevel);
30421                 Parse::RecDescent::_trace(q{(consumed: [} .
30422                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
30423                                           Parse::RecDescent::_tracefirst($text),
30424                                           , q{expression},
30425                                           $tracelevel)
30426         }
30427         $_[1] = $text;
30428         return $return;
30429 }
30430
30431 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
30432 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression
30433 {
30434         my $thisparser = $_[0];
30435         use vars q{$tracelevel};
30436         local $tracelevel = ($tracelevel||0)+1;
30437         $ERRORS = 0;
30438         my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression"};
30439         
30440         Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
30441                                   Parse::RecDescent::_tracefirst($_[1]),
30442                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30443                                   $tracelevel)
30444                                         if defined $::RD_TRACE;
30445
30446         
30447         my $err_at = @{$thisparser->{errors}};
30448
30449         my $score;
30450         my $score_return;
30451         my $_tok;
30452         my $return = undef;
30453         my $_matched=0;
30454         my $commit=0;
30455         my @item = ();
30456         my %item = ();
30457         my $repeating =  defined($_[2]) && $_[2];
30458         my $_noactions = defined($_[3]) && $_[3];
30459         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
30460         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
30461         my $text;
30462         my $lastsep="";
30463         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
30464         $expectation->at($_[1]);
30465         
30466         my $thisline;
30467         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
30468
30469         
30470
30471         while (!$_matched && !$commit)
30472         {
30473                 
30474                 Parse::RecDescent::_trace(q{Trying production: [function]},
30475                                           Parse::RecDescent::_tracefirst($_[1]),
30476                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30477                                           $tracelevel)
30478                                                 if defined $::RD_TRACE;
30479                 my $thisprod = $thisrule->{"prods"}[0];
30480                 $text = $_[1];
30481                 my $_savetext;
30482                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30483                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30484                 my $repcount = 0;
30485
30486
30487                 Parse::RecDescent::_trace(q{Trying subrule: [function]},
30488                                   Parse::RecDescent::_tracefirst($text),
30489                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30490                                   $tracelevel)
30491                                         if defined $::RD_TRACE;
30492                 if (1) { no strict qw{refs};
30493                 $expectation->is(q{})->at($text);
30494                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30495                 {
30496                         
30497                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [function]>>},
30498                                                   Parse::RecDescent::_tracefirst($text),
30499                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30500                                                   $tracelevel)
30501                                                         if defined $::RD_TRACE;
30502                         $expectation->failed();
30503                         last;
30504                 }
30505                 Parse::RecDescent::_trace(q{>>Matched subrule: [function]<< (return value: [}
30506                                         . $_tok . q{]},
30507                                           
30508                                           Parse::RecDescent::_tracefirst($text),
30509                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30510                                           $tracelevel)
30511                                                 if defined $::RD_TRACE;
30512                 $item{q{function}} = $_tok;
30513                 push @item, $_tok;
30514                 
30515                 }
30516
30517
30518                 Parse::RecDescent::_trace(q{>>Matched production: [function]<<},
30519                                           Parse::RecDescent::_tracefirst($text),
30520                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30521                                           $tracelevel)
30522                                                 if defined $::RD_TRACE;
30523                 $_matched = 1;
30524                 last;
30525         }
30526
30527
30528         while (!$_matched && !$commit)
30529         {
30530                 
30531                 Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
30532                                           Parse::RecDescent::_tracefirst($_[1]),
30533                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30534                                           $tracelevel)
30535                                                 if defined $::RD_TRACE;
30536                 my $thisprod = $thisrule->{"prods"}[1];
30537                 $text = $_[1];
30538                 my $_savetext;
30539                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30540                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30541                 my $repcount = 0;
30542
30543
30544                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
30545                                           Parse::RecDescent::_tracefirst($text),
30546                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30547                                           $tracelevel)
30548                                                 if defined $::RD_TRACE;
30549                 $lastsep = "";
30550                 $expectation->is(q{})->at($text);
30551                 
30552
30553                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
30554                 {
30555                         
30556                         $expectation->failed();
30557                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
30558                                                   Parse::RecDescent::_tracefirst($text))
30559                                                         if defined $::RD_TRACE;
30560                         last;
30561                 }
30562                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30563                                                 . $& . q{])},
30564                                                   Parse::RecDescent::_tracefirst($text))
30565                                                         if defined $::RD_TRACE;
30566                 push @item, $item{__STRING1__}=$&;
30567                 
30568
30569                 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
30570                                   Parse::RecDescent::_tracefirst($text),
30571                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30572                                   $tracelevel)
30573                                         if defined $::RD_TRACE;
30574                 if (1) { no strict qw{refs};
30575                 $expectation->is(q{expression})->at($text);
30576                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30577                 {
30578                         
30579                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
30580                                                   Parse::RecDescent::_tracefirst($text),
30581                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30582                                                   $tracelevel)
30583                                                         if defined $::RD_TRACE;
30584                         $expectation->failed();
30585                         last;
30586                 }
30587                 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
30588                                         . $_tok . q{]},
30589                                           
30590                                           Parse::RecDescent::_tracefirst($text),
30591                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30592                                           $tracelevel)
30593                                                 if defined $::RD_TRACE;
30594                 $item{q{expression}} = $_tok;
30595                 push @item, $_tok;
30596                 
30597                 }
30598
30599                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
30600                                           Parse::RecDescent::_tracefirst($text),
30601                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30602                                           $tracelevel)
30603                                                 if defined $::RD_TRACE;
30604                 $lastsep = "";
30605                 $expectation->is(q{')'})->at($text);
30606                 
30607
30608                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
30609                 {
30610                         
30611                         $expectation->failed();
30612                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
30613                                                   Parse::RecDescent::_tracefirst($text))
30614                                                         if defined $::RD_TRACE;
30615                         last;
30616                 }
30617                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30618                                                 . $& . q{])},
30619                                                   Parse::RecDescent::_tracefirst($text))
30620                                                         if defined $::RD_TRACE;
30621                 push @item, $item{__STRING2__}=$&;
30622                 
30623
30624
30625                 Parse::RecDescent::_trace(q{>>Matched production: ['(' expression ')']<<},
30626                                           Parse::RecDescent::_tracefirst($text),
30627                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30628                                           $tracelevel)
30629                                                 if defined $::RD_TRACE;
30630                 $_matched = 1;
30631                 last;
30632         }
30633
30634
30635         while (!$_matched && !$commit)
30636         {
30637                 
30638                 Parse::RecDescent::_trace(q{Trying production: [constant]},
30639                                           Parse::RecDescent::_tracefirst($_[1]),
30640                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30641                                           $tracelevel)
30642                                                 if defined $::RD_TRACE;
30643                 my $thisprod = $thisrule->{"prods"}[2];
30644                 $text = $_[1];
30645                 my $_savetext;
30646                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30647                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30648                 my $repcount = 0;
30649
30650
30651                 Parse::RecDescent::_trace(q{Trying subrule: [constant]},
30652                                   Parse::RecDescent::_tracefirst($text),
30653                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30654                                   $tracelevel)
30655                                         if defined $::RD_TRACE;
30656                 if (1) { no strict qw{refs};
30657                 $expectation->is(q{})->at($text);
30658                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30659                 {
30660                         
30661                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [constant]>>},
30662                                                   Parse::RecDescent::_tracefirst($text),
30663                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30664                                                   $tracelevel)
30665                                                         if defined $::RD_TRACE;
30666                         $expectation->failed();
30667                         last;
30668                 }
30669                 Parse::RecDescent::_trace(q{>>Matched subrule: [constant]<< (return value: [}
30670                                         . $_tok . q{]},
30671                                           
30672                                           Parse::RecDescent::_tracefirst($text),
30673                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30674                                           $tracelevel)
30675                                                 if defined $::RD_TRACE;
30676                 $item{q{constant}} = $_tok;
30677                 push @item, $_tok;
30678                 
30679                 }
30680
30681
30682                 Parse::RecDescent::_trace(q{>>Matched production: [constant]<<},
30683                                           Parse::RecDescent::_tracefirst($text),
30684                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30685                                           $tracelevel)
30686                                                 if defined $::RD_TRACE;
30687                 $_matched = 1;
30688                 last;
30689         }
30690
30691
30692         while (!$_matched && !$commit)
30693         {
30694                 
30695                 Parse::RecDescent::_trace(q{Trying production: [column_name]},
30696                                           Parse::RecDescent::_tracefirst($_[1]),
30697                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30698                                           $tracelevel)
30699                                                 if defined $::RD_TRACE;
30700                 my $thisprod = $thisrule->{"prods"}[3];
30701                 $text = $_[1];
30702                 my $_savetext;
30703                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30704                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30705                 my $repcount = 0;
30706
30707
30708                 Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
30709                                   Parse::RecDescent::_tracefirst($text),
30710                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30711                                   $tracelevel)
30712                                         if defined $::RD_TRACE;
30713                 if (1) { no strict qw{refs};
30714                 $expectation->is(q{})->at($text);
30715                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30716                 {
30717                         
30718                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
30719                                                   Parse::RecDescent::_tracefirst($text),
30720                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30721                                                   $tracelevel)
30722                                                         if defined $::RD_TRACE;
30723                         $expectation->failed();
30724                         last;
30725                 }
30726                 Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
30727                                         . $_tok . q{]},
30728                                           
30729                                           Parse::RecDescent::_tracefirst($text),
30730                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30731                                           $tracelevel)
30732                                                 if defined $::RD_TRACE;
30733                 $item{q{column_name}} = $_tok;
30734                 push @item, $_tok;
30735                 
30736                 }
30737
30738
30739                 Parse::RecDescent::_trace(q{>>Matched production: [column_name]<<},
30740                                           Parse::RecDescent::_tracefirst($text),
30741                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30742                                           $tracelevel)
30743                                                 if defined $::RD_TRACE;
30744                 $_matched = 1;
30745                 last;
30746         }
30747
30748
30749         while (!$_matched && !$commit)
30750         {
30751                 
30752                 Parse::RecDescent::_trace(q{Trying production: [host_variable]},
30753                                           Parse::RecDescent::_tracefirst($_[1]),
30754                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30755                                           $tracelevel)
30756                                                 if defined $::RD_TRACE;
30757                 my $thisprod = $thisrule->{"prods"}[4];
30758                 $text = $_[1];
30759                 my $_savetext;
30760                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30761                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30762                 my $repcount = 0;
30763
30764
30765                 Parse::RecDescent::_trace(q{Trying subrule: [host_variable]},
30766                                   Parse::RecDescent::_tracefirst($text),
30767                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30768                                   $tracelevel)
30769                                         if defined $::RD_TRACE;
30770                 if (1) { no strict qw{refs};
30771                 $expectation->is(q{})->at($text);
30772                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::host_variable($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30773                 {
30774                         
30775                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [host_variable]>>},
30776                                                   Parse::RecDescent::_tracefirst($text),
30777                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30778                                                   $tracelevel)
30779                                                         if defined $::RD_TRACE;
30780                         $expectation->failed();
30781                         last;
30782                 }
30783                 Parse::RecDescent::_trace(q{>>Matched subrule: [host_variable]<< (return value: [}
30784                                         . $_tok . q{]},
30785                                           
30786                                           Parse::RecDescent::_tracefirst($text),
30787                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30788                                           $tracelevel)
30789                                                 if defined $::RD_TRACE;
30790                 $item{q{host_variable}} = $_tok;
30791                 push @item, $_tok;
30792                 
30793                 }
30794
30795
30796                 Parse::RecDescent::_trace(q{>>Matched production: [host_variable]<<},
30797                                           Parse::RecDescent::_tracefirst($text),
30798                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30799                                           $tracelevel)
30800                                                 if defined $::RD_TRACE;
30801                 $_matched = 1;
30802                 last;
30803         }
30804
30805
30806         while (!$_matched && !$commit)
30807         {
30808                 
30809                 Parse::RecDescent::_trace(q{Trying production: [special_register]},
30810                                           Parse::RecDescent::_tracefirst($_[1]),
30811                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30812                                           $tracelevel)
30813                                                 if defined $::RD_TRACE;
30814                 my $thisprod = $thisrule->{"prods"}[5];
30815                 $text = $_[1];
30816                 my $_savetext;
30817                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30818                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30819                 my $repcount = 0;
30820
30821
30822                 Parse::RecDescent::_trace(q{Trying subrule: [special_register]},
30823                                   Parse::RecDescent::_tracefirst($text),
30824                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30825                                   $tracelevel)
30826                                         if defined $::RD_TRACE;
30827                 if (1) { no strict qw{refs};
30828                 $expectation->is(q{})->at($text);
30829                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::special_register($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30830                 {
30831                         
30832                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [special_register]>>},
30833                                                   Parse::RecDescent::_tracefirst($text),
30834                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30835                                                   $tracelevel)
30836                                                         if defined $::RD_TRACE;
30837                         $expectation->failed();
30838                         last;
30839                 }
30840                 Parse::RecDescent::_trace(q{>>Matched subrule: [special_register]<< (return value: [}
30841                                         . $_tok . q{]},
30842                                           
30843                                           Parse::RecDescent::_tracefirst($text),
30844                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30845                                           $tracelevel)
30846                                                 if defined $::RD_TRACE;
30847                 $item{q{special_register}} = $_tok;
30848                 push @item, $_tok;
30849                 
30850                 }
30851
30852
30853                 Parse::RecDescent::_trace(q{>>Matched production: [special_register]<<},
30854                                           Parse::RecDescent::_tracefirst($text),
30855                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30856                                           $tracelevel)
30857                                                 if defined $::RD_TRACE;
30858                 $_matched = 1;
30859                 last;
30860         }
30861
30862
30863         while (!$_matched && !$commit)
30864         {
30865                 
30866                 Parse::RecDescent::_trace(q{Trying production: ['(' scalar_fullselect ')']},
30867                                           Parse::RecDescent::_tracefirst($_[1]),
30868                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30869                                           $tracelevel)
30870                                                 if defined $::RD_TRACE;
30871                 my $thisprod = $thisrule->{"prods"}[6];
30872                 $text = $_[1];
30873                 my $_savetext;
30874                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30875                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30876                 my $repcount = 0;
30877
30878
30879                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
30880                                           Parse::RecDescent::_tracefirst($text),
30881                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30882                                           $tracelevel)
30883                                                 if defined $::RD_TRACE;
30884                 $lastsep = "";
30885                 $expectation->is(q{})->at($text);
30886                 
30887
30888                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
30889                 {
30890                         
30891                         $expectation->failed();
30892                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
30893                                                   Parse::RecDescent::_tracefirst($text))
30894                                                         if defined $::RD_TRACE;
30895                         last;
30896                 }
30897                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30898                                                 . $& . q{])},
30899                                                   Parse::RecDescent::_tracefirst($text))
30900                                                         if defined $::RD_TRACE;
30901                 push @item, $item{__STRING1__}=$&;
30902                 
30903
30904                 Parse::RecDescent::_trace(q{Trying subrule: [scalar_fullselect]},
30905                                   Parse::RecDescent::_tracefirst($text),
30906                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30907                                   $tracelevel)
30908                                         if defined $::RD_TRACE;
30909                 if (1) { no strict qw{refs};
30910                 $expectation->is(q{scalar_fullselect})->at($text);
30911                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scalar_fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30912                 {
30913                         
30914                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [scalar_fullselect]>>},
30915                                                   Parse::RecDescent::_tracefirst($text),
30916                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30917                                                   $tracelevel)
30918                                                         if defined $::RD_TRACE;
30919                         $expectation->failed();
30920                         last;
30921                 }
30922                 Parse::RecDescent::_trace(q{>>Matched subrule: [scalar_fullselect]<< (return value: [}
30923                                         . $_tok . q{]},
30924                                           
30925                                           Parse::RecDescent::_tracefirst($text),
30926                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30927                                           $tracelevel)
30928                                                 if defined $::RD_TRACE;
30929                 $item{q{scalar_fullselect}} = $_tok;
30930                 push @item, $_tok;
30931                 
30932                 }
30933
30934                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
30935                                           Parse::RecDescent::_tracefirst($text),
30936                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30937                                           $tracelevel)
30938                                                 if defined $::RD_TRACE;
30939                 $lastsep = "";
30940                 $expectation->is(q{')'})->at($text);
30941                 
30942
30943                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
30944                 {
30945                         
30946                         $expectation->failed();
30947                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
30948                                                   Parse::RecDescent::_tracefirst($text))
30949                                                         if defined $::RD_TRACE;
30950                         last;
30951                 }
30952                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30953                                                 . $& . q{])},
30954                                                   Parse::RecDescent::_tracefirst($text))
30955                                                         if defined $::RD_TRACE;
30956                 push @item, $item{__STRING2__}=$&;
30957                 
30958
30959
30960                 Parse::RecDescent::_trace(q{>>Matched production: ['(' scalar_fullselect ')']<<},
30961                                           Parse::RecDescent::_tracefirst($text),
30962                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30963                                           $tracelevel)
30964                                                 if defined $::RD_TRACE;
30965                 $_matched = 1;
30966                 last;
30967         }
30968
30969
30970         while (!$_matched && !$commit)
30971         {
30972                 
30973                 Parse::RecDescent::_trace(q{Trying production: [labeled_duration]},
30974                                           Parse::RecDescent::_tracefirst($_[1]),
30975                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30976                                           $tracelevel)
30977                                                 if defined $::RD_TRACE;
30978                 my $thisprod = $thisrule->{"prods"}[7];
30979                 $text = $_[1];
30980                 my $_savetext;
30981                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30982                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30983                 my $repcount = 0;
30984
30985
30986                 Parse::RecDescent::_trace(q{Trying subrule: [labeled_duration]},
30987                                   Parse::RecDescent::_tracefirst($text),
30988                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30989                                   $tracelevel)
30990                                         if defined $::RD_TRACE;
30991                 if (1) { no strict qw{refs};
30992                 $expectation->is(q{})->at($text);
30993                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::labeled_duration($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30994                 {
30995                         
30996                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [labeled_duration]>>},
30997                                                   Parse::RecDescent::_tracefirst($text),
30998                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30999                                                   $tracelevel)
31000                                                         if defined $::RD_TRACE;
31001                         $expectation->failed();
31002                         last;
31003                 }
31004                 Parse::RecDescent::_trace(q{>>Matched subrule: [labeled_duration]<< (return value: [}
31005                                         . $_tok . q{]},
31006                                           
31007                                           Parse::RecDescent::_tracefirst($text),
31008                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31009                                           $tracelevel)
31010                                                 if defined $::RD_TRACE;
31011                 $item{q{labeled_duration}} = $_tok;
31012                 push @item, $_tok;
31013                 
31014                 }
31015
31016
31017                 Parse::RecDescent::_trace(q{>>Matched production: [labeled_duration]<<},
31018                                           Parse::RecDescent::_tracefirst($text),
31019                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31020                                           $tracelevel)
31021                                                 if defined $::RD_TRACE;
31022                 $_matched = 1;
31023                 last;
31024         }
31025
31026
31027         while (!$_matched && !$commit)
31028         {
31029                 
31030                 Parse::RecDescent::_trace(q{Trying production: [case_expression]},
31031                                           Parse::RecDescent::_tracefirst($_[1]),
31032                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31033                                           $tracelevel)
31034                                                 if defined $::RD_TRACE;
31035                 my $thisprod = $thisrule->{"prods"}[8];
31036                 $text = $_[1];
31037                 my $_savetext;
31038                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31039                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31040                 my $repcount = 0;
31041
31042
31043                 Parse::RecDescent::_trace(q{Trying subrule: [case_expression]},
31044                                   Parse::RecDescent::_tracefirst($text),
31045                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31046                                   $tracelevel)
31047                                         if defined $::RD_TRACE;
31048                 if (1) { no strict qw{refs};
31049                 $expectation->is(q{})->at($text);
31050                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::case_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31051                 {
31052                         
31053                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [case_expression]>>},
31054                                                   Parse::RecDescent::_tracefirst($text),
31055                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31056                                                   $tracelevel)
31057                                                         if defined $::RD_TRACE;
31058                         $expectation->failed();
31059                         last;
31060                 }
31061                 Parse::RecDescent::_trace(q{>>Matched subrule: [case_expression]<< (return value: [}
31062                                         . $_tok . q{]},
31063                                           
31064                                           Parse::RecDescent::_tracefirst($text),
31065                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31066                                           $tracelevel)
31067                                                 if defined $::RD_TRACE;
31068                 $item{q{case_expression}} = $_tok;
31069                 push @item, $_tok;
31070                 
31071                 }
31072
31073
31074                 Parse::RecDescent::_trace(q{>>Matched production: [case_expression]<<},
31075                                           Parse::RecDescent::_tracefirst($text),
31076                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31077                                           $tracelevel)
31078                                                 if defined $::RD_TRACE;
31079                 $_matched = 1;
31080                 last;
31081         }
31082
31083
31084         while (!$_matched && !$commit)
31085         {
31086                 
31087                 Parse::RecDescent::_trace(q{Trying production: [cast_specification]},
31088                                           Parse::RecDescent::_tracefirst($_[1]),
31089                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31090                                           $tracelevel)
31091                                                 if defined $::RD_TRACE;
31092                 my $thisprod = $thisrule->{"prods"}[9];
31093                 $text = $_[1];
31094                 my $_savetext;
31095                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31096                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31097                 my $repcount = 0;
31098
31099
31100                 Parse::RecDescent::_trace(q{Trying subrule: [cast_specification]},
31101                                   Parse::RecDescent::_tracefirst($text),
31102                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31103                                   $tracelevel)
31104                                         if defined $::RD_TRACE;
31105                 if (1) { no strict qw{refs};
31106                 $expectation->is(q{})->at($text);
31107                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cast_specification($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31108                 {
31109                         
31110                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [cast_specification]>>},
31111                                                   Parse::RecDescent::_tracefirst($text),
31112                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31113                                                   $tracelevel)
31114                                                         if defined $::RD_TRACE;
31115                         $expectation->failed();
31116                         last;
31117                 }
31118                 Parse::RecDescent::_trace(q{>>Matched subrule: [cast_specification]<< (return value: [}
31119                                         . $_tok . q{]},
31120                                           
31121                                           Parse::RecDescent::_tracefirst($text),
31122                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31123                                           $tracelevel)
31124                                                 if defined $::RD_TRACE;
31125                 $item{q{cast_specification}} = $_tok;
31126                 push @item, $_tok;
31127                 
31128                 }
31129
31130
31131                 Parse::RecDescent::_trace(q{>>Matched production: [cast_specification]<<},
31132                                           Parse::RecDescent::_tracefirst($text),
31133                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31134                                           $tracelevel)
31135                                                 if defined $::RD_TRACE;
31136                 $_matched = 1;
31137                 last;
31138         }
31139
31140
31141         while (!$_matched && !$commit)
31142         {
31143                 
31144                 Parse::RecDescent::_trace(q{Trying production: [OLAP_function]},
31145                                           Parse::RecDescent::_tracefirst($_[1]),
31146                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31147                                           $tracelevel)
31148                                                 if defined $::RD_TRACE;
31149                 my $thisprod = $thisrule->{"prods"}[10];
31150                 $text = $_[1];
31151                 my $_savetext;
31152                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31153                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31154                 my $repcount = 0;
31155
31156
31157                 Parse::RecDescent::_trace(q{Trying subrule: [OLAP_function]},
31158                                   Parse::RecDescent::_tracefirst($text),
31159                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31160                                   $tracelevel)
31161                                         if defined $::RD_TRACE;
31162                 if (1) { no strict qw{refs};
31163                 $expectation->is(q{})->at($text);
31164                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OLAP_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31165                 {
31166                         
31167                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [OLAP_function]>>},
31168                                                   Parse::RecDescent::_tracefirst($text),
31169                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31170                                                   $tracelevel)
31171                                                         if defined $::RD_TRACE;
31172                         $expectation->failed();
31173                         last;
31174                 }
31175                 Parse::RecDescent::_trace(q{>>Matched subrule: [OLAP_function]<< (return value: [}
31176                                         . $_tok . q{]},
31177                                           
31178                                           Parse::RecDescent::_tracefirst($text),
31179                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31180                                           $tracelevel)
31181                                                 if defined $::RD_TRACE;
31182                 $item{q{OLAP_function}} = $_tok;
31183                 push @item, $_tok;
31184                 
31185                 }
31186
31187
31188                 Parse::RecDescent::_trace(q{>>Matched production: [OLAP_function]<<},
31189                                           Parse::RecDescent::_tracefirst($text),
31190                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31191                                           $tracelevel)
31192                                                 if defined $::RD_TRACE;
31193                 $_matched = 1;
31194                 last;
31195         }
31196
31197
31198         while (!$_matched && !$commit)
31199         {
31200                 
31201                 Parse::RecDescent::_trace(q{Trying production: [method_invocation]},
31202                                           Parse::RecDescent::_tracefirst($_[1]),
31203                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31204                                           $tracelevel)
31205                                                 if defined $::RD_TRACE;
31206                 my $thisprod = $thisrule->{"prods"}[11];
31207                 $text = $_[1];
31208                 my $_savetext;
31209                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31210                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31211                 my $repcount = 0;
31212
31213
31214                 Parse::RecDescent::_trace(q{Trying subrule: [method_invocation]},
31215                                   Parse::RecDescent::_tracefirst($text),
31216                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31217                                   $tracelevel)
31218                                         if defined $::RD_TRACE;
31219                 if (1) { no strict qw{refs};
31220                 $expectation->is(q{})->at($text);
31221                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_invocation($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31222                 {
31223                         
31224                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [method_invocation]>>},
31225                                                   Parse::RecDescent::_tracefirst($text),
31226                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31227                                                   $tracelevel)
31228                                                         if defined $::RD_TRACE;
31229                         $expectation->failed();
31230                         last;
31231                 }
31232                 Parse::RecDescent::_trace(q{>>Matched subrule: [method_invocation]<< (return value: [}
31233                                         . $_tok . q{]},
31234                                           
31235                                           Parse::RecDescent::_tracefirst($text),
31236                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31237                                           $tracelevel)
31238                                                 if defined $::RD_TRACE;
31239                 $item{q{method_invocation}} = $_tok;
31240                 push @item, $_tok;
31241                 
31242                 }
31243
31244
31245                 Parse::RecDescent::_trace(q{>>Matched production: [method_invocation]<<},
31246                                           Parse::RecDescent::_tracefirst($text),
31247                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31248                                           $tracelevel)
31249                                                 if defined $::RD_TRACE;
31250                 $_matched = 1;
31251                 last;
31252         }
31253
31254
31255         while (!$_matched && !$commit)
31256         {
31257                 
31258                 Parse::RecDescent::_trace(q{Trying production: [subtype_treatment]},
31259                                           Parse::RecDescent::_tracefirst($_[1]),
31260                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31261                                           $tracelevel)
31262                                                 if defined $::RD_TRACE;
31263                 my $thisprod = $thisrule->{"prods"}[12];
31264                 $text = $_[1];
31265                 my $_savetext;
31266                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31267                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31268                 my $repcount = 0;
31269
31270
31271                 Parse::RecDescent::_trace(q{Trying subrule: [subtype_treatment]},
31272                                   Parse::RecDescent::_tracefirst($text),
31273                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31274                                   $tracelevel)
31275                                         if defined $::RD_TRACE;
31276                 if (1) { no strict qw{refs};
31277                 $expectation->is(q{})->at($text);
31278                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subtype_treatment($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31279                 {
31280                         
31281                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [subtype_treatment]>>},
31282                                                   Parse::RecDescent::_tracefirst($text),
31283                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31284                                                   $tracelevel)
31285                                                         if defined $::RD_TRACE;
31286                         $expectation->failed();
31287                         last;
31288                 }
31289                 Parse::RecDescent::_trace(q{>>Matched subrule: [subtype_treatment]<< (return value: [}
31290                                         . $_tok . q{]},
31291                                           
31292                                           Parse::RecDescent::_tracefirst($text),
31293                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31294                                           $tracelevel)
31295                                                 if defined $::RD_TRACE;
31296                 $item{q{subtype_treatment}} = $_tok;
31297                 push @item, $_tok;
31298                 
31299                 }
31300
31301
31302                 Parse::RecDescent::_trace(q{>>Matched production: [subtype_treatment]<<},
31303                                           Parse::RecDescent::_tracefirst($text),
31304                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31305                                           $tracelevel)
31306                                                 if defined $::RD_TRACE;
31307                 $_matched = 1;
31308                 last;
31309         }
31310
31311
31312         while (!$_matched && !$commit)
31313         {
31314                 
31315                 Parse::RecDescent::_trace(q{Trying production: [sequence_reference]},
31316                                           Parse::RecDescent::_tracefirst($_[1]),
31317                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31318                                           $tracelevel)
31319                                                 if defined $::RD_TRACE;
31320                 my $thisprod = $thisrule->{"prods"}[13];
31321                 $text = $_[1];
31322                 my $_savetext;
31323                 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31324                 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31325                 my $repcount = 0;
31326
31327
31328                 Parse::RecDescent::_trace(q{Trying subrule: [sequence_reference]},
31329                                   Parse::RecDescent::_tracefirst($text),
31330                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31331                                   $tracelevel)
31332                                         if defined $::RD_TRACE;
31333                 if (1) { no strict qw{refs};
31334                 $expectation->is(q{})->at($text);
31335                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_reference($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31336                 {
31337                         
31338                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [sequence_reference]>>},
31339                                                   Parse::RecDescent::_tracefirst($text),
31340                                                   q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31341                                                   $tracelevel)
31342                                                         if defined $::RD_TRACE;
31343                         $expectation->failed();
31344                         last;
31345                 }
31346                 Parse::RecDescent::_trace(q{>>Matched subrule: [sequence_reference]<< (return value: [}
31347                                         . $_tok . q{]},
31348                                           
31349                                           Parse::RecDescent::_tracefirst($text),
31350                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31351                                           $tracelevel)
31352                                                 if defined $::RD_TRACE;
31353                 $item{q{sequence_reference}} = $_tok;
31354                 push @item, $_tok;
31355                 
31356                 }
31357
31358
31359                 Parse::RecDescent::_trace(q{>>Matched production: [sequence_reference]<<},
31360                                           Parse::RecDescent::_tracefirst($text),
31361                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31362                                           $tracelevel)
31363                                                 if defined $::RD_TRACE;
31364                 $_matched = 1;
31365                 last;
31366         }
31367
31368
31369         unless ( $_matched || defined($return) || defined($score) )
31370         {
31371                 
31372
31373                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
31374                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
31375                                          Parse::RecDescent::_tracefirst($_[1]),
31376                                          q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31377                                          $tracelevel)
31378                                         if defined $::RD_TRACE;
31379                 return undef;
31380         }
31381         if (!defined($return) && defined($score))
31382         {
31383                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
31384                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31385                                           $tracelevel)
31386                                                 if defined $::RD_TRACE;
31387                 $return = $score_return;
31388         }
31389         splice @{$thisparser->{errors}}, $err_at;
31390         $return = $item[$#item] unless defined $return;
31391         if (defined $::RD_TRACE)
31392         {
31393                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
31394                                           $return . q{])}, "",
31395                                           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31396                                           $tracelevel);
31397                 Parse::RecDescent::_trace(q{(consumed: [} .
31398                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
31399                                           Parse::RecDescent::_tracefirst($text),
31400                                           , q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31401                                           $tracelevel)
31402         }
31403         $_[1] = $text;
31404         return $return;
31405 }
31406
31407 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31408 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::startrule
31409 {
31410         my $thisparser = $_[0];
31411         use vars q{$tracelevel};
31412         local $tracelevel = ($tracelevel||0)+1;
31413         $ERRORS = 0;
31414         my $thisrule = $thisparser->{"rules"}{"startrule"};
31415         
31416         Parse::RecDescent::_trace(q{Trying rule: [startrule]},
31417                                   Parse::RecDescent::_tracefirst($_[1]),
31418                                   q{startrule},
31419                                   $tracelevel)
31420                                         if defined $::RD_TRACE;
31421
31422         
31423         my $err_at = @{$thisparser->{errors}};
31424
31425         my $score;
31426         my $score_return;
31427         my $_tok;
31428         my $return = undef;
31429         my $_matched=0;
31430         my $commit=0;
31431         my @item = ();
31432         my %item = ();
31433         my $repeating =  defined($_[2]) && $_[2];
31434         my $_noactions = defined($_[3]) && $_[3];
31435         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
31436         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
31437         my $text;
31438         my $lastsep="";
31439         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31440         $expectation->at($_[1]);
31441         
31442         my $thisline;
31443         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31444
31445         
31446
31447         while (!$_matched && !$commit)
31448         {
31449                 
31450                 Parse::RecDescent::_trace(q{Trying production: [statement eofile]},
31451                                           Parse::RecDescent::_tracefirst($_[1]),
31452                                           q{startrule},
31453                                           $tracelevel)
31454                                                 if defined $::RD_TRACE;
31455                 my $thisprod = $thisrule->{"prods"}[0];
31456                 $text = $_[1];
31457                 my $_savetext;
31458                 @item = (q{startrule});
31459                 %item = (__RULE__ => q{startrule});
31460                 my $repcount = 0;
31461
31462
31463                 Parse::RecDescent::_trace(q{Trying repeated subrule: [statement]},
31464                                   Parse::RecDescent::_tracefirst($text),
31465                                   q{startrule},
31466                                   $tracelevel)
31467                                         if defined $::RD_TRACE;
31468                 $expectation->is(q{})->at($text);
31469                 
31470                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::statement, 1, 100000000, $_noactions,$expectation,undef))) 
31471                 {
31472                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [statement]>>},
31473                                                   Parse::RecDescent::_tracefirst($text),
31474                                                   q{startrule},
31475                                                   $tracelevel)
31476                                                         if defined $::RD_TRACE;
31477                         last;
31478                 }
31479                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [statement]<< (}
31480                                         . @$_tok . q{ times)},
31481                                           
31482                                           Parse::RecDescent::_tracefirst($text),
31483                                           q{startrule},
31484                                           $tracelevel)
31485                                                 if defined $::RD_TRACE;
31486                 $item{q{statement(s)}} = $_tok;
31487                 push @item, $_tok;
31488                 
31489
31490
31491                 Parse::RecDescent::_trace(q{Trying subrule: [eofile]},
31492                                   Parse::RecDescent::_tracefirst($text),
31493                                   q{startrule},
31494                                   $tracelevel)
31495                                         if defined $::RD_TRACE;
31496                 if (1) { no strict qw{refs};
31497                 $expectation->is(q{eofile})->at($text);
31498                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::eofile($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31499                 {
31500                         
31501                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [eofile]>>},
31502                                                   Parse::RecDescent::_tracefirst($text),
31503                                                   q{startrule},
31504                                                   $tracelevel)
31505                                                         if defined $::RD_TRACE;
31506                         $expectation->failed();
31507                         last;
31508                 }
31509                 Parse::RecDescent::_trace(q{>>Matched subrule: [eofile]<< (return value: [}
31510                                         . $_tok . q{]},
31511                                           
31512                                           Parse::RecDescent::_tracefirst($text),
31513                                           q{startrule},
31514                                           $tracelevel)
31515                                                 if defined $::RD_TRACE;
31516                 $item{q{eofile}} = $_tok;
31517                 push @item, $_tok;
31518                 
31519                 }
31520
31521                 Parse::RecDescent::_trace(q{Trying action},
31522                                           Parse::RecDescent::_tracefirst($text),
31523                                           q{startrule},
31524                                           $tracelevel)
31525                                                 if defined $::RD_TRACE;
31526                 
31527
31528                 $_tok = ($_noactions) ? 0 : do {
31529     $return      = {
31530         tables   => \%tables,
31531         views    => \@views,
31532         triggers => \@triggers,
31533     }
31534 };
31535                 unless (defined $_tok)
31536                 {
31537                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
31538                                         if defined $::RD_TRACE;
31539                         last;
31540                 }
31541                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
31542                                           . $_tok . q{])},
31543                                           Parse::RecDescent::_tracefirst($text))
31544                                                 if defined $::RD_TRACE;
31545                 push @item, $_tok;
31546                 $item{__ACTION1__}=$_tok;
31547                 
31548
31549
31550                 Parse::RecDescent::_trace(q{>>Matched production: [statement eofile]<<},
31551                                           Parse::RecDescent::_tracefirst($text),
31552                                           q{startrule},
31553                                           $tracelevel)
31554                                                 if defined $::RD_TRACE;
31555                 $_matched = 1;
31556                 last;
31557         }
31558
31559
31560         unless ( $_matched || defined($return) || defined($score) )
31561         {
31562                 
31563
31564                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
31565                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
31566                                          Parse::RecDescent::_tracefirst($_[1]),
31567                                          q{startrule},
31568                                          $tracelevel)
31569                                         if defined $::RD_TRACE;
31570                 return undef;
31571         }
31572         if (!defined($return) && defined($score))
31573         {
31574                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
31575                                           q{startrule},
31576                                           $tracelevel)
31577                                                 if defined $::RD_TRACE;
31578                 $return = $score_return;
31579         }
31580         splice @{$thisparser->{errors}}, $err_at;
31581         $return = $item[$#item] unless defined $return;
31582         if (defined $::RD_TRACE)
31583         {
31584                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
31585                                           $return . q{])}, "",
31586                                           q{startrule},
31587                                           $tracelevel);
31588                 Parse::RecDescent::_trace(q{(consumed: [} .
31589                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
31590                                           Parse::RecDescent::_tracefirst($text),
31591                                           , q{startrule},
31592                                           $tracelevel)
31593         }
31594         $_[1] = $text;
31595         return $return;
31596 }
31597
31598 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31599 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cast_specification
31600 {
31601         my $thisparser = $_[0];
31602         use vars q{$tracelevel};
31603         local $tracelevel = ($tracelevel||0)+1;
31604         $ERRORS = 0;
31605         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_cast_specification"};
31606         
31607         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_cast_specification]},
31608                                   Parse::RecDescent::_tracefirst($_[1]),
31609                                   q{_alternation_1_of_production_1_of_rule_cast_specification},
31610                                   $tracelevel)
31611                                         if defined $::RD_TRACE;
31612
31613         
31614         my $err_at = @{$thisparser->{errors}};
31615
31616         my $score;
31617         my $score_return;
31618         my $_tok;
31619         my $return = undef;
31620         my $_matched=0;
31621         my $commit=0;
31622         my @item = ();
31623         my %item = ();
31624         my $repeating =  defined($_[2]) && $_[2];
31625         my $_noactions = defined($_[3]) && $_[3];
31626         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
31627         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
31628         my $text;
31629         my $lastsep="";
31630         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31631         $expectation->at($_[1]);
31632         
31633         my $thisline;
31634         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31635
31636         
31637
31638         while (!$_matched && !$commit)
31639         {
31640                 
31641                 Parse::RecDescent::_trace(q{Trying production: [expression]},
31642                                           Parse::RecDescent::_tracefirst($_[1]),
31643                                           q{_alternation_1_of_production_1_of_rule_cast_specification},
31644                                           $tracelevel)
31645                                                 if defined $::RD_TRACE;
31646                 my $thisprod = $thisrule->{"prods"}[0];
31647                 $text = $_[1];
31648                 my $_savetext;
31649                 @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
31650                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
31651                 my $repcount = 0;
31652
31653
31654                 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
31655                                   Parse::RecDescent::_tracefirst($text),
31656                                   q{_alternation_1_of_production_1_of_rule_cast_specification},
31657                                   $tracelevel)
31658                                         if defined $::RD_TRACE;
31659                 if (1) { no strict qw{refs};
31660                 $expectation->is(q{})->at($text);
31661                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31662                 {
31663                         
31664                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
31665                                                   Parse::RecDescent::_tracefirst($text),
31666                                                   q{_alternation_1_of_production_1_of_rule_cast_specification},
31667                                                   $tracelevel)
31668                                                         if defined $::RD_TRACE;
31669                         $expectation->failed();
31670                         last;
31671                 }
31672                 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
31673                                         . $_tok . q{]},
31674                                           
31675                                           Parse::RecDescent::_tracefirst($text),
31676                                           q{_alternation_1_of_production_1_of_rule_cast_specification},
31677                                           $tracelevel)
31678                                                 if defined $::RD_TRACE;
31679                 $item{q{expression}} = $_tok;
31680                 push @item, $_tok;
31681                 
31682                 }
31683
31684
31685                 Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
31686                                           Parse::RecDescent::_tracefirst($text),
31687                                           q{_alternation_1_of_production_1_of_rule_cast_specification},
31688                                           $tracelevel)
31689                                                 if defined $::RD_TRACE;
31690                 $_matched = 1;
31691                 last;
31692         }
31693
31694
31695         while (!$_matched && !$commit)
31696         {
31697                 
31698                 Parse::RecDescent::_trace(q{Trying production: [/NULL/i]},
31699                                           Parse::RecDescent::_tracefirst($_[1]),
31700                                           q{_alternation_1_of_production_1_of_rule_cast_specification},
31701                                           $tracelevel)
31702                                                 if defined $::RD_TRACE;
31703                 my $thisprod = $thisrule->{"prods"}[1];
31704                 $text = $_[1];
31705                 my $_savetext;
31706                 @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
31707                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
31708                 my $repcount = 0;
31709
31710
31711                 Parse::RecDescent::_trace(q{Trying terminal: [/NULL/i]}, Parse::RecDescent::_tracefirst($text),
31712                                           q{_alternation_1_of_production_1_of_rule_cast_specification},
31713                                           $tracelevel)
31714                                                 if defined $::RD_TRACE;
31715                 $lastsep = "";
31716                 $expectation->is(q{})->at($text);
31717                 
31718
31719                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULL)//i)
31720                 {
31721                         
31722                         $expectation->failed();
31723                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
31724                                                   Parse::RecDescent::_tracefirst($text))
31725                                         if defined $::RD_TRACE;
31726
31727                         last;
31728                 }
31729                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
31730                                                 . $& . q{])},
31731                                                   Parse::RecDescent::_tracefirst($text))
31732                                         if defined $::RD_TRACE;
31733                 push @item, $item{__PATTERN1__}=$&;
31734                 
31735
31736
31737                 Parse::RecDescent::_trace(q{>>Matched production: [/NULL/i]<<},
31738                                           Parse::RecDescent::_tracefirst($text),
31739                                           q{_alternation_1_of_production_1_of_rule_cast_specification},
31740                                           $tracelevel)
31741                                                 if defined $::RD_TRACE;
31742                 $_matched = 1;
31743                 last;
31744         }
31745
31746
31747         while (!$_matched && !$commit)
31748         {
31749                 
31750                 Parse::RecDescent::_trace(q{Trying production: [parameter_marker]},
31751                                           Parse::RecDescent::_tracefirst($_[1]),
31752                                           q{_alternation_1_of_production_1_of_rule_cast_specification},
31753                                           $tracelevel)
31754                                                 if defined $::RD_TRACE;
31755                 my $thisprod = $thisrule->{"prods"}[2];
31756                 $text = $_[1];
31757                 my $_savetext;
31758                 @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
31759                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
31760                 my $repcount = 0;
31761
31762
31763                 Parse::RecDescent::_trace(q{Trying subrule: [parameter_marker]},
31764                                   Parse::RecDescent::_tracefirst($text),
31765                                   q{_alternation_1_of_production_1_of_rule_cast_specification},
31766                                   $tracelevel)
31767                                         if defined $::RD_TRACE;
31768                 if (1) { no strict qw{refs};
31769                 $expectation->is(q{})->at($text);
31770                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::parameter_marker($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31771                 {
31772                         
31773                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [parameter_marker]>>},
31774                                                   Parse::RecDescent::_tracefirst($text),
31775                                                   q{_alternation_1_of_production_1_of_rule_cast_specification},
31776                                                   $tracelevel)
31777                                                         if defined $::RD_TRACE;
31778                         $expectation->failed();
31779                         last;
31780                 }
31781                 Parse::RecDescent::_trace(q{>>Matched subrule: [parameter_marker]<< (return value: [}
31782                                         . $_tok . q{]},
31783                                           
31784                                           Parse::RecDescent::_tracefirst($text),
31785                                           q{_alternation_1_of_production_1_of_rule_cast_specification},
31786                                           $tracelevel)
31787                                                 if defined $::RD_TRACE;
31788                 $item{q{parameter_marker}} = $_tok;
31789                 push @item, $_tok;
31790                 
31791                 }
31792
31793
31794                 Parse::RecDescent::_trace(q{>>Matched production: [parameter_marker]<<},
31795                                           Parse::RecDescent::_tracefirst($text),
31796                                           q{_alternation_1_of_production_1_of_rule_cast_specification},
31797                                           $tracelevel)
31798                                                 if defined $::RD_TRACE;
31799                 $_matched = 1;
31800                 last;
31801         }
31802
31803
31804         unless ( $_matched || defined($return) || defined($score) )
31805         {
31806                 
31807
31808                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
31809                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
31810                                          Parse::RecDescent::_tracefirst($_[1]),
31811                                          q{_alternation_1_of_production_1_of_rule_cast_specification},
31812                                          $tracelevel)
31813                                         if defined $::RD_TRACE;
31814                 return undef;
31815         }
31816         if (!defined($return) && defined($score))
31817         {
31818                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
31819                                           q{_alternation_1_of_production_1_of_rule_cast_specification},
31820                                           $tracelevel)
31821                                                 if defined $::RD_TRACE;
31822                 $return = $score_return;
31823         }
31824         splice @{$thisparser->{errors}}, $err_at;
31825         $return = $item[$#item] unless defined $return;
31826         if (defined $::RD_TRACE)
31827         {
31828                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
31829                                           $return . q{])}, "",
31830                                           q{_alternation_1_of_production_1_of_rule_cast_specification},
31831                                           $tracelevel);
31832                 Parse::RecDescent::_trace(q{(consumed: [} .
31833                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
31834                                           Parse::RecDescent::_tracefirst($text),
31835                                           , q{_alternation_1_of_production_1_of_rule_cast_specification},
31836                                           $tracelevel)
31837         }
31838         $_[1] = $text;
31839         return $return;
31840 }
31841
31842 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31843 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::before
31844 {
31845         my $thisparser = $_[0];
31846         use vars q{$tracelevel};
31847         local $tracelevel = ($tracelevel||0)+1;
31848         $ERRORS = 0;
31849         my $thisrule = $thisparser->{"rules"}{"before"};
31850         
31851         Parse::RecDescent::_trace(q{Trying rule: [before]},
31852                                   Parse::RecDescent::_tracefirst($_[1]),
31853                                   q{before},
31854                                   $tracelevel)
31855                                         if defined $::RD_TRACE;
31856
31857         
31858         my $err_at = @{$thisparser->{errors}};
31859
31860         my $score;
31861         my $score_return;
31862         my $_tok;
31863         my $return = undef;
31864         my $_matched=0;
31865         my $commit=0;
31866         my @item = ();
31867         my %item = ();
31868         my $repeating =  defined($_[2]) && $_[2];
31869         my $_noactions = defined($_[3]) && $_[3];
31870         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
31871         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
31872         my $text;
31873         my $lastsep="";
31874         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31875         $expectation->at($_[1]);
31876         
31877         my $thisline;
31878         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31879
31880         
31881
31882         while (!$_matched && !$commit)
31883         {
31884                 
31885                 Parse::RecDescent::_trace(q{Trying production: [/NO CASCADE BEFORE/i]},
31886                                           Parse::RecDescent::_tracefirst($_[1]),
31887                                           q{before},
31888                                           $tracelevel)
31889                                                 if defined $::RD_TRACE;
31890                 my $thisprod = $thisrule->{"prods"}[0];
31891                 $text = $_[1];
31892                 my $_savetext;
31893                 @item = (q{before});
31894                 %item = (__RULE__ => q{before});
31895                 my $repcount = 0;
31896
31897
31898                 Parse::RecDescent::_trace(q{Trying terminal: [/NO CASCADE BEFORE/i]}, Parse::RecDescent::_tracefirst($text),
31899                                           q{before},
31900                                           $tracelevel)
31901                                                 if defined $::RD_TRACE;
31902                 $lastsep = "";
31903                 $expectation->is(q{})->at($text);
31904                 
31905
31906                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NO CASCADE BEFORE)//i)
31907                 {
31908                         
31909                         $expectation->failed();
31910                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
31911                                                   Parse::RecDescent::_tracefirst($text))
31912                                         if defined $::RD_TRACE;
31913
31914                         last;
31915                 }
31916                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
31917                                                 . $& . q{])},
31918                                                   Parse::RecDescent::_tracefirst($text))
31919                                         if defined $::RD_TRACE;
31920                 push @item, $item{__PATTERN1__}=$&;
31921                 
31922
31923
31924                 Parse::RecDescent::_trace(q{>>Matched production: [/NO CASCADE BEFORE/i]<<},
31925                                           Parse::RecDescent::_tracefirst($text),
31926                                           q{before},
31927                                           $tracelevel)
31928                                                 if defined $::RD_TRACE;
31929                 $_matched = 1;
31930                 last;
31931         }
31932
31933
31934         unless ( $_matched || defined($return) || defined($score) )
31935         {
31936                 
31937
31938                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
31939                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
31940                                          Parse::RecDescent::_tracefirst($_[1]),
31941                                          q{before},
31942                                          $tracelevel)
31943                                         if defined $::RD_TRACE;
31944                 return undef;
31945         }
31946         if (!defined($return) && defined($score))
31947         {
31948                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
31949                                           q{before},
31950                                           $tracelevel)
31951                                                 if defined $::RD_TRACE;
31952                 $return = $score_return;
31953         }
31954         splice @{$thisparser->{errors}}, $err_at;
31955         $return = $item[$#item] unless defined $return;
31956         if (defined $::RD_TRACE)
31957         {
31958                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
31959                                           $return . q{])}, "",
31960                                           q{before},
31961                                           $tracelevel);
31962                 Parse::RecDescent::_trace(q{(consumed: [} .
31963                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
31964                                           Parse::RecDescent::_tracefirst($text),
31965                                           , q{before},
31966                                           $tracelevel)
31967         }
31968         $_[1] = $text;
31969         return $return;
31970 }
31971
31972 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31973 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_83_of_rule_sysibm_function
31974 {
31975         my $thisparser = $_[0];
31976         use vars q{$tracelevel};
31977         local $tracelevel = ($tracelevel||0)+1;
31978         $ERRORS = 0;
31979         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_83_of_rule_sysibm_function"};
31980         
31981         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_83_of_rule_sysibm_function]},
31982                                   Parse::RecDescent::_tracefirst($_[1]),
31983                                   q{_alternation_1_of_production_83_of_rule_sysibm_function},
31984                                   $tracelevel)
31985                                         if defined $::RD_TRACE;
31986
31987         
31988         my $err_at = @{$thisparser->{errors}};
31989
31990         my $score;
31991         my $score_return;
31992         my $_tok;
31993         my $return = undef;
31994         my $_matched=0;
31995         my $commit=0;
31996         my @item = ();
31997         my %item = ();
31998         my $repeating =  defined($_[2]) && $_[2];
31999         my $_noactions = defined($_[3]) && $_[3];
32000         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
32001         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
32002         my $text;
32003         my $lastsep="";
32004         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32005         $expectation->at($_[1]);
32006         
32007         my $thisline;
32008         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32009
32010         
32011
32012         while (!$_matched && !$commit)
32013         {
32014                 
32015                 Parse::RecDescent::_trace(q{Trying production: [/UCASE/i]},
32016                                           Parse::RecDescent::_tracefirst($_[1]),
32017                                           q{_alternation_1_of_production_83_of_rule_sysibm_function},
32018                                           $tracelevel)
32019                                                 if defined $::RD_TRACE;
32020                 my $thisprod = $thisrule->{"prods"}[0];
32021                 $text = $_[1];
32022                 my $_savetext;
32023                 @item = (q{_alternation_1_of_production_83_of_rule_sysibm_function});
32024                 %item = (__RULE__ => q{_alternation_1_of_production_83_of_rule_sysibm_function});
32025                 my $repcount = 0;
32026
32027
32028                 Parse::RecDescent::_trace(q{Trying terminal: [/UCASE/i]}, Parse::RecDescent::_tracefirst($text),
32029                                           q{_alternation_1_of_production_83_of_rule_sysibm_function},
32030                                           $tracelevel)
32031                                                 if defined $::RD_TRACE;
32032                 $lastsep = "";
32033                 $expectation->is(q{})->at($text);
32034                 
32035
32036                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UCASE)//i)
32037                 {
32038                         
32039                         $expectation->failed();
32040                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32041                                                   Parse::RecDescent::_tracefirst($text))
32042                                         if defined $::RD_TRACE;
32043
32044                         last;
32045                 }
32046                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32047                                                 . $& . q{])},
32048                                                   Parse::RecDescent::_tracefirst($text))
32049                                         if defined $::RD_TRACE;
32050                 push @item, $item{__PATTERN1__}=$&;
32051                 
32052
32053
32054                 Parse::RecDescent::_trace(q{>>Matched production: [/UCASE/i]<<},
32055                                           Parse::RecDescent::_tracefirst($text),
32056                                           q{_alternation_1_of_production_83_of_rule_sysibm_function},
32057                                           $tracelevel)
32058                                                 if defined $::RD_TRACE;
32059                 $_matched = 1;
32060                 last;
32061         }
32062
32063
32064         while (!$_matched && !$commit)
32065         {
32066                 
32067                 Parse::RecDescent::_trace(q{Trying production: [/UPPER/i]},
32068                                           Parse::RecDescent::_tracefirst($_[1]),
32069                                           q{_alternation_1_of_production_83_of_rule_sysibm_function},
32070                                           $tracelevel)
32071                                                 if defined $::RD_TRACE;
32072                 my $thisprod = $thisrule->{"prods"}[1];
32073                 $text = $_[1];
32074                 my $_savetext;
32075                 @item = (q{_alternation_1_of_production_83_of_rule_sysibm_function});
32076                 %item = (__RULE__ => q{_alternation_1_of_production_83_of_rule_sysibm_function});
32077                 my $repcount = 0;
32078
32079
32080                 Parse::RecDescent::_trace(q{Trying terminal: [/UPPER/i]}, Parse::RecDescent::_tracefirst($text),
32081                                           q{_alternation_1_of_production_83_of_rule_sysibm_function},
32082                                           $tracelevel)
32083                                                 if defined $::RD_TRACE;
32084                 $lastsep = "";
32085                 $expectation->is(q{})->at($text);
32086                 
32087
32088                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UPPER)//i)
32089                 {
32090                         
32091                         $expectation->failed();
32092                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32093                                                   Parse::RecDescent::_tracefirst($text))
32094                                         if defined $::RD_TRACE;
32095
32096                         last;
32097                 }
32098                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32099                                                 . $& . q{])},
32100                                                   Parse::RecDescent::_tracefirst($text))
32101                                         if defined $::RD_TRACE;
32102                 push @item, $item{__PATTERN1__}=$&;
32103                 
32104
32105
32106                 Parse::RecDescent::_trace(q{>>Matched production: [/UPPER/i]<<},
32107                                           Parse::RecDescent::_tracefirst($text),
32108                                           q{_alternation_1_of_production_83_of_rule_sysibm_function},
32109                                           $tracelevel)
32110                                                 if defined $::RD_TRACE;
32111                 $_matched = 1;
32112                 last;
32113         }
32114
32115
32116         unless ( $_matched || defined($return) || defined($score) )
32117         {
32118                 
32119
32120                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
32121                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
32122                                          Parse::RecDescent::_tracefirst($_[1]),
32123                                          q{_alternation_1_of_production_83_of_rule_sysibm_function},
32124                                          $tracelevel)
32125                                         if defined $::RD_TRACE;
32126                 return undef;
32127         }
32128         if (!defined($return) && defined($score))
32129         {
32130                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32131                                           q{_alternation_1_of_production_83_of_rule_sysibm_function},
32132                                           $tracelevel)
32133                                                 if defined $::RD_TRACE;
32134                 $return = $score_return;
32135         }
32136         splice @{$thisparser->{errors}}, $err_at;
32137         $return = $item[$#item] unless defined $return;
32138         if (defined $::RD_TRACE)
32139         {
32140                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32141                                           $return . q{])}, "",
32142                                           q{_alternation_1_of_production_83_of_rule_sysibm_function},
32143                                           $tracelevel);
32144                 Parse::RecDescent::_trace(q{(consumed: [} .
32145                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
32146                                           Parse::RecDescent::_tracefirst($text),
32147                                           , q{_alternation_1_of_production_83_of_rule_sysibm_function},
32148                                           $tracelevel)
32149         }
32150         $_[1] = $text;
32151         return $return;
32152 }
32153
32154 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32155 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ranking_function
32156 {
32157         my $thisparser = $_[0];
32158         use vars q{$tracelevel};
32159         local $tracelevel = ($tracelevel||0)+1;
32160         $ERRORS = 0;
32161         my $thisrule = $thisparser->{"rules"}{"ranking_function"};
32162         
32163         Parse::RecDescent::_trace(q{Trying rule: [ranking_function]},
32164                                   Parse::RecDescent::_tracefirst($_[1]),
32165                                   q{ranking_function},
32166                                   $tracelevel)
32167                                         if defined $::RD_TRACE;
32168
32169         
32170         my $err_at = @{$thisparser->{errors}};
32171
32172         my $score;
32173         my $score_return;
32174         my $_tok;
32175         my $return = undef;
32176         my $_matched=0;
32177         my $commit=0;
32178         my @item = ();
32179         my %item = ();
32180         my $repeating =  defined($_[2]) && $_[2];
32181         my $_noactions = defined($_[3]) && $_[3];
32182         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
32183         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
32184         my $text;
32185         my $lastsep="";
32186         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32187         $expectation->at($_[1]);
32188         
32189         my $thisline;
32190         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32191
32192         
32193
32194         while (!$_matched && !$commit)
32195         {
32196                 
32197                 Parse::RecDescent::_trace(q{Trying production: [/RANK/, or /DENSE_RANK|DENSERANK/i /OVER/i '(' window_partition_clause window_order_clause ')']},
32198                                           Parse::RecDescent::_tracefirst($_[1]),
32199                                           q{ranking_function},
32200                                           $tracelevel)
32201                                                 if defined $::RD_TRACE;
32202                 my $thisprod = $thisrule->{"prods"}[0];
32203                 $text = $_[1];
32204                 my $_savetext;
32205                 @item = (q{ranking_function});
32206                 %item = (__RULE__ => q{ranking_function});
32207                 my $repcount = 0;
32208
32209
32210                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_ranking_function]},
32211                                   Parse::RecDescent::_tracefirst($text),
32212                                   q{ranking_function},
32213                                   $tracelevel)
32214                                         if defined $::RD_TRACE;
32215                 if (1) { no strict qw{refs};
32216                 $expectation->is(q{})->at($text);
32217                 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 })))
32218                 {
32219                         
32220                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_ranking_function]>>},
32221                                                   Parse::RecDescent::_tracefirst($text),
32222                                                   q{ranking_function},
32223                                                   $tracelevel)
32224                                                         if defined $::RD_TRACE;
32225                         $expectation->failed();
32226                         last;
32227                 }
32228                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_ranking_function]<< (return value: [}
32229                                         . $_tok . q{]},
32230                                           
32231                                           Parse::RecDescent::_tracefirst($text),
32232                                           q{ranking_function},
32233                                           $tracelevel)
32234                                                 if defined $::RD_TRACE;
32235                 $item{q{_alternation_1_of_production_1_of_rule_ranking_function}} = $_tok;
32236                 push @item, $_tok;
32237                 
32238                 }
32239
32240                 Parse::RecDescent::_trace(q{Trying terminal: [/OVER/i]}, Parse::RecDescent::_tracefirst($text),
32241                                           q{ranking_function},
32242                                           $tracelevel)
32243                                                 if defined $::RD_TRACE;
32244                 $lastsep = "";
32245                 $expectation->is(q{/OVER/i})->at($text);
32246                 
32247
32248                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OVER)//i)
32249                 {
32250                         
32251                         $expectation->failed();
32252                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32253                                                   Parse::RecDescent::_tracefirst($text))
32254                                         if defined $::RD_TRACE;
32255
32256                         last;
32257                 }
32258                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32259                                                 . $& . q{])},
32260                                                   Parse::RecDescent::_tracefirst($text))
32261                                         if defined $::RD_TRACE;
32262                 push @item, $item{__PATTERN1__}=$&;
32263                 
32264
32265                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
32266                                           Parse::RecDescent::_tracefirst($text),
32267                                           q{ranking_function},
32268                                           $tracelevel)
32269                                                 if defined $::RD_TRACE;
32270                 $lastsep = "";
32271                 $expectation->is(q{'('})->at($text);
32272                 
32273
32274                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
32275                 {
32276                         
32277                         $expectation->failed();
32278                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
32279                                                   Parse::RecDescent::_tracefirst($text))
32280                                                         if defined $::RD_TRACE;
32281                         last;
32282                 }
32283                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32284                                                 . $& . q{])},
32285                                                   Parse::RecDescent::_tracefirst($text))
32286                                                         if defined $::RD_TRACE;
32287                 push @item, $item{__STRING1__}=$&;
32288                 
32289
32290                 Parse::RecDescent::_trace(q{Trying repeated subrule: [window_partition_clause]},
32291                                   Parse::RecDescent::_tracefirst($text),
32292                                   q{ranking_function},
32293                                   $tracelevel)
32294                                         if defined $::RD_TRACE;
32295                 $expectation->is(q{window_partition_clause})->at($text);
32296                 
32297                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause, 0, 1, $_noactions,$expectation,undef))) 
32298                 {
32299                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [window_partition_clause]>>},
32300                                                   Parse::RecDescent::_tracefirst($text),
32301                                                   q{ranking_function},
32302                                                   $tracelevel)
32303                                                         if defined $::RD_TRACE;
32304                         last;
32305                 }
32306                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [window_partition_clause]<< (}
32307                                         . @$_tok . q{ times)},
32308                                           
32309                                           Parse::RecDescent::_tracefirst($text),
32310                                           q{ranking_function},
32311                                           $tracelevel)
32312                                                 if defined $::RD_TRACE;
32313                 $item{q{window_partition_clause(?)}} = $_tok;
32314                 push @item, $_tok;
32315                 
32316
32317
32318                 Parse::RecDescent::_trace(q{Trying subrule: [window_order_clause]},
32319                                   Parse::RecDescent::_tracefirst($text),
32320                                   q{ranking_function},
32321                                   $tracelevel)
32322                                         if defined $::RD_TRACE;
32323                 if (1) { no strict qw{refs};
32324                 $expectation->is(q{window_order_clause})->at($text);
32325                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
32326                 {
32327                         
32328                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [window_order_clause]>>},
32329                                                   Parse::RecDescent::_tracefirst($text),
32330                                                   q{ranking_function},
32331                                                   $tracelevel)
32332                                                         if defined $::RD_TRACE;
32333                         $expectation->failed();
32334                         last;
32335                 }
32336                 Parse::RecDescent::_trace(q{>>Matched subrule: [window_order_clause]<< (return value: [}
32337                                         . $_tok . q{]},
32338                                           
32339                                           Parse::RecDescent::_tracefirst($text),
32340                                           q{ranking_function},
32341                                           $tracelevel)
32342                                                 if defined $::RD_TRACE;
32343                 $item{q{window_order_clause}} = $_tok;
32344                 push @item, $_tok;
32345                 
32346                 }
32347
32348                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
32349                                           Parse::RecDescent::_tracefirst($text),
32350                                           q{ranking_function},
32351                                           $tracelevel)
32352                                                 if defined $::RD_TRACE;
32353                 $lastsep = "";
32354                 $expectation->is(q{')'})->at($text);
32355                 
32356
32357                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
32358                 {
32359                         
32360                         $expectation->failed();
32361                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
32362                                                   Parse::RecDescent::_tracefirst($text))
32363                                                         if defined $::RD_TRACE;
32364                         last;
32365                 }
32366                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32367                                                 . $& . q{])},
32368                                                   Parse::RecDescent::_tracefirst($text))
32369                                                         if defined $::RD_TRACE;
32370                 push @item, $item{__STRING2__}=$&;
32371                 
32372
32373
32374                 Parse::RecDescent::_trace(q{>>Matched production: [/RANK/, or /DENSE_RANK|DENSERANK/i /OVER/i '(' window_partition_clause window_order_clause ')']<<},
32375                                           Parse::RecDescent::_tracefirst($text),
32376                                           q{ranking_function},
32377                                           $tracelevel)
32378                                                 if defined $::RD_TRACE;
32379                 $_matched = 1;
32380                 last;
32381         }
32382
32383
32384         unless ( $_matched || defined($return) || defined($score) )
32385         {
32386                 
32387
32388                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
32389                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
32390                                          Parse::RecDescent::_tracefirst($_[1]),
32391                                          q{ranking_function},
32392                                          $tracelevel)
32393                                         if defined $::RD_TRACE;
32394                 return undef;
32395         }
32396         if (!defined($return) && defined($score))
32397         {
32398                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32399                                           q{ranking_function},
32400                                           $tracelevel)
32401                                                 if defined $::RD_TRACE;
32402                 $return = $score_return;
32403         }
32404         splice @{$thisparser->{errors}}, $err_at;
32405         $return = $item[$#item] unless defined $return;
32406         if (defined $::RD_TRACE)
32407         {
32408                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32409                                           $return . q{])}, "",
32410                                           q{ranking_function},
32411                                           $tracelevel);
32412                 Parse::RecDescent::_trace(q{(consumed: [} .
32413                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
32414                                           Parse::RecDescent::_tracefirst($text),
32415                                           , q{ranking_function},
32416                                           $tracelevel)
32417         }
32418         $_[1] = $text;
32419         return $return;
32420 }
32421
32422 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32423 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition
32424 {
32425         my $thisparser = $_[0];
32426         use vars q{$tracelevel};
32427         local $tracelevel = ($tracelevel||0)+1;
32428         $ERRORS = 0;
32429         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition"};
32430         
32431         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition]},
32432                                   Parse::RecDescent::_tracefirst($_[1]),
32433                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32434                                   $tracelevel)
32435                                         if defined $::RD_TRACE;
32436
32437         
32438         my $err_at = @{$thisparser->{errors}};
32439
32440         my $score;
32441         my $score_return;
32442         my $_tok;
32443         my $return = undef;
32444         my $_matched=0;
32445         my $commit=0;
32446         my @item = ();
32447         my %item = ();
32448         my $repeating =  defined($_[2]) && $_[2];
32449         my $_noactions = defined($_[3]) && $_[3];
32450         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
32451         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
32452         my $text;
32453         my $lastsep="";
32454         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32455         $expectation->at($_[1]);
32456         
32457         my $thisline;
32458         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32459
32460         
32461
32462         while (!$_matched && !$commit)
32463         {
32464                 
32465                 Parse::RecDescent::_trace(q{Trying production: [/SELECTIVITY/i numeric_constant]},
32466                                           Parse::RecDescent::_tracefirst($_[1]),
32467                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32468                                           $tracelevel)
32469                                                 if defined $::RD_TRACE;
32470                 my $thisprod = $thisrule->{"prods"}[0];
32471                 $text = $_[1];
32472                 my $_savetext;
32473                 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition});
32474                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition});
32475                 my $repcount = 0;
32476
32477
32478                 Parse::RecDescent::_trace(q{Trying terminal: [/SELECTIVITY/i]}, Parse::RecDescent::_tracefirst($text),
32479                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32480                                           $tracelevel)
32481                                                 if defined $::RD_TRACE;
32482                 $lastsep = "";
32483                 $expectation->is(q{})->at($text);
32484                 
32485
32486                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SELECTIVITY)//i)
32487                 {
32488                         
32489                         $expectation->failed();
32490                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32491                                                   Parse::RecDescent::_tracefirst($text))
32492                                         if defined $::RD_TRACE;
32493
32494                         last;
32495                 }
32496                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32497                                                 . $& . q{])},
32498                                                   Parse::RecDescent::_tracefirst($text))
32499                                         if defined $::RD_TRACE;
32500                 push @item, $item{__PATTERN1__}=$&;
32501                 
32502
32503                 Parse::RecDescent::_trace(q{Trying subrule: [numeric_constant]},
32504                                   Parse::RecDescent::_tracefirst($text),
32505                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32506                                   $tracelevel)
32507                                         if defined $::RD_TRACE;
32508                 if (1) { no strict qw{refs};
32509                 $expectation->is(q{numeric_constant})->at($text);
32510                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
32511                 {
32512                         
32513                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [numeric_constant]>>},
32514                                                   Parse::RecDescent::_tracefirst($text),
32515                                                   q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32516                                                   $tracelevel)
32517                                                         if defined $::RD_TRACE;
32518                         $expectation->failed();
32519                         last;
32520                 }
32521                 Parse::RecDescent::_trace(q{>>Matched subrule: [numeric_constant]<< (return value: [}
32522                                         . $_tok . q{]},
32523                                           
32524                                           Parse::RecDescent::_tracefirst($text),
32525                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32526                                           $tracelevel)
32527                                                 if defined $::RD_TRACE;
32528                 $item{q{numeric_constant}} = $_tok;
32529                 push @item, $_tok;
32530                 
32531                 }
32532
32533
32534                 Parse::RecDescent::_trace(q{>>Matched production: [/SELECTIVITY/i numeric_constant]<<},
32535                                           Parse::RecDescent::_tracefirst($text),
32536                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32537                                           $tracelevel)
32538                                                 if defined $::RD_TRACE;
32539                 $_matched = 1;
32540                 last;
32541         }
32542
32543
32544         unless ( $_matched || defined($return) || defined($score) )
32545         {
32546                 
32547
32548                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
32549                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
32550                                          Parse::RecDescent::_tracefirst($_[1]),
32551                                          q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32552                                          $tracelevel)
32553                                         if defined $::RD_TRACE;
32554                 return undef;
32555         }
32556         if (!defined($return) && defined($score))
32557         {
32558                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32559                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32560                                           $tracelevel)
32561                                                 if defined $::RD_TRACE;
32562                 $return = $score_return;
32563         }
32564         splice @{$thisparser->{errors}}, $err_at;
32565         $return = $item[$#item] unless defined $return;
32566         if (defined $::RD_TRACE)
32567         {
32568                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32569                                           $return . q{])}, "",
32570                                           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32571                                           $tracelevel);
32572                 Parse::RecDescent::_trace(q{(consumed: [} .
32573                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
32574                                           Parse::RecDescent::_tracefirst($text),
32575                                           , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32576                                           $tracelevel)
32577         }
32578         $_[1] = $text;
32579         return $return;
32580 }
32581
32582 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32583 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysibm_function
32584 {
32585         my $thisparser = $_[0];
32586         use vars q{$tracelevel};
32587         local $tracelevel = ($tracelevel||0)+1;
32588         $ERRORS = 0;
32589         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_sysibm_function"};
32590         
32591         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_sysibm_function]},
32592                                   Parse::RecDescent::_tracefirst($_[1]),
32593                                   q{_alternation_1_of_production_1_of_rule_sysibm_function},
32594                                   $tracelevel)
32595                                         if defined $::RD_TRACE;
32596
32597         
32598         my $err_at = @{$thisparser->{errors}};
32599
32600         my $score;
32601         my $score_return;
32602         my $_tok;
32603         my $return = undef;
32604         my $_matched=0;
32605         my $commit=0;
32606         my @item = ();
32607         my %item = ();
32608         my $repeating =  defined($_[2]) && $_[2];
32609         my $_noactions = defined($_[3]) && $_[3];
32610         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
32611         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
32612         my $text;
32613         my $lastsep="";
32614         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32615         $expectation->at($_[1]);
32616         
32617         my $thisline;
32618         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32619
32620         
32621
32622         while (!$_matched && !$commit)
32623         {
32624                 
32625                 Parse::RecDescent::_trace(q{Trying production: [/ABS/i]},
32626                                           Parse::RecDescent::_tracefirst($_[1]),
32627                                           q{_alternation_1_of_production_1_of_rule_sysibm_function},
32628                                           $tracelevel)
32629                                                 if defined $::RD_TRACE;
32630                 my $thisprod = $thisrule->{"prods"}[0];
32631                 $text = $_[1];
32632                 my $_savetext;
32633                 @item = (q{_alternation_1_of_production_1_of_rule_sysibm_function});
32634                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysibm_function});
32635                 my $repcount = 0;
32636
32637
32638                 Parse::RecDescent::_trace(q{Trying terminal: [/ABS/i]}, Parse::RecDescent::_tracefirst($text),
32639                                           q{_alternation_1_of_production_1_of_rule_sysibm_function},
32640                                           $tracelevel)
32641                                                 if defined $::RD_TRACE;
32642                 $lastsep = "";
32643                 $expectation->is(q{})->at($text);
32644                 
32645
32646                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ABS)//i)
32647                 {
32648                         
32649                         $expectation->failed();
32650                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32651                                                   Parse::RecDescent::_tracefirst($text))
32652                                         if defined $::RD_TRACE;
32653
32654                         last;
32655                 }
32656                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32657                                                 . $& . q{])},
32658                                                   Parse::RecDescent::_tracefirst($text))
32659                                         if defined $::RD_TRACE;
32660                 push @item, $item{__PATTERN1__}=$&;
32661                 
32662
32663
32664                 Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i]<<},
32665                                           Parse::RecDescent::_tracefirst($text),
32666                                           q{_alternation_1_of_production_1_of_rule_sysibm_function},
32667                                           $tracelevel)
32668                                                 if defined $::RD_TRACE;
32669                 $_matched = 1;
32670                 last;
32671         }
32672
32673
32674         while (!$_matched && !$commit)
32675         {
32676                 
32677                 Parse::RecDescent::_trace(q{Trying production: [/ABSVAL/i]},
32678                                           Parse::RecDescent::_tracefirst($_[1]),
32679                                           q{_alternation_1_of_production_1_of_rule_sysibm_function},
32680                                           $tracelevel)
32681                                                 if defined $::RD_TRACE;
32682                 my $thisprod = $thisrule->{"prods"}[1];
32683                 $text = $_[1];
32684                 my $_savetext;
32685                 @item = (q{_alternation_1_of_production_1_of_rule_sysibm_function});
32686                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysibm_function});
32687                 my $repcount = 0;
32688
32689
32690                 Parse::RecDescent::_trace(q{Trying terminal: [/ABSVAL/i]}, Parse::RecDescent::_tracefirst($text),
32691                                           q{_alternation_1_of_production_1_of_rule_sysibm_function},
32692                                           $tracelevel)
32693                                                 if defined $::RD_TRACE;
32694                 $lastsep = "";
32695                 $expectation->is(q{})->at($text);
32696                 
32697
32698                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ABSVAL)//i)
32699                 {
32700                         
32701                         $expectation->failed();
32702                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32703                                                   Parse::RecDescent::_tracefirst($text))
32704                                         if defined $::RD_TRACE;
32705
32706                         last;
32707                 }
32708                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32709                                                 . $& . q{])},
32710                                                   Parse::RecDescent::_tracefirst($text))
32711                                         if defined $::RD_TRACE;
32712                 push @item, $item{__PATTERN1__}=$&;
32713                 
32714
32715
32716                 Parse::RecDescent::_trace(q{>>Matched production: [/ABSVAL/i]<<},
32717                                           Parse::RecDescent::_tracefirst($text),
32718                                           q{_alternation_1_of_production_1_of_rule_sysibm_function},
32719                                           $tracelevel)
32720                                                 if defined $::RD_TRACE;
32721                 $_matched = 1;
32722                 last;
32723         }
32724
32725
32726         unless ( $_matched || defined($return) || defined($score) )
32727         {
32728                 
32729
32730                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
32731                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
32732                                          Parse::RecDescent::_tracefirst($_[1]),
32733                                          q{_alternation_1_of_production_1_of_rule_sysibm_function},
32734                                          $tracelevel)
32735                                         if defined $::RD_TRACE;
32736                 return undef;
32737         }
32738         if (!defined($return) && defined($score))
32739         {
32740                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32741                                           q{_alternation_1_of_production_1_of_rule_sysibm_function},
32742                                           $tracelevel)
32743                                                 if defined $::RD_TRACE;
32744                 $return = $score_return;
32745         }
32746         splice @{$thisparser->{errors}}, $err_at;
32747         $return = $item[$#item] unless defined $return;
32748         if (defined $::RD_TRACE)
32749         {
32750                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32751                                           $return . q{])}, "",
32752                                           q{_alternation_1_of_production_1_of_rule_sysibm_function},
32753                                           $tracelevel);
32754                 Parse::RecDescent::_trace(q{(consumed: [} .
32755                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
32756                                           Parse::RecDescent::_tracefirst($text),
32757                                           , q{_alternation_1_of_production_1_of_rule_sysibm_function},
32758                                           $tracelevel)
32759         }
32760         $_[1] = $text;
32761         return $return;
32762 }
32763
32764 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32765 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_b
32766 {
32767         my $thisparser = $_[0];
32768         use vars q{$tracelevel};
32769         local $tracelevel = ($tracelevel||0)+1;
32770         $ERRORS = 0;
32771         my $thisrule = $thisparser->{"rules"}{"reference_b"};
32772         
32773         Parse::RecDescent::_trace(q{Trying rule: [reference_b]},
32774                                   Parse::RecDescent::_tracefirst($_[1]),
32775                                   q{reference_b},
32776                                   $tracelevel)
32777                                         if defined $::RD_TRACE;
32778
32779         
32780         my $err_at = @{$thisparser->{errors}};
32781
32782         my $score;
32783         my $score_return;
32784         my $_tok;
32785         my $return = undef;
32786         my $_matched=0;
32787         my $commit=0;
32788         my @item = ();
32789         my %item = ();
32790         my $repeating =  defined($_[2]) && $_[2];
32791         my $_noactions = defined($_[3]) && $_[3];
32792         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
32793         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
32794         my $text;
32795         my $lastsep="";
32796         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32797         $expectation->at($_[1]);
32798         
32799         my $thisline;
32800         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32801
32802         
32803
32804         while (!$_matched && !$commit)
32805         {
32806                 
32807                 Parse::RecDescent::_trace(q{Trying production: [/REFERENCING/i old_new_corr]},
32808                                           Parse::RecDescent::_tracefirst($_[1]),
32809                                           q{reference_b},
32810                                           $tracelevel)
32811                                                 if defined $::RD_TRACE;
32812                 my $thisprod = $thisrule->{"prods"}[0];
32813                 $text = $_[1];
32814                 my $_savetext;
32815                 @item = (q{reference_b});
32816                 %item = (__RULE__ => q{reference_b});
32817                 my $repcount = 0;
32818
32819
32820                 Parse::RecDescent::_trace(q{Trying terminal: [/REFERENCING/i]}, Parse::RecDescent::_tracefirst($text),
32821                                           q{reference_b},
32822                                           $tracelevel)
32823                                                 if defined $::RD_TRACE;
32824                 $lastsep = "";
32825                 $expectation->is(q{})->at($text);
32826                 
32827
32828                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REFERENCING)//i)
32829                 {
32830                         
32831                         $expectation->failed();
32832                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32833                                                   Parse::RecDescent::_tracefirst($text))
32834                                         if defined $::RD_TRACE;
32835
32836                         last;
32837                 }
32838                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32839                                                 . $& . q{])},
32840                                                   Parse::RecDescent::_tracefirst($text))
32841                                         if defined $::RD_TRACE;
32842                 push @item, $item{__PATTERN1__}=$&;
32843                 
32844
32845                 Parse::RecDescent::_trace(q{Trying repeated subrule: [old_new_corr]},
32846                                   Parse::RecDescent::_tracefirst($text),
32847                                   q{reference_b},
32848                                   $tracelevel)
32849                                         if defined $::RD_TRACE;
32850                 $expectation->is(q{old_new_corr})->at($text);
32851                 
32852                 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr, 0, 2, $_noactions,$expectation,undef))) 
32853                 {
32854                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [old_new_corr]>>},
32855                                                   Parse::RecDescent::_tracefirst($text),
32856                                                   q{reference_b},
32857                                                   $tracelevel)
32858                                                         if defined $::RD_TRACE;
32859                         last;
32860                 }
32861                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [old_new_corr]<< (}
32862                                         . @$_tok . q{ times)},
32863                                           
32864                                           Parse::RecDescent::_tracefirst($text),
32865                                           q{reference_b},
32866                                           $tracelevel)
32867                                                 if defined $::RD_TRACE;
32868                 $item{q{old_new_corr(0..2)}} = $_tok;
32869                 push @item, $_tok;
32870                 
32871
32872
32873                 Parse::RecDescent::_trace(q{Trying action},
32874                                           Parse::RecDescent::_tracefirst($text),
32875                                           q{reference_b},
32876                                           $tracelevel)
32877                                                 if defined $::RD_TRACE;
32878                 
32879
32880                 $_tok = ($_noactions) ? 0 : do { $return = join(' ', $item[1], join(' ', @{$item[2]}) ) };
32881                 unless (defined $_tok)
32882                 {
32883                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
32884                                         if defined $::RD_TRACE;
32885                         last;
32886                 }
32887                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
32888                                           . $_tok . q{])},
32889                                           Parse::RecDescent::_tracefirst($text))
32890                                                 if defined $::RD_TRACE;
32891                 push @item, $_tok;
32892                 $item{__ACTION1__}=$_tok;
32893                 
32894
32895
32896                 Parse::RecDescent::_trace(q{>>Matched production: [/REFERENCING/i old_new_corr]<<},
32897                                           Parse::RecDescent::_tracefirst($text),
32898                                           q{reference_b},
32899                                           $tracelevel)
32900                                                 if defined $::RD_TRACE;
32901                 $_matched = 1;
32902                 last;
32903         }
32904
32905
32906         unless ( $_matched || defined($return) || defined($score) )
32907         {
32908                 
32909
32910                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
32911                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
32912                                          Parse::RecDescent::_tracefirst($_[1]),
32913                                          q{reference_b},
32914                                          $tracelevel)
32915                                         if defined $::RD_TRACE;
32916                 return undef;
32917         }
32918         if (!defined($return) && defined($score))
32919         {
32920                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32921                                           q{reference_b},
32922                                           $tracelevel)
32923                                                 if defined $::RD_TRACE;
32924                 $return = $score_return;
32925         }
32926         splice @{$thisparser->{errors}}, $err_at;
32927         $return = $item[$#item] unless defined $return;
32928         if (defined $::RD_TRACE)
32929         {
32930                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32931                                           $return . q{])}, "",
32932                                           q{reference_b},
32933                                           $tracelevel);
32934                 Parse::RecDescent::_trace(q{(consumed: [} .
32935                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
32936                                           Parse::RecDescent::_tracefirst($text),
32937                                           , q{reference_b},
32938                                           $tracelevel)
32939         }
32940         $_[1] = $text;
32941         return $return;
32942 }
32943
32944 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32945 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_simple_when_clause
32946 {
32947         my $thisparser = $_[0];
32948         use vars q{$tracelevel};
32949         local $tracelevel = ($tracelevel||0)+1;
32950         $ERRORS = 0;
32951         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_simple_when_clause"};
32952         
32953         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_simple_when_clause]},
32954                                   Parse::RecDescent::_tracefirst($_[1]),
32955                                   q{_alternation_1_of_production_1_of_rule_simple_when_clause},
32956                                   $tracelevel)
32957                                         if defined $::RD_TRACE;
32958
32959         
32960         my $err_at = @{$thisparser->{errors}};
32961
32962         my $score;
32963         my $score_return;
32964         my $_tok;
32965         my $return = undef;
32966         my $_matched=0;
32967         my $commit=0;
32968         my @item = ();
32969         my %item = ();
32970         my $repeating =  defined($_[2]) && $_[2];
32971         my $_noactions = defined($_[3]) && $_[3];
32972         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
32973         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
32974         my $text;
32975         my $lastsep="";
32976         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32977         $expectation->at($_[1]);
32978         
32979         my $thisline;
32980         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32981
32982         
32983
32984         while (!$_matched && !$commit)
32985         {
32986                 
32987                 Parse::RecDescent::_trace(q{Trying production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]},
32988                                           Parse::RecDescent::_tracefirst($_[1]),
32989                                           q{_alternation_1_of_production_1_of_rule_simple_when_clause},
32990                                           $tracelevel)
32991                                                 if defined $::RD_TRACE;
32992                 my $thisprod = $thisrule->{"prods"}[0];
32993                 $text = $_[1];
32994                 my $_savetext;
32995                 @item = (q{_alternation_1_of_production_1_of_rule_simple_when_clause});
32996                 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_simple_when_clause});
32997                 my $repcount = 0;
32998
32999
33000                 Parse::RecDescent::_trace(q{Trying terminal: [/WHEN/i]}, Parse::RecDescent::_tracefirst($text),
33001                                           q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33002                                           $tracelevel)
33003                                                 if defined $::RD_TRACE;
33004                 $lastsep = "";
33005                 $expectation->is(q{})->at($text);
33006                 
33007
33008                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WHEN)//i)
33009                 {
33010                         
33011                         $expectation->failed();
33012                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33013                                                   Parse::RecDescent::_tracefirst($text))
33014                                         if defined $::RD_TRACE;
33015
33016                         last;
33017                 }
33018                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33019                                                 . $& . q{])},
33020                                                   Parse::RecDescent::_tracefirst($text))
33021                                         if defined $::RD_TRACE;
33022                 push @item, $item{__PATTERN1__}=$&;
33023                 
33024
33025                 Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
33026                                   Parse::RecDescent::_tracefirst($text),
33027                                   q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33028                                   $tracelevel)
33029                                         if defined $::RD_TRACE;
33030                 if (1) { no strict qw{refs};
33031                 $expectation->is(q{search_condition})->at($text);
33032                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
33033                 {
33034                         
33035                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
33036                                                   Parse::RecDescent::_tracefirst($text),
33037                                                   q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33038                                                   $tracelevel)
33039                                                         if defined $::RD_TRACE;
33040                         $expectation->failed();
33041                         last;
33042                 }
33043                 Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
33044                                         . $_tok . q{]},
33045                                           
33046                                           Parse::RecDescent::_tracefirst($text),
33047                                           q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33048                                           $tracelevel)
33049                                                 if defined $::RD_TRACE;
33050                 $item{q{search_condition}} = $_tok;
33051                 push @item, $_tok;
33052                 
33053                 }
33054
33055                 Parse::RecDescent::_trace(q{Trying terminal: [/THEN/i]}, Parse::RecDescent::_tracefirst($text),
33056                                           q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33057                                           $tracelevel)
33058                                                 if defined $::RD_TRACE;
33059                 $lastsep = "";
33060                 $expectation->is(q{/THEN/i})->at($text);
33061                 
33062
33063                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:THEN)//i)
33064                 {
33065                         
33066                         $expectation->failed();
33067                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33068                                                   Parse::RecDescent::_tracefirst($text))
33069                                         if defined $::RD_TRACE;
33070
33071                         last;
33072                 }
33073                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33074                                                 . $& . q{])},
33075                                                   Parse::RecDescent::_tracefirst($text))
33076                                         if defined $::RD_TRACE;
33077                 push @item, $item{__PATTERN2__}=$&;
33078                 
33079
33080                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]},
33081                                   Parse::RecDescent::_tracefirst($text),
33082                                   q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33083                                   $tracelevel)
33084                                         if defined $::RD_TRACE;
33085                 if (1) { no strict qw{refs};
33086                 $expectation->is(q{result_expression, or /NULL/i})->at($text);
33087                 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 })))
33088                 {
33089                         
33090                         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]>>},
33091                                                   Parse::RecDescent::_tracefirst($text),
33092                                                   q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33093                                                   $tracelevel)
33094                                                         if defined $::RD_TRACE;
33095                         $expectation->failed();
33096                         last;
33097                 }
33098                 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: [}
33099                                         . $_tok . q{]},
33100                                           
33101                                           Parse::RecDescent::_tracefirst($text),
33102                                           q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33103                                           $tracelevel)
33104                                                 if defined $::RD_TRACE;
33105                 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause}} = $_tok;
33106                 push @item, $_tok;
33107                 
33108                 }
33109
33110
33111                 Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]<<},
33112                                           Parse::RecDescent::_tracefirst($text),
33113                                           q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33114                                           $tracelevel)
33115                                                 if defined $::RD_TRACE;
33116                 $_matched = 1;
33117                 last;
33118         }
33119
33120
33121         unless ( $_matched || defined($return) || defined($score) )
33122         {
33123                 
33124
33125                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
33126                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
33127                                          Parse::RecDescent::_tracefirst($_[1]),
33128                                          q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33129                                          $tracelevel)
33130                                         if defined $::RD_TRACE;
33131                 return undef;
33132         }
33133         if (!defined($return) && defined($score))
33134         {
33135                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33136                                           q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33137                                           $tracelevel)
33138                                                 if defined $::RD_TRACE;
33139                 $return = $score_return;
33140         }
33141         splice @{$thisparser->{errors}}, $err_at;
33142         $return = $item[$#item] unless defined $return;
33143         if (defined $::RD_TRACE)
33144         {
33145                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33146                                           $return . q{])}, "",
33147                                           q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33148                                           $tracelevel);
33149                 Parse::RecDescent::_trace(q{(consumed: [} .
33150                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
33151                                           Parse::RecDescent::_tracefirst($text),
33152                                           , q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33153                                           $tracelevel)
33154         }
33155         $_[1] = $text;
33156         return $return;
33157 }
33158
33159 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33160 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_9_of_rule_sysibm_function
33161 {
33162         my $thisparser = $_[0];
33163         use vars q{$tracelevel};
33164         local $tracelevel = ($tracelevel||0)+1;
33165         $ERRORS = 0;
33166         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_9_of_rule_sysibm_function"};
33167         
33168         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_9_of_rule_sysibm_function]},
33169                                   Parse::RecDescent::_tracefirst($_[1]),
33170                                   q{_alternation_1_of_production_9_of_rule_sysibm_function},
33171                                   $tracelevel)
33172                                         if defined $::RD_TRACE;
33173
33174         
33175         my $err_at = @{$thisparser->{errors}};
33176
33177         my $score;
33178         my $score_return;
33179         my $_tok;
33180         my $return = undef;
33181         my $_matched=0;
33182         my $commit=0;
33183         my @item = ();
33184         my %item = ();
33185         my $repeating =  defined($_[2]) && $_[2];
33186         my $_noactions = defined($_[3]) && $_[3];
33187         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
33188         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
33189         my $text;
33190         my $lastsep="";
33191         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33192         $expectation->at($_[1]);
33193         
33194         my $thisline;
33195         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33196
33197         
33198
33199         while (!$_matched && !$commit)
33200         {
33201                 
33202                 Parse::RecDescent::_trace(q{Trying production: [/CORRELATION/i]},
33203                                           Parse::RecDescent::_tracefirst($_[1]),
33204                                           q{_alternation_1_of_production_9_of_rule_sysibm_function},
33205                                           $tracelevel)
33206                                                 if defined $::RD_TRACE;
33207                 my $thisprod = $thisrule->{"prods"}[0];
33208                 $text = $_[1];
33209                 my $_savetext;
33210                 @item = (q{_alternation_1_of_production_9_of_rule_sysibm_function});
33211                 %item = (__RULE__ => q{_alternation_1_of_production_9_of_rule_sysibm_function});
33212                 my $repcount = 0;
33213
33214
33215                 Parse::RecDescent::_trace(q{Trying terminal: [/CORRELATION/i]}, Parse::RecDescent::_tracefirst($text),
33216                                           q{_alternation_1_of_production_9_of_rule_sysibm_function},
33217                                           $tracelevel)
33218                                                 if defined $::RD_TRACE;
33219                 $lastsep = "";
33220                 $expectation->is(q{})->at($text);
33221                 
33222
33223                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CORRELATION)//i)
33224                 {
33225                         
33226                         $expectation->failed();
33227                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33228                                                   Parse::RecDescent::_tracefirst($text))
33229                                         if defined $::RD_TRACE;
33230
33231                         last;
33232                 }
33233                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33234                                                 . $& . q{])},
33235                                                   Parse::RecDescent::_tracefirst($text))
33236                                         if defined $::RD_TRACE;
33237                 push @item, $item{__PATTERN1__}=$&;
33238                 
33239
33240
33241                 Parse::RecDescent::_trace(q{>>Matched production: [/CORRELATION/i]<<},
33242                                           Parse::RecDescent::_tracefirst($text),
33243                                           q{_alternation_1_of_production_9_of_rule_sysibm_function},
33244                                           $tracelevel)
33245                                                 if defined $::RD_TRACE;
33246                 $_matched = 1;
33247                 last;
33248         }
33249
33250
33251         while (!$_matched && !$commit)
33252         {
33253                 
33254                 Parse::RecDescent::_trace(q{Trying production: [/CORR/]},
33255                                           Parse::RecDescent::_tracefirst($_[1]),
33256                                           q{_alternation_1_of_production_9_of_rule_sysibm_function},
33257                                           $tracelevel)
33258                                                 if defined $::RD_TRACE;
33259                 my $thisprod = $thisrule->{"prods"}[1];
33260                 $text = $_[1];
33261                 my $_savetext;
33262                 @item = (q{_alternation_1_of_production_9_of_rule_sysibm_function});
33263                 %item = (__RULE__ => q{_alternation_1_of_production_9_of_rule_sysibm_function});
33264                 my $repcount = 0;
33265
33266
33267                 Parse::RecDescent::_trace(q{Trying terminal: [/CORR/]}, Parse::RecDescent::_tracefirst($text),
33268                                           q{_alternation_1_of_production_9_of_rule_sysibm_function},
33269                                           $tracelevel)
33270                                                 if defined $::RD_TRACE;
33271                 $lastsep = "";
33272                 $expectation->is(q{})->at($text);
33273                 
33274
33275                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CORR)//)
33276                 {
33277                         
33278                         $expectation->failed();
33279                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33280                                                   Parse::RecDescent::_tracefirst($text))
33281                                         if defined $::RD_TRACE;
33282
33283                         last;
33284                 }
33285                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33286                                                 . $& . q{])},
33287                                                   Parse::RecDescent::_tracefirst($text))
33288                                         if defined $::RD_TRACE;
33289                 push @item, $item{__PATTERN1__}=$&;
33290                 
33291
33292
33293                 Parse::RecDescent::_trace(q{>>Matched production: [/CORR/]<<},
33294                                           Parse::RecDescent::_tracefirst($text),
33295                                           q{_alternation_1_of_production_9_of_rule_sysibm_function},
33296                                           $tracelevel)
33297                                                 if defined $::RD_TRACE;
33298                 $_matched = 1;
33299                 last;
33300         }
33301
33302
33303         unless ( $_matched || defined($return) || defined($score) )
33304         {
33305                 
33306
33307                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
33308                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
33309                                          Parse::RecDescent::_tracefirst($_[1]),
33310                                          q{_alternation_1_of_production_9_of_rule_sysibm_function},
33311                                          $tracelevel)
33312                                         if defined $::RD_TRACE;
33313                 return undef;
33314         }
33315         if (!defined($return) && defined($score))
33316         {
33317                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33318                                           q{_alternation_1_of_production_9_of_rule_sysibm_function},
33319                                           $tracelevel)
33320                                                 if defined $::RD_TRACE;
33321                 $return = $score_return;
33322         }
33323         splice @{$thisparser->{errors}}, $err_at;
33324         $return = $item[$#item] unless defined $return;
33325         if (defined $::RD_TRACE)
33326         {
33327                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33328                                           $return . q{])}, "",
33329                                           q{_alternation_1_of_production_9_of_rule_sysibm_function},
33330                                           $tracelevel);
33331                 Parse::RecDescent::_trace(q{(consumed: [} .
33332                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
33333                                           Parse::RecDescent::_tracefirst($text),
33334                                           , q{_alternation_1_of_production_9_of_rule_sysibm_function},
33335                                           $tracelevel)
33336         }
33337         $_[1] = $text;
33338         return $return;
33339 }
33340
33341 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33342 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_7_of_rule_sysfun
33343 {
33344         my $thisparser = $_[0];
33345         use vars q{$tracelevel};
33346         local $tracelevel = ($tracelevel||0)+1;
33347         $ERRORS = 0;
33348         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_7_of_rule_sysfun"};
33349         
33350         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_7_of_rule_sysfun]},
33351                                   Parse::RecDescent::_tracefirst($_[1]),
33352                                   q{_alternation_1_of_production_7_of_rule_sysfun},
33353                                   $tracelevel)
33354                                         if defined $::RD_TRACE;
33355
33356         
33357         my $err_at = @{$thisparser->{errors}};
33358
33359         my $score;
33360         my $score_return;
33361         my $_tok;
33362         my $return = undef;
33363         my $_matched=0;
33364         my $commit=0;
33365         my @item = ();
33366         my %item = ();
33367         my $repeating =  defined($_[2]) && $_[2];
33368         my $_noactions = defined($_[3]) && $_[3];
33369         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
33370         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
33371         my $text;
33372         my $lastsep="";
33373         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33374         $expectation->at($_[1]);
33375         
33376         my $thisline;
33377         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33378
33379         
33380
33381         while (!$_matched && !$commit)
33382         {
33383                 
33384                 Parse::RecDescent::_trace(q{Trying production: [/CEIL/i]},
33385                                           Parse::RecDescent::_tracefirst($_[1]),
33386                                           q{_alternation_1_of_production_7_of_rule_sysfun},
33387                                           $tracelevel)
33388                                                 if defined $::RD_TRACE;
33389                 my $thisprod = $thisrule->{"prods"}[0];
33390                 $text = $_[1];
33391                 my $_savetext;
33392                 @item = (q{_alternation_1_of_production_7_of_rule_sysfun});
33393                 %item = (__RULE__ => q{_alternation_1_of_production_7_of_rule_sysfun});
33394                 my $repcount = 0;
33395
33396
33397                 Parse::RecDescent::_trace(q{Trying terminal: [/CEIL/i]}, Parse::RecDescent::_tracefirst($text),
33398                                           q{_alternation_1_of_production_7_of_rule_sysfun},
33399                                           $tracelevel)
33400                                                 if defined $::RD_TRACE;
33401                 $lastsep = "";
33402                 $expectation->is(q{})->at($text);
33403                 
33404
33405                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CEIL)//i)
33406                 {
33407                         
33408                         $expectation->failed();
33409                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33410                                                   Parse::RecDescent::_tracefirst($text))
33411                                         if defined $::RD_TRACE;
33412
33413                         last;
33414                 }
33415                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33416                                                 . $& . q{])},
33417                                                   Parse::RecDescent::_tracefirst($text))
33418                                         if defined $::RD_TRACE;
33419                 push @item, $item{__PATTERN1__}=$&;
33420                 
33421
33422
33423                 Parse::RecDescent::_trace(q{>>Matched production: [/CEIL/i]<<},
33424                                           Parse::RecDescent::_tracefirst($text),
33425                                           q{_alternation_1_of_production_7_of_rule_sysfun},
33426                                           $tracelevel)
33427                                                 if defined $::RD_TRACE;
33428                 $_matched = 1;
33429                 last;
33430         }
33431
33432
33433         while (!$_matched && !$commit)
33434         {
33435                 
33436                 Parse::RecDescent::_trace(q{Trying production: [/CEILING/i]},
33437                                           Parse::RecDescent::_tracefirst($_[1]),
33438                                           q{_alternation_1_of_production_7_of_rule_sysfun},
33439                                           $tracelevel)
33440                                                 if defined $::RD_TRACE;
33441                 my $thisprod = $thisrule->{"prods"}[1];
33442                 $text = $_[1];
33443                 my $_savetext;
33444                 @item = (q{_alternation_1_of_production_7_of_rule_sysfun});
33445                 %item = (__RULE__ => q{_alternation_1_of_production_7_of_rule_sysfun});
33446                 my $repcount = 0;
33447
33448
33449                 Parse::RecDescent::_trace(q{Trying terminal: [/CEILING/i]}, Parse::RecDescent::_tracefirst($text),
33450                                           q{_alternation_1_of_production_7_of_rule_sysfun},
33451                                           $tracelevel)
33452                                                 if defined $::RD_TRACE;
33453                 $lastsep = "";
33454                 $expectation->is(q{})->at($text);
33455                 
33456
33457                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CEILING)//i)
33458                 {
33459                         
33460                         $expectation->failed();
33461                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33462                                                   Parse::RecDescent::_tracefirst($text))
33463                                         if defined $::RD_TRACE;
33464
33465                         last;
33466                 }
33467                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33468                                                 . $& . q{])},
33469                                                   Parse::RecDescent::_tracefirst($text))
33470                                         if defined $::RD_TRACE;
33471                 push @item, $item{__PATTERN1__}=$&;
33472                 
33473
33474
33475                 Parse::RecDescent::_trace(q{>>Matched production: [/CEILING/i]<<},
33476                                           Parse::RecDescent::_tracefirst($text),
33477                                           q{_alternation_1_of_production_7_of_rule_sysfun},
33478                                           $tracelevel)
33479                                                 if defined $::RD_TRACE;
33480                 $_matched = 1;
33481                 last;
33482         }
33483
33484
33485         unless ( $_matched || defined($return) || defined($score) )
33486         {
33487                 
33488
33489                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
33490                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
33491                                          Parse::RecDescent::_tracefirst($_[1]),
33492                                          q{_alternation_1_of_production_7_of_rule_sysfun},
33493                                          $tracelevel)
33494                                         if defined $::RD_TRACE;
33495                 return undef;
33496         }
33497         if (!defined($return) && defined($score))
33498         {
33499                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33500                                           q{_alternation_1_of_production_7_of_rule_sysfun},
33501                                           $tracelevel)
33502                                                 if defined $::RD_TRACE;
33503                 $return = $score_return;
33504         }
33505         splice @{$thisparser->{errors}}, $err_at;
33506         $return = $item[$#item] unless defined $return;
33507         if (defined $::RD_TRACE)
33508         {
33509                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33510                                           $return . q{])}, "",
33511                                           q{_alternation_1_of_production_7_of_rule_sysfun},
33512                                           $tracelevel);
33513                 Parse::RecDescent::_trace(q{(consumed: [} .
33514                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
33515                                           Parse::RecDescent::_tracefirst($text),
33516                                           , q{_alternation_1_of_production_7_of_rule_sysfun},
33517                                           $tracelevel)
33518         }
33519         $_[1] = $text;
33520         return $return;
33521 }
33522
33523 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33524 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::prevval_expression
33525 {
33526         my $thisparser = $_[0];
33527         use vars q{$tracelevel};
33528         local $tracelevel = ($tracelevel||0)+1;
33529         $ERRORS = 0;
33530         my $thisrule = $thisparser->{"rules"}{"prevval_expression"};
33531         
33532         Parse::RecDescent::_trace(q{Trying rule: [prevval_expression]},
33533                                   Parse::RecDescent::_tracefirst($_[1]),
33534                                   q{prevval_expression},
33535                                   $tracelevel)
33536                                         if defined $::RD_TRACE;
33537
33538         
33539         my $err_at = @{$thisparser->{errors}};
33540
33541         my $score;
33542         my $score_return;
33543         my $_tok;
33544         my $return = undef;
33545         my $_matched=0;
33546         my $commit=0;
33547         my @item = ();
33548         my %item = ();
33549         my $repeating =  defined($_[2]) && $_[2];
33550         my $_noactions = defined($_[3]) && $_[3];
33551         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
33552         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
33553         my $text;
33554         my $lastsep="";
33555         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33556         $expectation->at($_[1]);
33557         
33558         my $thisline;
33559         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33560
33561         
33562
33563         while (!$_matched && !$commit)
33564         {
33565                 
33566                 Parse::RecDescent::_trace(q{Trying production: [/PREVVAL\\s+FOR/i sequence_name]},
33567                                           Parse::RecDescent::_tracefirst($_[1]),
33568                                           q{prevval_expression},
33569                                           $tracelevel)
33570                                                 if defined $::RD_TRACE;
33571                 my $thisprod = $thisrule->{"prods"}[0];
33572                 $text = $_[1];
33573                 my $_savetext;
33574                 @item = (q{prevval_expression});
33575                 %item = (__RULE__ => q{prevval_expression});
33576                 my $repcount = 0;
33577
33578
33579                 Parse::RecDescent::_trace(q{Trying terminal: [/PREVVAL\\s+FOR/i]}, Parse::RecDescent::_tracefirst($text),
33580                                           q{prevval_expression},
33581                                           $tracelevel)
33582                                                 if defined $::RD_TRACE;
33583                 $lastsep = "";
33584                 $expectation->is(q{})->at($text);
33585                 
33586
33587                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PREVVAL\s+FOR)//i)
33588                 {
33589                         
33590                         $expectation->failed();
33591                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33592                                                   Parse::RecDescent::_tracefirst($text))
33593                                         if defined $::RD_TRACE;
33594
33595                         last;
33596                 }
33597                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33598                                                 . $& . q{])},
33599                                                   Parse::RecDescent::_tracefirst($text))
33600                                         if defined $::RD_TRACE;
33601                 push @item, $item{__PATTERN1__}=$&;
33602                 
33603
33604                 Parse::RecDescent::_trace(q{Trying subrule: [sequence_name]},
33605                                   Parse::RecDescent::_tracefirst($text),
33606                                   q{prevval_expression},
33607                                   $tracelevel)
33608                                         if defined $::RD_TRACE;
33609                 if (1) { no strict qw{refs};
33610                 $expectation->is(q{sequence_name})->at($text);
33611                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
33612                 {
33613                         
33614                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [sequence_name]>>},
33615                                                   Parse::RecDescent::_tracefirst($text),
33616                                                   q{prevval_expression},
33617                                                   $tracelevel)
33618                                                         if defined $::RD_TRACE;
33619                         $expectation->failed();
33620                         last;
33621                 }
33622                 Parse::RecDescent::_trace(q{>>Matched subrule: [sequence_name]<< (return value: [}
33623                                         . $_tok . q{]},
33624                                           
33625                                           Parse::RecDescent::_tracefirst($text),
33626                                           q{prevval_expression},
33627                                           $tracelevel)
33628                                                 if defined $::RD_TRACE;
33629                 $item{q{sequence_name}} = $_tok;
33630                 push @item, $_tok;
33631                 
33632                 }
33633
33634
33635                 Parse::RecDescent::_trace(q{>>Matched production: [/PREVVAL\\s+FOR/i sequence_name]<<},
33636                                           Parse::RecDescent::_tracefirst($text),
33637                                           q{prevval_expression},
33638                                           $tracelevel)
33639                                                 if defined $::RD_TRACE;
33640                 $_matched = 1;
33641                 last;
33642         }
33643
33644
33645         unless ( $_matched || defined($return) || defined($score) )
33646         {
33647                 
33648
33649                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
33650                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
33651                                          Parse::RecDescent::_tracefirst($_[1]),
33652                                          q{prevval_expression},
33653                                          $tracelevel)
33654                                         if defined $::RD_TRACE;
33655                 return undef;
33656         }
33657         if (!defined($return) && defined($score))
33658         {
33659                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33660                                           q{prevval_expression},
33661                                           $tracelevel)
33662                                                 if defined $::RD_TRACE;
33663                 $return = $score_return;
33664         }
33665         splice @{$thisparser->{errors}}, $err_at;
33666         $return = $item[$#item] unless defined $return;
33667         if (defined $::RD_TRACE)
33668         {
33669                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33670                                           $return . q{])}, "",
33671                                           q{prevval_expression},
33672                                           $tracelevel);
33673                 Parse::RecDescent::_trace(q{(consumed: [} .
33674                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
33675                                           Parse::RecDescent::_tracefirst($text),
33676                                           , q{prevval_expression},
33677                                           $tracelevel)
33678         }
33679         $_[1] = $text;
33680         return $return;
33681 }
33682
33683 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33684 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::where_clause
33685 {
33686         my $thisparser = $_[0];
33687         use vars q{$tracelevel};
33688         local $tracelevel = ($tracelevel||0)+1;
33689         $ERRORS = 0;
33690         my $thisrule = $thisparser->{"rules"}{"where_clause"};
33691         
33692         Parse::RecDescent::_trace(q{Trying rule: [where_clause]},
33693                                   Parse::RecDescent::_tracefirst($_[1]),
33694                                   q{where_clause},
33695                                   $tracelevel)
33696                                         if defined $::RD_TRACE;
33697
33698         
33699         my $err_at = @{$thisparser->{errors}};
33700
33701         my $score;
33702         my $score_return;
33703         my $_tok;
33704         my $return = undef;
33705         my $_matched=0;
33706         my $commit=0;
33707         my @item = ();
33708         my %item = ();
33709         my $repeating =  defined($_[2]) && $_[2];
33710         my $_noactions = defined($_[3]) && $_[3];
33711         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
33712         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
33713         my $text;
33714         my $lastsep="";
33715         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33716         $expectation->at($_[1]);
33717         
33718         my $thisline;
33719         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33720
33721         
33722
33723         while (!$_matched && !$commit)
33724         {
33725                 
33726                 Parse::RecDescent::_trace(q{Trying production: [WHERE search_condition]},
33727                                           Parse::RecDescent::_tracefirst($_[1]),
33728                                           q{where_clause},
33729                                           $tracelevel)
33730                                                 if defined $::RD_TRACE;
33731                 my $thisprod = $thisrule->{"prods"}[0];
33732                 $text = $_[1];
33733                 my $_savetext;
33734                 @item = (q{where_clause});
33735                 %item = (__RULE__ => q{where_clause});
33736                 my $repcount = 0;
33737
33738
33739                 Parse::RecDescent::_trace(q{Trying subrule: [WHERE]},
33740                                   Parse::RecDescent::_tracefirst($text),
33741                                   q{where_clause},
33742                                   $tracelevel)
33743                                         if defined $::RD_TRACE;
33744                 if (1) { no strict qw{refs};
33745                 $expectation->is(q{})->at($text);
33746                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::WHERE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
33747                 {
33748                         
33749                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [WHERE]>>},
33750                                                   Parse::RecDescent::_tracefirst($text),
33751                                                   q{where_clause},
33752                                                   $tracelevel)
33753                                                         if defined $::RD_TRACE;
33754                         $expectation->failed();
33755                         last;
33756                 }
33757                 Parse::RecDescent::_trace(q{>>Matched subrule: [WHERE]<< (return value: [}
33758                                         . $_tok . q{]},
33759                                           
33760                                           Parse::RecDescent::_tracefirst($text),
33761                                           q{where_clause},
33762                                           $tracelevel)
33763                                                 if defined $::RD_TRACE;
33764                 $item{q{WHERE}} = $_tok;
33765                 push @item, $_tok;
33766                 
33767                 }
33768
33769                 Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
33770                                   Parse::RecDescent::_tracefirst($text),
33771                                   q{where_clause},
33772                                   $tracelevel)
33773                                         if defined $::RD_TRACE;
33774                 if (1) { no strict qw{refs};
33775                 $expectation->is(q{search_condition})->at($text);
33776                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
33777                 {
33778                         
33779                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
33780                                                   Parse::RecDescent::_tracefirst($text),
33781                                                   q{where_clause},
33782                                                   $tracelevel)
33783                                                         if defined $::RD_TRACE;
33784                         $expectation->failed();
33785                         last;
33786                 }
33787                 Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
33788                                         . $_tok . q{]},
33789                                           
33790                                           Parse::RecDescent::_tracefirst($text),
33791                                           q{where_clause},
33792                                           $tracelevel)
33793                                                 if defined $::RD_TRACE;
33794                 $item{q{search_condition}} = $_tok;
33795                 push @item, $_tok;
33796                 
33797                 }
33798
33799
33800                 Parse::RecDescent::_trace(q{>>Matched production: [WHERE search_condition]<<},
33801                                           Parse::RecDescent::_tracefirst($text),
33802                                           q{where_clause},
33803                                           $tracelevel)
33804                                                 if defined $::RD_TRACE;
33805                 $_matched = 1;
33806                 last;
33807         }
33808
33809
33810         unless ( $_matched || defined($return) || defined($score) )
33811         {
33812                 
33813
33814                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
33815                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
33816                                          Parse::RecDescent::_tracefirst($_[1]),
33817                                          q{where_clause},
33818                                          $tracelevel)
33819                                         if defined $::RD_TRACE;
33820                 return undef;
33821         }
33822         if (!defined($return) && defined($score))
33823         {
33824                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33825                                           q{where_clause},
33826                                           $tracelevel)
33827                                                 if defined $::RD_TRACE;
33828                 $return = $score_return;
33829         }
33830         splice @{$thisparser->{errors}}, $err_at;
33831         $return = $item[$#item] unless defined $return;
33832         if (defined $::RD_TRACE)
33833         {
33834                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33835                                           $return . q{])}, "",
33836                                           q{where_clause},
33837                                           $tracelevel);
33838                 Parse::RecDescent::_trace(q{(consumed: [} .
33839                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
33840                                           Parse::RecDescent::_tracefirst($text),
33841                                           , q{where_clause},
33842                                           $tracelevel)
33843         }
33844         $_[1] = $text;
33845         return $return;
33846 }
33847
33848 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33849 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_start
33850 {
33851         my $thisparser = $_[0];
33852         use vars q{$tracelevel};
33853         local $tracelevel = ($tracelevel||0)+1;
33854         $ERRORS = 0;
33855         my $thisrule = $thisparser->{"rules"}{"group_start"};
33856         
33857         Parse::RecDescent::_trace(q{Trying rule: [group_start]},
33858                                   Parse::RecDescent::_tracefirst($_[1]),
33859                                   q{group_start},
33860                                   $tracelevel)
33861                                         if defined $::RD_TRACE;
33862
33863         
33864         my $err_at = @{$thisparser->{errors}};
33865
33866         my $score;
33867         my $score_return;
33868         my $_tok;
33869         my $return = undef;
33870         my $_matched=0;
33871         my $commit=0;
33872         my @item = ();
33873         my %item = ();
33874         my $repeating =  defined($_[2]) && $_[2];
33875         my $_noactions = defined($_[3]) && $_[3];
33876         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
33877         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
33878         my $text;
33879         my $lastsep="";
33880         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33881         $expectation->at($_[1]);
33882         
33883         my $thisline;
33884         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33885
33886         
33887
33888         while (!$_matched && !$commit)
33889         {
33890                 
33891                 Parse::RecDescent::_trace(q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
33892                                           Parse::RecDescent::_tracefirst($_[1]),
33893                                           q{group_start},
33894                                           $tracelevel)
33895                                                 if defined $::RD_TRACE;
33896                 my $thisprod = $thisrule->{"prods"}[0];
33897                 $text = $_[1];
33898                 my $_savetext;
33899                 @item = (q{group_start});
33900                 %item = (__RULE__ => q{group_start});
33901                 my $repcount = 0;
33902
33903
33904                 Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
33905                                           q{group_start},
33906                                           $tracelevel)
33907                                                 if defined $::RD_TRACE;
33908                 $lastsep = "";
33909                 $expectation->is(q{})->at($text);
33910                 
33911
33912                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i)
33913                 {
33914                         
33915                         $expectation->failed();
33916                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33917                                                   Parse::RecDescent::_tracefirst($text))
33918                                         if defined $::RD_TRACE;
33919
33920                         last;
33921                 }
33922                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33923                                                 . $& . q{])},
33924                                                   Parse::RecDescent::_tracefirst($text))
33925                                         if defined $::RD_TRACE;
33926                 push @item, $item{__PATTERN1__}=$&;
33927                 
33928
33929
33930                 Parse::RecDescent::_trace(q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
33931                                           Parse::RecDescent::_tracefirst($text),
33932                                           q{group_start},
33933                                           $tracelevel)
33934                                                 if defined $::RD_TRACE;
33935                 $_matched = 1;
33936                 last;
33937         }
33938
33939
33940         while (!$_matched && !$commit)
33941         {
33942                 
33943                 Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /PRECEDING/i]},
33944                                           Parse::RecDescent::_tracefirst($_[1]),
33945                                           q{group_start},
33946                                           $tracelevel)
33947                                                 if defined $::RD_TRACE;
33948                 my $thisprod = $thisrule->{"prods"}[1];
33949                 $text = $_[1];
33950                 my $_savetext;
33951                 @item = (q{group_start});
33952                 %item = (__RULE__ => q{group_start});
33953                 my $repcount = 0;
33954
33955
33956                 Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
33957                                   Parse::RecDescent::_tracefirst($text),
33958                                   q{group_start},
33959                                   $tracelevel)
33960                                         if defined $::RD_TRACE;
33961                 if (1) { no strict qw{refs};
33962                 $expectation->is(q{})->at($text);
33963                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
33964                 {
33965                         
33966                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
33967                                                   Parse::RecDescent::_tracefirst($text),
33968                                                   q{group_start},
33969                                                   $tracelevel)
33970                                                         if defined $::RD_TRACE;
33971                         $expectation->failed();
33972                         last;
33973                 }
33974                 Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
33975                                         . $_tok . q{]},
33976                                           
33977                                           Parse::RecDescent::_tracefirst($text),
33978                                           q{group_start},
33979                                           $tracelevel)
33980                                                 if defined $::RD_TRACE;
33981                 $item{q{unsigned_constant}} = $_tok;
33982                 push @item, $_tok;
33983                 
33984                 }
33985
33986                 Parse::RecDescent::_trace(q{Trying terminal: [/PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
33987                                           q{group_start},
33988                                           $tracelevel)
33989                                                 if defined $::RD_TRACE;
33990                 $lastsep = "";
33991                 $expectation->is(q{/PRECEDING/i})->at($text);
33992                 
33993
33994                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PRECEDING)//i)
33995                 {
33996                         
33997                         $expectation->failed();
33998                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33999                                                   Parse::RecDescent::_tracefirst($text))
34000                                         if defined $::RD_TRACE;
34001
34002                         last;
34003                 }
34004                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34005                                                 . $& . q{])},
34006                                                   Parse::RecDescent::_tracefirst($text))
34007                                         if defined $::RD_TRACE;
34008                 push @item, $item{__PATTERN1__}=$&;
34009                 
34010
34011
34012                 Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /PRECEDING/i]<<},
34013                                           Parse::RecDescent::_tracefirst($text),
34014                                           q{group_start},
34015                                           $tracelevel)
34016                                                 if defined $::RD_TRACE;
34017                 $_matched = 1;
34018                 last;
34019         }
34020
34021
34022         while (!$_matched && !$commit)
34023         {
34024                 
34025                 Parse::RecDescent::_trace(q{Trying production: [/CURRENT\\s+ROW/i]},
34026                                           Parse::RecDescent::_tracefirst($_[1]),
34027                                           q{group_start},
34028                                           $tracelevel)
34029                                                 if defined $::RD_TRACE;
34030                 my $thisprod = $thisrule->{"prods"}[2];
34031                 $text = $_[1];
34032                 my $_savetext;
34033                 @item = (q{group_start});
34034                 %item = (__RULE__ => q{group_start});
34035                 my $repcount = 0;
34036
34037
34038                 Parse::RecDescent::_trace(q{Trying terminal: [/CURRENT\\s+ROW/i]}, Parse::RecDescent::_tracefirst($text),
34039                                           q{group_start},
34040                                           $tracelevel)
34041                                                 if defined $::RD_TRACE;
34042                 $lastsep = "";
34043                 $expectation->is(q{})->at($text);
34044                 
34045
34046                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CURRENT\s+ROW)//i)
34047                 {
34048                         
34049                         $expectation->failed();
34050                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34051                                                   Parse::RecDescent::_tracefirst($text))
34052                                         if defined $::RD_TRACE;
34053
34054                         last;
34055                 }
34056                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34057                                                 . $& . q{])},
34058                                                   Parse::RecDescent::_tracefirst($text))
34059                                         if defined $::RD_TRACE;
34060                 push @item, $item{__PATTERN1__}=$&;
34061                 
34062
34063
34064                 Parse::RecDescent::_trace(q{>>Matched production: [/CURRENT\\s+ROW/i]<<},
34065                                           Parse::RecDescent::_tracefirst($text),
34066                                           q{group_start},
34067                                           $tracelevel)
34068                                                 if defined $::RD_TRACE;
34069                 $_matched = 1;
34070                 last;
34071         }
34072
34073
34074         unless ( $_matched || defined($return) || defined($score) )
34075         {
34076                 
34077
34078                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
34079                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
34080                                          Parse::RecDescent::_tracefirst($_[1]),
34081                                          q{group_start},
34082                                          $tracelevel)
34083                                         if defined $::RD_TRACE;
34084                 return undef;
34085         }
34086         if (!defined($return) && defined($score))
34087         {
34088                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34089                                           q{group_start},
34090                                           $tracelevel)
34091                                                 if defined $::RD_TRACE;
34092                 $return = $score_return;
34093         }
34094         splice @{$thisparser->{errors}}, $err_at;
34095         $return = $item[$#item] unless defined $return;
34096         if (defined $::RD_TRACE)
34097         {
34098                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34099                                           $return . q{])}, "",
34100                                           q{group_start},
34101                                           $tracelevel);
34102                 Parse::RecDescent::_trace(q{(consumed: [} .
34103                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
34104                                           Parse::RecDescent::_tracefirst($text),
34105                                           , q{group_start},
34106                                           $tracelevel)
34107         }
34108         $_[1] = $text;
34109         return $return;
34110 }
34111
34112 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34113 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name
34114 {
34115         my $thisparser = $_[0];
34116         use vars q{$tracelevel};
34117         local $tracelevel = ($tracelevel||0)+1;
34118         $ERRORS = 0;
34119         my $thisrule = $thisparser->{"rules"}{"correlation_name"};
34120         
34121         Parse::RecDescent::_trace(q{Trying rule: [correlation_name]},
34122                                   Parse::RecDescent::_tracefirst($_[1]),
34123                                   q{correlation_name},
34124                                   $tracelevel)
34125                                         if defined $::RD_TRACE;
34126
34127         
34128         my $err_at = @{$thisparser->{errors}};
34129
34130         my $score;
34131         my $score_return;
34132         my $_tok;
34133         my $return = undef;
34134         my $_matched=0;
34135         my $commit=0;
34136         my @item = ();
34137         my %item = ();
34138         my $repeating =  defined($_[2]) && $_[2];
34139         my $_noactions = defined($_[3]) && $_[3];
34140         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
34141         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
34142         my $text;
34143         my $lastsep="";
34144         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34145         $expectation->at($_[1]);
34146         
34147         my $thisline;
34148         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34149
34150         
34151
34152         while (!$_matched && !$commit)
34153         {
34154                 
34155                 Parse::RecDescent::_trace(q{Trying production: [NAME]},
34156                                           Parse::RecDescent::_tracefirst($_[1]),
34157                                           q{correlation_name},
34158                                           $tracelevel)
34159                                                 if defined $::RD_TRACE;
34160                 my $thisprod = $thisrule->{"prods"}[0];
34161                 $text = $_[1];
34162                 my $_savetext;
34163                 @item = (q{correlation_name});
34164                 %item = (__RULE__ => q{correlation_name});
34165                 my $repcount = 0;
34166
34167
34168                 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
34169                                   Parse::RecDescent::_tracefirst($text),
34170                                   q{correlation_name},
34171                                   $tracelevel)
34172                                         if defined $::RD_TRACE;
34173                 if (1) { no strict qw{refs};
34174                 $expectation->is(q{})->at($text);
34175                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
34176                 {
34177                         
34178                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
34179                                                   Parse::RecDescent::_tracefirst($text),
34180                                                   q{correlation_name},
34181                                                   $tracelevel)
34182                                                         if defined $::RD_TRACE;
34183                         $expectation->failed();
34184                         last;
34185                 }
34186                 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
34187                                         . $_tok . q{]},
34188                                           
34189                                           Parse::RecDescent::_tracefirst($text),
34190                                           q{correlation_name},
34191                                           $tracelevel)
34192                                                 if defined $::RD_TRACE;
34193                 $item{q{NAME}} = $_tok;
34194                 push @item, $_tok;
34195                 
34196                 }
34197
34198
34199                 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
34200                                           Parse::RecDescent::_tracefirst($text),
34201                                           q{correlation_name},
34202                                           $tracelevel)
34203                                                 if defined $::RD_TRACE;
34204                 $_matched = 1;
34205                 last;
34206         }
34207
34208
34209         unless ( $_matched || defined($return) || defined($score) )
34210         {
34211                 
34212
34213                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
34214                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
34215                                          Parse::RecDescent::_tracefirst($_[1]),
34216                                          q{correlation_name},
34217                                          $tracelevel)
34218                                         if defined $::RD_TRACE;
34219                 return undef;
34220         }
34221         if (!defined($return) && defined($score))
34222         {
34223                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34224                                           q{correlation_name},
34225                                           $tracelevel)
34226                                                 if defined $::RD_TRACE;
34227                 $return = $score_return;
34228         }
34229         splice @{$thisparser->{errors}}, $err_at;
34230         $return = $item[$#item] unless defined $return;
34231         if (defined $::RD_TRACE)
34232         {
34233                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34234                                           $return . q{])}, "",
34235                                           q{correlation_name},
34236                                           $tracelevel);
34237                 Parse::RecDescent::_trace(q{(consumed: [} .
34238                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
34239                                           Parse::RecDescent::_tracefirst($text),
34240                                           , q{correlation_name},
34241                                           $tracelevel)
34242         }
34243         $_[1] = $text;
34244         return $return;
34245 }
34246
34247 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34248 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement
34249 {
34250         my $thisparser = $_[0];
34251         use vars q{$tracelevel};
34252         local $tracelevel = ($tracelevel||0)+1;
34253         $ERRORS = 0;
34254         my $thisrule = $thisparser->{"rules"}{"SQL_procedure_statement"};
34255         
34256         Parse::RecDescent::_trace(q{Trying rule: [SQL_procedure_statement]},
34257                                   Parse::RecDescent::_tracefirst($_[1]),
34258                                   q{SQL_procedure_statement},
34259                                   $tracelevel)
34260                                         if defined $::RD_TRACE;
34261
34262         
34263         my $err_at = @{$thisparser->{errors}};
34264
34265         my $score;
34266         my $score_return;
34267         my $_tok;
34268         my $return = undef;
34269         my $_matched=0;
34270         my $commit=0;
34271         my @item = ();
34272         my %item = ();
34273         my $repeating =  defined($_[2]) && $_[2];
34274         my $_noactions = defined($_[3]) && $_[3];
34275         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
34276         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
34277         my $text;
34278         my $lastsep="";
34279         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34280         $expectation->at($_[1]);
34281         
34282         my $thisline;
34283         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34284
34285         
34286
34287         while (!$_matched && !$commit)
34288         {
34289                 
34290                 Parse::RecDescent::_trace(q{Trying production: [/[^;]*/ /(;|\\z)/]},
34291                                           Parse::RecDescent::_tracefirst($_[1]),
34292                                           q{SQL_procedure_statement},
34293                                           $tracelevel)
34294                                                 if defined $::RD_TRACE;
34295                 my $thisprod = $thisrule->{"prods"}[0];
34296                 $text = $_[1];
34297                 my $_savetext;
34298                 @item = (q{SQL_procedure_statement});
34299                 %item = (__RULE__ => q{SQL_procedure_statement});
34300                 my $repcount = 0;
34301
34302
34303                 Parse::RecDescent::_trace(q{Trying terminal: [/[^;]*/]}, Parse::RecDescent::_tracefirst($text),
34304                                           q{SQL_procedure_statement},
34305                                           $tracelevel)
34306                                                 if defined $::RD_TRACE;
34307                 $lastsep = "";
34308                 $expectation->is(q{})->at($text);
34309                 
34310
34311                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:[^;]*)//)
34312                 {
34313                         
34314                         $expectation->failed();
34315                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34316                                                   Parse::RecDescent::_tracefirst($text))
34317                                         if defined $::RD_TRACE;
34318
34319                         last;
34320                 }
34321                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34322                                                 . $& . q{])},
34323                                                   Parse::RecDescent::_tracefirst($text))
34324                                         if defined $::RD_TRACE;
34325                 push @item, $item{__PATTERN1__}=$&;
34326                 
34327
34328                 Parse::RecDescent::_trace(q{Trying terminal: [/(;|\\z)/]}, Parse::RecDescent::_tracefirst($text),
34329                                           q{SQL_procedure_statement},
34330                                           $tracelevel)
34331                                                 if defined $::RD_TRACE;
34332                 $lastsep = "";
34333                 $expectation->is(q{/(;|\\z)/})->at($text);
34334                 
34335
34336                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(;|\z))//)
34337                 {
34338                         
34339                         $expectation->failed();
34340                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34341                                                   Parse::RecDescent::_tracefirst($text))
34342                                         if defined $::RD_TRACE;
34343
34344                         last;
34345                 }
34346                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34347                                                 . $& . q{])},
34348                                                   Parse::RecDescent::_tracefirst($text))
34349                                         if defined $::RD_TRACE;
34350                 push @item, $item{__PATTERN2__}=$&;
34351                 
34352
34353                 Parse::RecDescent::_trace(q{Trying action},
34354                                           Parse::RecDescent::_tracefirst($text),
34355                                           q{SQL_procedure_statement},
34356                                           $tracelevel)
34357                                                 if defined $::RD_TRACE;
34358                 
34359
34360                 $_tok = ($_noactions) ? 0 : do { $return = $item[1] . $item[2] };
34361                 unless (defined $_tok)
34362                 {
34363                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
34364                                         if defined $::RD_TRACE;
34365                         last;
34366                 }
34367                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
34368                                           . $_tok . q{])},
34369                                           Parse::RecDescent::_tracefirst($text))
34370                                                 if defined $::RD_TRACE;
34371                 push @item, $_tok;
34372                 $item{__ACTION1__}=$_tok;
34373                 
34374
34375
34376                 Parse::RecDescent::_trace(q{>>Matched production: [/[^;]*/ /(;|\\z)/]<<},
34377                                           Parse::RecDescent::_tracefirst($text),
34378                                           q{SQL_procedure_statement},
34379                                           $tracelevel)
34380                                                 if defined $::RD_TRACE;
34381                 $_matched = 1;
34382                 last;
34383         }
34384
34385
34386         unless ( $_matched || defined($return) || defined($score) )
34387         {
34388                 
34389
34390                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
34391                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
34392                                          Parse::RecDescent::_tracefirst($_[1]),
34393                                          q{SQL_procedure_statement},
34394                                          $tracelevel)
34395                                         if defined $::RD_TRACE;
34396                 return undef;
34397         }
34398         if (!defined($return) && defined($score))
34399         {
34400                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34401                                           q{SQL_procedure_statement},
34402                                           $tracelevel)
34403                                                 if defined $::RD_TRACE;
34404                 $return = $score_return;
34405         }
34406         splice @{$thisparser->{errors}}, $err_at;
34407         $return = $item[$#item] unless defined $return;
34408         if (defined $::RD_TRACE)
34409         {
34410                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34411                                           $return . q{])}, "",
34412                                           q{SQL_procedure_statement},
34413                                           $tracelevel);
34414                 Parse::RecDescent::_trace(q{(consumed: [} .
34415                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
34416                                           Parse::RecDescent::_tracefirst($text),
34417                                           , q{SQL_procedure_statement},
34418                                           $tracelevel)
34419         }
34420         $_[1] = $text;
34421         return $return;
34422 }
34423
34424 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34425 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_between
34426 {
34427         my $thisparser = $_[0];
34428         use vars q{$tracelevel};
34429         local $tracelevel = ($tracelevel||0)+1;
34430         $ERRORS = 0;
34431         my $thisrule = $thisparser->{"rules"}{"group_between"};
34432         
34433         Parse::RecDescent::_trace(q{Trying rule: [group_between]},
34434                                   Parse::RecDescent::_tracefirst($_[1]),
34435                                   q{group_between},
34436                                   $tracelevel)
34437                                         if defined $::RD_TRACE;
34438
34439         
34440         my $err_at = @{$thisparser->{errors}};
34441
34442         my $score;
34443         my $score_return;
34444         my $_tok;
34445         my $return = undef;
34446         my $_matched=0;
34447         my $commit=0;
34448         my @item = ();
34449         my %item = ();
34450         my $repeating =  defined($_[2]) && $_[2];
34451         my $_noactions = defined($_[3]) && $_[3];
34452         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
34453         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
34454         my $text;
34455         my $lastsep="";
34456         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34457         $expectation->at($_[1]);
34458         
34459         my $thisline;
34460         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34461
34462         
34463
34464         while (!$_matched && !$commit)
34465         {
34466                 
34467                 Parse::RecDescent::_trace(q{Trying production: [/BETWEEN/i group_bound1 /AND/i group_bound2]},
34468                                           Parse::RecDescent::_tracefirst($_[1]),
34469                                           q{group_between},
34470                                           $tracelevel)
34471                                                 if defined $::RD_TRACE;
34472                 my $thisprod = $thisrule->{"prods"}[0];
34473                 $text = $_[1];
34474                 my $_savetext;
34475                 @item = (q{group_between});
34476                 %item = (__RULE__ => q{group_between});
34477                 my $repcount = 0;
34478
34479
34480                 Parse::RecDescent::_trace(q{Trying terminal: [/BETWEEN/i]}, Parse::RecDescent::_tracefirst($text),
34481                                           q{group_between},
34482                                           $tracelevel)
34483                                                 if defined $::RD_TRACE;
34484                 $lastsep = "";
34485                 $expectation->is(q{})->at($text);
34486                 
34487
34488                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:BETWEEN)//i)
34489                 {
34490                         
34491                         $expectation->failed();
34492                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34493                                                   Parse::RecDescent::_tracefirst($text))
34494                                         if defined $::RD_TRACE;
34495
34496                         last;
34497                 }
34498                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34499                                                 . $& . q{])},
34500                                                   Parse::RecDescent::_tracefirst($text))
34501                                         if defined $::RD_TRACE;
34502                 push @item, $item{__PATTERN1__}=$&;
34503                 
34504
34505                 Parse::RecDescent::_trace(q{Trying subrule: [group_bound1]},
34506                                   Parse::RecDescent::_tracefirst($text),
34507                                   q{group_between},
34508                                   $tracelevel)
34509                                         if defined $::RD_TRACE;
34510                 if (1) { no strict qw{refs};
34511                 $expectation->is(q{group_bound1})->at($text);
34512                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound1($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
34513                 {
34514                         
34515                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_bound1]>>},
34516                                                   Parse::RecDescent::_tracefirst($text),
34517                                                   q{group_between},
34518                                                   $tracelevel)
34519                                                         if defined $::RD_TRACE;
34520                         $expectation->failed();
34521                         last;
34522                 }
34523                 Parse::RecDescent::_trace(q{>>Matched subrule: [group_bound1]<< (return value: [}
34524                                         . $_tok . q{]},
34525                                           
34526                                           Parse::RecDescent::_tracefirst($text),
34527                                           q{group_between},
34528                                           $tracelevel)
34529                                                 if defined $::RD_TRACE;
34530                 $item{q{group_bound1}} = $_tok;
34531                 push @item, $_tok;
34532                 
34533                 }
34534
34535                 Parse::RecDescent::_trace(q{Trying terminal: [/AND/i]}, Parse::RecDescent::_tracefirst($text),
34536                                           q{group_between},
34537                                           $tracelevel)
34538                                                 if defined $::RD_TRACE;
34539                 $lastsep = "";
34540                 $expectation->is(q{/AND/i})->at($text);
34541                 
34542
34543                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AND)//i)
34544                 {
34545                         
34546                         $expectation->failed();
34547                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34548                                                   Parse::RecDescent::_tracefirst($text))
34549                                         if defined $::RD_TRACE;
34550
34551                         last;
34552                 }
34553                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34554                                                 . $& . q{])},
34555                                                   Parse::RecDescent::_tracefirst($text))
34556                                         if defined $::RD_TRACE;
34557                 push @item, $item{__PATTERN2__}=$&;
34558                 
34559
34560                 Parse::RecDescent::_trace(q{Trying subrule: [group_bound2]},
34561                                   Parse::RecDescent::_tracefirst($text),
34562                                   q{group_between},
34563                                   $tracelevel)
34564                                         if defined $::RD_TRACE;
34565                 if (1) { no strict qw{refs};
34566                 $expectation->is(q{group_bound2})->at($text);
34567                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound2($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
34568                 {
34569                         
34570                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_bound2]>>},
34571                                                   Parse::RecDescent::_tracefirst($text),
34572                                                   q{group_between},
34573                                                   $tracelevel)
34574                                                         if defined $::RD_TRACE;
34575                         $expectation->failed();
34576                         last;
34577                 }
34578                 Parse::RecDescent::_trace(q{>>Matched subrule: [group_bound2]<< (return value: [}
34579                                         . $_tok . q{]},
34580                                           
34581                                           Parse::RecDescent::_tracefirst($text),
34582                                           q{group_between},
34583                                           $tracelevel)
34584                                                 if defined $::RD_TRACE;
34585                 $item{q{group_bound2}} = $_tok;
34586                 push @item, $_tok;
34587                 
34588                 }
34589
34590
34591                 Parse::RecDescent::_trace(q{>>Matched production: [/BETWEEN/i group_bound1 /AND/i group_bound2]<<},
34592                                           Parse::RecDescent::_tracefirst($text),
34593                                           q{group_between},
34594                                           $tracelevel)
34595                                                 if defined $::RD_TRACE;
34596                 $_matched = 1;
34597                 last;
34598         }
34599
34600
34601         unless ( $_matched || defined($return) || defined($score) )
34602         {
34603                 
34604
34605                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
34606                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
34607                                          Parse::RecDescent::_tracefirst($_[1]),
34608                                          q{group_between},
34609                                          $tracelevel)
34610                                         if defined $::RD_TRACE;
34611                 return undef;
34612         }
34613         if (!defined($return) && defined($score))
34614         {
34615                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34616                                           q{group_between},
34617                                           $tracelevel)
34618                                                 if defined $::RD_TRACE;
34619                 $return = $score_return;
34620         }
34621         splice @{$thisparser->{errors}}, $err_at;
34622         $return = $item[$#item] unless defined $return;
34623         if (defined $::RD_TRACE)
34624         {
34625                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34626                                           $return . q{])}, "",
34627                                           q{group_between},
34628                                           $tracelevel);
34629                 Parse::RecDescent::_trace(q{(consumed: [} .
34630                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
34631                                           Parse::RecDescent::_tracefirst($text),
34632                                           , q{group_between},
34633                                           $tracelevel)
34634         }
34635         $_[1] = $text;
34636         return $return;
34637 }
34638
34639 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34640 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::nextval_expression
34641 {
34642         my $thisparser = $_[0];
34643         use vars q{$tracelevel};
34644         local $tracelevel = ($tracelevel||0)+1;
34645         $ERRORS = 0;
34646         my $thisrule = $thisparser->{"rules"}{"nextval_expression"};
34647         
34648         Parse::RecDescent::_trace(q{Trying rule: [nextval_expression]},
34649                                   Parse::RecDescent::_tracefirst($_[1]),
34650                                   q{nextval_expression},
34651                                   $tracelevel)
34652                                         if defined $::RD_TRACE;
34653
34654         
34655         my $err_at = @{$thisparser->{errors}};
34656
34657         my $score;
34658         my $score_return;
34659         my $_tok;
34660         my $return = undef;
34661         my $_matched=0;
34662         my $commit=0;
34663         my @item = ();
34664         my %item = ();
34665         my $repeating =  defined($_[2]) && $_[2];
34666         my $_noactions = defined($_[3]) && $_[3];
34667         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
34668         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
34669         my $text;
34670         my $lastsep="";
34671         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34672         $expectation->at($_[1]);
34673         
34674         my $thisline;
34675         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34676
34677         
34678
34679         while (!$_matched && !$commit)
34680         {
34681                 
34682                 Parse::RecDescent::_trace(q{Trying production: [/NEXTVAL\\s+FOR/i sequence_name]},
34683                                           Parse::RecDescent::_tracefirst($_[1]),
34684                                           q{nextval_expression},
34685                                           $tracelevel)
34686                                                 if defined $::RD_TRACE;
34687                 my $thisprod = $thisrule->{"prods"}[0];
34688                 $text = $_[1];
34689                 my $_savetext;
34690                 @item = (q{nextval_expression});
34691                 %item = (__RULE__ => q{nextval_expression});
34692                 my $repcount = 0;
34693
34694
34695                 Parse::RecDescent::_trace(q{Trying terminal: [/NEXTVAL\\s+FOR/i]}, Parse::RecDescent::_tracefirst($text),
34696                                           q{nextval_expression},
34697                                           $tracelevel)
34698                                                 if defined $::RD_TRACE;
34699                 $lastsep = "";
34700                 $expectation->is(q{})->at($text);
34701                 
34702
34703                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NEXTVAL\s+FOR)//i)
34704                 {
34705                         
34706                         $expectation->failed();
34707                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34708                                                   Parse::RecDescent::_tracefirst($text))
34709                                         if defined $::RD_TRACE;
34710
34711                         last;
34712                 }
34713                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34714                                                 . $& . q{])},
34715                                                   Parse::RecDescent::_tracefirst($text))
34716                                         if defined $::RD_TRACE;
34717                 push @item, $item{__PATTERN1__}=$&;
34718                 
34719
34720                 Parse::RecDescent::_trace(q{Trying subrule: [sequence_name]},
34721                                   Parse::RecDescent::_tracefirst($text),
34722                                   q{nextval_expression},
34723                                   $tracelevel)
34724                                         if defined $::RD_TRACE;
34725                 if (1) { no strict qw{refs};
34726                 $expectation->is(q{sequence_name})->at($text);
34727                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
34728                 {
34729                         
34730                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [sequence_name]>>},
34731                                                   Parse::RecDescent::_tracefirst($text),
34732                                                   q{nextval_expression},
34733                                                   $tracelevel)
34734                                                         if defined $::RD_TRACE;
34735                         $expectation->failed();
34736                         last;
34737                 }
34738                 Parse::RecDescent::_trace(q{>>Matched subrule: [sequence_name]<< (return value: [}
34739                                         . $_tok . q{]},
34740                                           
34741                                           Parse::RecDescent::_tracefirst($text),
34742                                           q{nextval_expression},
34743                                           $tracelevel)
34744                                                 if defined $::RD_TRACE;
34745                 $item{q{sequence_name}} = $_tok;
34746                 push @item, $_tok;
34747                 
34748                 }
34749
34750
34751                 Parse::RecDescent::_trace(q{>>Matched production: [/NEXTVAL\\s+FOR/i sequence_name]<<},
34752                                           Parse::RecDescent::_tracefirst($text),
34753                                           q{nextval_expression},
34754                                           $tracelevel)
34755                                                 if defined $::RD_TRACE;
34756                 $_matched = 1;
34757                 last;
34758         }
34759
34760
34761         unless ( $_matched || defined($return) || defined($score) )
34762         {
34763                 
34764
34765                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
34766                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
34767                                          Parse::RecDescent::_tracefirst($_[1]),
34768                                          q{nextval_expression},
34769                                          $tracelevel)
34770                                         if defined $::RD_TRACE;
34771                 return undef;
34772         }
34773         if (!defined($return) && defined($score))
34774         {
34775                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34776                                           q{nextval_expression},
34777                                           $tracelevel)
34778                                                 if defined $::RD_TRACE;
34779                 $return = $score_return;
34780         }
34781         splice @{$thisparser->{errors}}, $err_at;
34782         $return = $item[$#item] unless defined $return;
34783         if (defined $::RD_TRACE)
34784         {
34785                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34786                                           $return . q{])}, "",
34787                                           q{nextval_expression},
34788                                           $tracelevel);
34789                 Parse::RecDescent::_trace(q{(consumed: [} .
34790                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
34791                                           Parse::RecDescent::_tracefirst($text),
34792                                           , q{nextval_expression},
34793                                           $tracelevel)
34794         }
34795         $_[1] = $text;
34796         return $return;
34797 }
34798
34799 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34800 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::desc_option
34801 {
34802         my $thisparser = $_[0];
34803         use vars q{$tracelevel};
34804         local $tracelevel = ($tracelevel||0)+1;
34805         $ERRORS = 0;
34806         my $thisrule = $thisparser->{"rules"}{"desc_option"};
34807         
34808         Parse::RecDescent::_trace(q{Trying rule: [desc_option]},
34809                                   Parse::RecDescent::_tracefirst($_[1]),
34810                                   q{desc_option},
34811                                   $tracelevel)
34812                                         if defined $::RD_TRACE;
34813
34814         
34815         my $err_at = @{$thisparser->{errors}};
34816
34817         my $score;
34818         my $score_return;
34819         my $_tok;
34820         my $return = undef;
34821         my $_matched=0;
34822         my $commit=0;
34823         my @item = ();
34824         my %item = ();
34825         my $repeating =  defined($_[2]) && $_[2];
34826         my $_noactions = defined($_[3]) && $_[3];
34827         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
34828         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
34829         my $text;
34830         my $lastsep="";
34831         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34832         $expectation->at($_[1]);
34833         
34834         my $thisline;
34835         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34836
34837         
34838
34839         while (!$_matched && !$commit)
34840         {
34841                 
34842                 Parse::RecDescent::_trace(q{Trying production: [/DESC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
34843                                           Parse::RecDescent::_tracefirst($_[1]),
34844                                           q{desc_option},
34845                                           $tracelevel)
34846                                                 if defined $::RD_TRACE;
34847                 my $thisprod = $thisrule->{"prods"}[0];
34848                 $text = $_[1];
34849                 my $_savetext;
34850                 @item = (q{desc_option});
34851                 %item = (__RULE__ => q{desc_option});
34852                 my $repcount = 0;
34853
34854
34855                 Parse::RecDescent::_trace(q{Trying terminal: [/DESC/i]}, Parse::RecDescent::_tracefirst($text),
34856                                           q{desc_option},
34857                                           $tracelevel)
34858                                                 if defined $::RD_TRACE;
34859                 $lastsep = "";
34860                 $expectation->is(q{})->at($text);
34861                 
34862
34863                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DESC)//i)
34864                 {
34865                         
34866                         $expectation->failed();
34867                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34868                                                   Parse::RecDescent::_tracefirst($text))
34869                                         if defined $::RD_TRACE;
34870
34871                         last;
34872                 }
34873                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34874                                                 . $& . q{])},
34875                                                   Parse::RecDescent::_tracefirst($text))
34876                                         if defined $::RD_TRACE;
34877                 push @item, $item{__PATTERN1__}=$&;
34878                 
34879
34880                 Parse::RecDescent::_trace(q{Trying repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
34881                                   Parse::RecDescent::_tracefirst($text),
34882                                   q{desc_option},
34883                                   $tracelevel)
34884                                         if defined $::RD_TRACE;
34885                 $expectation->is(q{/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i})->at($text);
34886                 
34887                 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))) 
34888                 {
34889                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]>>},
34890                                                   Parse::RecDescent::_tracefirst($text),
34891                                                   q{desc_option},
34892                                                   $tracelevel)
34893                                                         if defined $::RD_TRACE;
34894                         last;
34895                 }
34896                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_desc_option]<< (}
34897                                         . @$_tok . q{ times)},
34898                                           
34899                                           Parse::RecDescent::_tracefirst($text),
34900                                           q{desc_option},
34901                                           $tracelevel)
34902                                                 if defined $::RD_TRACE;
34903                 $item{q{_alternation_1_of_production_1_of_rule_desc_option(?)}} = $_tok;
34904                 push @item, $_tok;
34905                 
34906
34907
34908
34909                 Parse::RecDescent::_trace(q{>>Matched production: [/DESC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]<<},
34910                                           Parse::RecDescent::_tracefirst($text),
34911                                           q{desc_option},
34912                                           $tracelevel)
34913                                                 if defined $::RD_TRACE;
34914                 $_matched = 1;
34915                 last;
34916         }
34917
34918
34919         unless ( $_matched || defined($return) || defined($score) )
34920         {
34921                 
34922
34923                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
34924                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
34925                                          Parse::RecDescent::_tracefirst($_[1]),
34926                                          q{desc_option},
34927                                          $tracelevel)
34928                                         if defined $::RD_TRACE;
34929                 return undef;
34930         }
34931         if (!defined($return) && defined($score))
34932         {
34933                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34934                                           q{desc_option},
34935                                           $tracelevel)
34936                                                 if defined $::RD_TRACE;
34937                 $return = $score_return;
34938         }
34939         splice @{$thisparser->{errors}}, $err_at;
34940         $return = $item[$#item] unless defined $return;
34941         if (defined $::RD_TRACE)
34942         {
34943                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34944                                           $return . q{])}, "",
34945                                           q{desc_option},
34946                                           $tracelevel);
34947                 Parse::RecDescent::_trace(q{(consumed: [} .
34948                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
34949                                           Parse::RecDescent::_tracefirst($text),
34950                                           , q{desc_option},
34951                                           $tracelevel)
34952         }
34953         $_[1] = $text;
34954         return $return;
34955 }
34956
34957 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34958 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list
34959 {
34960         my $thisparser = $_[0];
34961         use vars q{$tracelevel};
34962         local $tracelevel = ($tracelevel||0)+1;
34963         $ERRORS = 0;
34964         my $thisrule = $thisparser->{"rules"}{"column_list"};
34965         
34966         Parse::RecDescent::_trace(q{Trying rule: [column_list]},
34967                                   Parse::RecDescent::_tracefirst($_[1]),
34968                                   q{column_list},
34969                                   $tracelevel)
34970                                         if defined $::RD_TRACE;
34971
34972         
34973         my $err_at = @{$thisparser->{errors}};
34974
34975         my $score;
34976         my $score_return;
34977         my $_tok;
34978         my $return = undef;
34979         my $_matched=0;
34980         my $commit=0;
34981         my @item = ();
34982         my %item = ();
34983         my $repeating =  defined($_[2]) && $_[2];
34984         my $_noactions = defined($_[3]) && $_[3];
34985         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
34986         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
34987         my $text;
34988         my $lastsep="";
34989         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34990         $expectation->at($_[1]);
34991         
34992         my $thisline;
34993         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34994
34995         
34996
34997         while (!$_matched && !$commit)
34998         {
34999                 
35000                 Parse::RecDescent::_trace(q{Trying production: ['(' <leftop: column_name /,/ column_name> ')']},
35001                                           Parse::RecDescent::_tracefirst($_[1]),
35002                                           q{column_list},
35003                                           $tracelevel)
35004                                                 if defined $::RD_TRACE;
35005                 my $thisprod = $thisrule->{"prods"}[0];
35006                 $text = $_[1];
35007                 my $_savetext;
35008                 @item = (q{column_list});
35009                 %item = (__RULE__ => q{column_list});
35010                 my $repcount = 0;
35011
35012
35013                 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
35014                                           Parse::RecDescent::_tracefirst($text),
35015                                           q{column_list},
35016                                           $tracelevel)
35017                                                 if defined $::RD_TRACE;
35018                 $lastsep = "";
35019                 $expectation->is(q{})->at($text);
35020                 
35021
35022                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
35023                 {
35024                         
35025                         $expectation->failed();
35026                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
35027                                                   Parse::RecDescent::_tracefirst($text))
35028                                                         if defined $::RD_TRACE;
35029                         last;
35030                 }
35031                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35032                                                 . $& . q{])},
35033                                                   Parse::RecDescent::_tracefirst($text))
35034                                                         if defined $::RD_TRACE;
35035                 push @item, $item{__STRING1__}=$&;
35036                 
35037
35038                 Parse::RecDescent::_trace(q{Trying operator: [<leftop: column_name /,/ column_name>]},
35039                                   Parse::RecDescent::_tracefirst($text),
35040                                   q{column_list},
35041                                   $tracelevel)
35042                                         if defined $::RD_TRACE;
35043                 $expectation->is(q{<leftop: column_name /,/ column_name>})->at($text);
35044
35045                 $_tok = undef;
35046                 OPLOOP: while (1)
35047                 {
35048                   $repcount = 0;
35049                   my  @item;
35050                   
35051                   # MATCH LEFTARG
35052                   
35053                 Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
35054                                   Parse::RecDescent::_tracefirst($text),
35055                                   q{column_list},
35056                                   $tracelevel)
35057                                         if defined $::RD_TRACE;
35058                 if (1) { no strict qw{refs};
35059                 $expectation->is(q{column_name})->at($text);
35060                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
35061                 {
35062                         
35063                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
35064                                                   Parse::RecDescent::_tracefirst($text),
35065                                                   q{column_list},
35066                                                   $tracelevel)
35067                                                         if defined $::RD_TRACE;
35068                         $expectation->failed();
35069                         last;
35070                 }
35071                 Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
35072                                         . $_tok . q{]},
35073                                           
35074                                           Parse::RecDescent::_tracefirst($text),
35075                                           q{column_list},
35076                                           $tracelevel)
35077                                                 if defined $::RD_TRACE;
35078                 $item{q{column_name}} = $_tok;
35079                 push @item, $_tok;
35080                 
35081                 }
35082
35083
35084                   $repcount++;
35085
35086                   my $savetext = $text;
35087                   my $backtrack;
35088
35089                   # MATCH (OP RIGHTARG)(s)
35090                   while ($repcount < 100000000)
35091                   {
35092                         $backtrack = 0;
35093                         
35094                 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
35095                                           q{column_list},
35096                                           $tracelevel)
35097                                                 if defined $::RD_TRACE;
35098                 $lastsep = "";
35099                 $expectation->is(q{/,/})->at($text);
35100                 
35101
35102                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
35103                 {
35104                         
35105                         $expectation->failed();
35106                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
35107                                                   Parse::RecDescent::_tracefirst($text))
35108                                         if defined $::RD_TRACE;
35109
35110                         last;
35111                 }
35112                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35113                                                 . $& . q{])},
35114                                                   Parse::RecDescent::_tracefirst($text))
35115                                         if defined $::RD_TRACE;
35116                 push @item, $item{__PATTERN1__}=$&;
35117                 
35118
35119                         pop @item;
35120                         if (defined $1) {push @item, $item{'column_name(s)'}=$1; $backtrack=1;}
35121                         
35122                 Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
35123                                   Parse::RecDescent::_tracefirst($text),
35124                                   q{column_list},
35125                                   $tracelevel)
35126                                         if defined $::RD_TRACE;
35127                 if (1) { no strict qw{refs};
35128                 $expectation->is(q{column_name})->at($text);
35129                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
35130                 {
35131                         
35132                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
35133                                                   Parse::RecDescent::_tracefirst($text),
35134                                                   q{column_list},
35135                                                   $tracelevel)
35136                                                         if defined $::RD_TRACE;
35137                         $expectation->failed();
35138                         last;
35139                 }
35140                 Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
35141                                         . $_tok . q{]},
35142                                           
35143                                           Parse::RecDescent::_tracefirst($text),
35144                                           q{column_list},
35145                                           $tracelevel)
35146                                                 if defined $::RD_TRACE;
35147                 $item{q{column_name}} = $_tok;
35148                 push @item, $_tok;
35149                 
35150                 }
35151
35152                         $savetext = $text;
35153                         $repcount++;
35154                   }
35155                   $text = $savetext;
35156                   pop @item if $backtrack;
35157
35158                   unless (@item) { undef $_tok; last }
35159                   $_tok = [ @item ];
35160                   last;
35161                 } 
35162
35163                 unless ($repcount>=1)
35164                 {
35165                         Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: column_name /,/ column_name>]>>},
35166                                                   Parse::RecDescent::_tracefirst($text),
35167                                                   q{column_list},
35168                                                   $tracelevel)
35169                                                         if defined $::RD_TRACE;
35170                         $expectation->failed();
35171                         last;
35172                 }
35173                 Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: column_name /,/ column_name>]<< (return value: [}
35174                                           . qq{@{$_tok||[]}} . q{]},
35175                                           Parse::RecDescent::_tracefirst($text),
35176                                           q{column_list},
35177                                           $tracelevel)
35178                                                 if defined $::RD_TRACE;
35179
35180                 push @item, $item{'column_name(s)'}=$_tok||[];
35181
35182
35183                 Parse::RecDescent::_trace(q{Trying terminal: [')']},
35184                                           Parse::RecDescent::_tracefirst($text),
35185                                           q{column_list},
35186                                           $tracelevel)
35187                                                 if defined $::RD_TRACE;
35188                 $lastsep = "";
35189                 $expectation->is(q{')'})->at($text);
35190                 
35191
35192                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
35193                 {
35194                         
35195                         $expectation->failed();
35196                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
35197                                                   Parse::RecDescent::_tracefirst($text))
35198                                                         if defined $::RD_TRACE;
35199                         last;
35200                 }
35201                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35202                                                 . $& . q{])},
35203                                                   Parse::RecDescent::_tracefirst($text))
35204                                                         if defined $::RD_TRACE;
35205                 push @item, $item{__STRING2__}=$&;
35206                 
35207
35208                 Parse::RecDescent::_trace(q{Trying action},
35209                                           Parse::RecDescent::_tracefirst($text),
35210                                           q{column_list},
35211                                           $tracelevel)
35212                                                 if defined $::RD_TRACE;
35213                 
35214
35215                 $_tok = ($_noactions) ? 0 : do {
35216     $return = join(' ', '(', @{$item[2]}, ')');
35217 };
35218                 unless (defined $_tok)
35219                 {
35220                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
35221                                         if defined $::RD_TRACE;
35222                         last;
35223                 }
35224                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
35225                                           . $_tok . q{])},
35226                                           Parse::RecDescent::_tracefirst($text))
35227                                                 if defined $::RD_TRACE;
35228                 push @item, $_tok;
35229                 $item{__ACTION1__}=$_tok;
35230                 
35231
35232
35233                 Parse::RecDescent::_trace(q{>>Matched production: ['(' <leftop: column_name /,/ column_name> ')']<<},
35234                                           Parse::RecDescent::_tracefirst($text),
35235                                           q{column_list},
35236                                           $tracelevel)
35237                                                 if defined $::RD_TRACE;
35238                 $_matched = 1;
35239                 last;
35240         }
35241
35242
35243         unless ( $_matched || defined($return) || defined($score) )
35244         {
35245                 
35246
35247                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
35248                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
35249                                          Parse::RecDescent::_tracefirst($_[1]),
35250                                          q{column_list},
35251                                          $tracelevel)
35252                                         if defined $::RD_TRACE;
35253                 return undef;
35254         }
35255         if (!defined($return) && defined($score))
35256         {
35257                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
35258                                           q{column_list},
35259                                           $tracelevel)
35260                                                 if defined $::RD_TRACE;
35261                 $return = $score_return;
35262         }
35263         splice @{$thisparser->{errors}}, $err_at;
35264         $return = $item[$#item] unless defined $return;
35265         if (defined $::RD_TRACE)
35266         {
35267                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
35268                                           $return . q{])}, "",
35269                                           q{column_list},
35270                                           $tracelevel);
35271                 Parse::RecDescent::_trace(q{(consumed: [} .
35272                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
35273                                           Parse::RecDescent::_tracefirst($text),
35274                                           , q{column_list},
35275                                           $tracelevel)
35276         }
35277         $_[1] = $text;
35278         return $return;
35279 }
35280
35281 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
35282 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_63_of_rule_sysibm_function
35283 {
35284         my $thisparser = $_[0];
35285         use vars q{$tracelevel};
35286         local $tracelevel = ($tracelevel||0)+1;
35287         $ERRORS = 0;
35288         my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_63_of_rule_sysibm_function"};
35289         
35290         Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_63_of_rule_sysibm_function]},
35291                                   Parse::RecDescent::_tracefirst($_[1]),
35292                                   q{_alternation_1_of_production_63_of_rule_sysibm_function},
35293                                   $tracelevel)
35294                                         if defined $::RD_TRACE;
35295
35296         
35297         my $err_at = @{$thisparser->{errors}};
35298
35299         my $score;
35300         my $score_return;
35301         my $_tok;
35302         my $return = undef;
35303         my $_matched=0;
35304         my $commit=0;
35305         my @item = ();
35306         my %item = ();
35307         my $repeating =  defined($_[2]) && $_[2];
35308         my $_noactions = defined($_[3]) && $_[3];
35309         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
35310         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
35311         my $text;
35312         my $lastsep="";
35313         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
35314         $expectation->at($_[1]);
35315         
35316         my $thisline;
35317         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
35318
35319         
35320
35321         while (!$_matched && !$commit)
35322         {
35323                 
35324                 Parse::RecDescent::_trace(q{Trying production: [/REGR_INTERCEPT/i]},
35325                                           Parse::RecDescent::_tracefirst($_[1]),
35326                                           q{_alternation_1_of_production_63_of_rule_sysibm_function},
35327                                           $tracelevel)
35328                                                 if defined $::RD_TRACE;
35329                 my $thisprod = $thisrule->{"prods"}[0];
35330                 $text = $_[1];
35331                 my $_savetext;
35332                 @item = (q{_alternation_1_of_production_63_of_rule_sysibm_function});
35333                 %item = (__RULE__ => q{_alternation_1_of_production_63_of_rule_sysibm_function});
35334                 my $repcount = 0;
35335
35336
35337                 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_INTERCEPT/i]}, Parse::RecDescent::_tracefirst($text),
35338                                           q{_alternation_1_of_production_63_of_rule_sysibm_function},
35339                                           $tracelevel)
35340                                                 if defined $::RD_TRACE;
35341                 $lastsep = "";
35342                 $expectation->is(q{})->at($text);
35343                 
35344
35345                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_INTERCEPT)//i)
35346                 {
35347                         
35348                         $expectation->failed();
35349                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
35350                                                   Parse::RecDescent::_tracefirst($text))
35351                                         if defined $::RD_TRACE;
35352
35353                         last;
35354                 }
35355                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35356                                                 . $& . q{])},
35357                                                   Parse::RecDescent::_tracefirst($text))
35358                                         if defined $::RD_TRACE;
35359                 push @item, $item{__PATTERN1__}=$&;
35360                 
35361
35362
35363                 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_INTERCEPT/i]<<},
35364                                           Parse::RecDescent::_tracefirst($text),
35365                                           q{_alternation_1_of_production_63_of_rule_sysibm_function},
35366                                           $tracelevel)
35367                                                 if defined $::RD_TRACE;
35368                 $_matched = 1;
35369                 last;
35370         }
35371
35372
35373         while (!$_matched && !$commit)
35374         {
35375                 
35376                 Parse::RecDescent::_trace(q{Trying production: [/REGR_ICPT/i]},
35377                                           Parse::RecDescent::_tracefirst($_[1]),
35378                                           q{_alternation_1_of_production_63_of_rule_sysibm_function},
35379                                           $tracelevel)
35380                                                 if defined $::RD_TRACE;
35381                 my $thisprod = $thisrule->{"prods"}[1];
35382                 $text = $_[1];
35383                 my $_savetext;
35384                 @item = (q{_alternation_1_of_production_63_of_rule_sysibm_function});
35385                 %item = (__RULE__ => q{_alternation_1_of_production_63_of_rule_sysibm_function});
35386                 my $repcount = 0;
35387
35388
35389                 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_ICPT/i]}, Parse::RecDescent::_tracefirst($text),
35390                                           q{_alternation_1_of_production_63_of_rule_sysibm_function},
35391                                           $tracelevel)
35392                                                 if defined $::RD_TRACE;
35393                 $lastsep = "";
35394                 $expectation->is(q{})->at($text);
35395                 
35396
35397                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_ICPT)//i)
35398                 {
35399                         
35400                         $expectation->failed();
35401                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
35402                                                   Parse::RecDescent::_tracefirst($text))
35403                                         if defined $::RD_TRACE;
35404
35405                         last;
35406                 }
35407                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35408                                                 . $& . q{])},
35409                                                   Parse::RecDescent::_tracefirst($text))
35410                                         if defined $::RD_TRACE;
35411                 push @item, $item{__PATTERN1__}=$&;
35412                 
35413
35414
35415                 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_ICPT/i]<<},
35416                                           Parse::RecDescent::_tracefirst($text),
35417                                           q{_alternation_1_of_production_63_of_rule_sysibm_function},
35418                                           $tracelevel)
35419                                                 if defined $::RD_TRACE;
35420                 $_matched = 1;
35421                 last;
35422         }
35423
35424
35425         unless ( $_matched || defined($return) || defined($score) )
35426         {
35427                 
35428
35429                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
35430                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
35431                                          Parse::RecDescent::_tracefirst($_[1]),
35432                                          q{_alternation_1_of_production_63_of_rule_sysibm_function},
35433                                          $tracelevel)
35434                                         if defined $::RD_TRACE;
35435                 return undef;
35436         }
35437         if (!defined($return) && defined($score))
35438         {
35439                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
35440                                           q{_alternation_1_of_production_63_of_rule_sysibm_function},
35441                                           $tracelevel)
35442                                                 if defined $::RD_TRACE;
35443                 $return = $score_return;
35444         }
35445         splice @{$thisparser->{errors}}, $err_at;
35446         $return = $item[$#item] unless defined $return;
35447         if (defined $::RD_TRACE)
35448         {
35449                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
35450                                           $return . q{])}, "",
35451                                           q{_alternation_1_of_production_63_of_rule_sysibm_function},
35452                                           $tracelevel);
35453                 Parse::RecDescent::_trace(q{(consumed: [} .
35454                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
35455                                           Parse::RecDescent::_tracefirst($text),
35456                                           , q{_alternation_1_of_production_63_of_rule_sysibm_function},
35457                                           $tracelevel)
35458         }
35459         $_[1] = $text;
35460         return $return;
35461 }
35462
35463 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
35464 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::dereference_operation
35465 {
35466         my $thisparser = $_[0];
35467         use vars q{$tracelevel};
35468         local $tracelevel = ($tracelevel||0)+1;
35469         $ERRORS = 0;
35470         my $thisrule = $thisparser->{"rules"}{"dereference_operation"};
35471         
35472         Parse::RecDescent::_trace(q{Trying rule: [dereference_operation]},
35473                                   Parse::RecDescent::_tracefirst($_[1]),
35474                                   q{dereference_operation},
35475                                   $tracelevel)
35476                                         if defined $::RD_TRACE;
35477
35478         
35479         my $err_at = @{$thisparser->{errors}};
35480
35481         my $score;
35482         my $score_return;
35483         my $_tok;
35484         my $return = undef;
35485         my $_matched=0;
35486         my $commit=0;
35487         my @item = ();
35488         my %item = ();
35489         my $repeating =  defined($_[2]) && $_[2];
35490         my $_noactions = defined($_[3]) && $_[3];
35491         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
35492         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
35493         my $text;
35494         my $lastsep="";
35495         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
35496         $expectation->at($_[1]);
35497         
35498         my $thisline;
35499         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
35500
35501         
35502
35503         while (!$_matched && !$commit)
35504         {
35505                 
35506                 Parse::RecDescent::_trace(q{Trying production: [scoped_reference_expression '->' name1 '(']},
35507                                           Parse::RecDescent::_tracefirst($_[1]),
35508                                           q{dereference_operation},
35509                                           $tracelevel)
35510                                                 if defined $::RD_TRACE;
35511                 my $thisprod = $thisrule->{"prods"}[0];
35512                 $text = $_[1];
35513                 my $_savetext;
35514                 @item = (q{dereference_operation});
35515                 %item = (__RULE__ => q{dereference_operation});
35516                 my $repcount = 0;
35517
35518
35519                 Parse::RecDescent::_trace(q{Trying subrule: [scoped_reference_expression]},
35520                                   Parse::RecDescent::_tracefirst($text),
35521                                   q{dereference_operation},
35522                                   $tracelevel)
35523                                         if defined $::RD_TRACE;
35524                 if (1) { no strict qw{refs};
35525                 $expectation->is(q{})->at($text);
35526                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scoped_reference_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
35527                 {
35528                         
35529                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [scoped_reference_expression]>>},
35530                                                   Parse::RecDescent::_tracefirst($text),
35531                                                   q{dereference_operation},
35532                                                   $tracelevel)
35533                                                         if defined $::RD_TRACE;
35534                         $expectation->failed();
35535                         last;
35536                 }
35537                 Parse::RecDescent::_trace(q{>>Matched subrule: [scoped_reference_expression]<< (return value: [}
35538                                         . $_tok . q{]},
35539                                           
35540                                           Parse::RecDescent::_tracefirst($text),
35541                                           q{dereference_operation},
35542                                           $tracelevel)
35543                                                 if defined $::RD_TRACE;
35544                 $item{q{scoped_reference_expression}} = $_tok;
35545                 push @item, $_tok;
35546                 
35547                 }
35548
35549                 Parse::RecDescent::_trace(q{Trying terminal: ['->']},
35550                                           Parse::RecDescent::_tracefirst($text),
35551                                           q{dereference_operation},
35552                                           $tracelevel)
35553                                                 if defined $::RD_TRACE;
35554                 $lastsep = "";
35555                 $expectation->is(q{'->'})->at($text);
35556                 
35557
35558                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\-\>//)
35559                 {
35560                         
35561                         $expectation->failed();
35562                         Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
35563                                                   Parse::RecDescent::_tracefirst($text))
35564                                                         if defined $::RD_TRACE;
35565                         last;
35566                 }
35567                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35568                                                 . $& . q{])},
35569                                                   Parse::RecDescent::_tracefirst($text))
35570                                                         if defined $::RD_TRACE;
35571                 push @item, $item{__STRING1__}=$&;
35572                 
35573
35574                 Parse::RecDescent::_trace(q{Trying subrule: [name1]},
35575                                   Parse::RecDescent::_tracefirst($text),
35576                                   q{dereference_operation},
35577                                   $tracelevel)
35578                                         if defined $::RD_TRACE;
35579                 if (1) { no strict qw{refs};
35580                 $expectation->is(q{name1})->at($text);
35581                 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::name1($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
35582                 {
35583                         
35584                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [name1]>>},
35585                                                   Parse::RecDescent::_tracefirst($text),
35586                                                   q{dereference_operation},
35587                                                   $tracelevel)
35588                                                         if defined $::RD_TRACE;
35589                         $expectation->failed();
35590                         last;
35591                 }
35592                 Parse::RecDescent::_trace(q{>>Matched subrule: [name1]<< (return value: [}
35593                                         . $_tok . q{]},
35594                                           
35595                                           Parse::RecDescent::_tracefirst($text),
35596                                           q{dereference_operation},
35597                                           $tracelevel)
35598                                                 if defined $::RD_TRACE;
35599                 $item{q{name1}} = $_tok;
35600                 push @item, $_tok;
35601                 
35602                 }
35603
35604                 Parse::RecDescent::_trace(q{Trying repeated subrule: ['(']},
35605                                   Parse::RecDescent::_tracefirst($text),
35606                                   q{dereference_operation},
35607                                   $tracelevel)
35608                                         if defined $::RD_TRACE;
35609                 $expectation->is(q{'('})->at($text);
35610                 
35611                 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))) 
35612                 {
35613                         Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: ['(']>>},
35614                                                   Parse::RecDescent::_tracefirst($text),
35615                                                   q{dereference_operation},
35616                                                   $tracelevel)
35617                                                         if defined $::RD_TRACE;
35618                         last;
35619                 }
35620                 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_dereference_operation]<< (}
35621                                         . @$_tok . q{ times)},
35622                                           
35623                                           Parse::RecDescent::_tracefirst($text),
35624                                           q{dereference_operation},
35625                                           $tracelevel)
35626                                                 if defined $::RD_TRACE;
35627                 $item{q{_alternation_1_of_production_1_of_rule_dereference_operation(?)}} = $_tok;
35628                 push @item, $_tok;
35629                 
35630
35631
35632
35633                 Parse::RecDescent::_trace(q{>>Matched production: [scoped_reference_expression '->' name1 '(']<<},
35634                                           Parse::RecDescent::_tracefirst($text),
35635                                           q{dereference_operation},
35636                                           $tracelevel)
35637                                                 if defined $::RD_TRACE;
35638                 $_matched = 1;
35639                 last;
35640         }
35641
35642
35643         unless ( $_matched || defined($return) || defined($score) )
35644         {
35645                 
35646
35647                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
35648                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
35649                                          Parse::RecDescent::_tracefirst($_[1]),
35650                                          q{dereference_operation},
35651                                          $tracelevel)
35652                                         if defined $::RD_TRACE;
35653                 return undef;
35654         }
35655         if (!defined($return) && defined($score))
35656         {
35657                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
35658                                           q{dereference_operation},
35659                                           $tracelevel)
35660                                                 if defined $::RD_TRACE;
35661                 $return = $score_return;
35662         }
35663         splice @{$thisparser->{errors}}, $err_at;
35664         $return = $item[$#item] unless defined $return;
35665         if (defined $::RD_TRACE)
35666         {
35667                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
35668                                           $return . q{])}, "",
35669                                           q{dereference_operation},
35670                                           $tracelevel);
35671                 Parse::RecDescent::_trace(q{(consumed: [} .
35672                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
35673                                           Parse::RecDescent::_tracefirst($text),
35674                                           , q{dereference_operation},
35675                                           $tracelevel)
35676         }
35677         $_[1] = $text;
35678         return $return;
35679 }
35680
35681 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
35682 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OUTER
35683 {
35684         my $thisparser = $_[0];
35685         use vars q{$tracelevel};
35686         local $tracelevel = ($tracelevel||0)+1;
35687         $ERRORS = 0;
35688         my $thisrule = $thisparser->{"rules"}{"OUTER"};
35689         
35690         Parse::RecDescent::_trace(q{Trying rule: [OUTER]},
35691                                   Parse::RecDescent::_tracefirst($_[1]),
35692                                   q{OUTER},
35693                                   $tracelevel)
35694                                         if defined $::RD_TRACE;
35695
35696         
35697         my $err_at = @{$thisparser->{errors}};
35698
35699         my $score;
35700         my $score_return;
35701         my $_tok;
35702         my $return = undef;
35703         my $_matched=0;
35704         my $commit=0;
35705         my @item = ();
35706         my %item = ();
35707         my $repeating =  defined($_[2]) && $_[2];
35708         my $_noactions = defined($_[3]) && $_[3];
35709         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
35710         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
35711         my $text;
35712         my $lastsep="";
35713         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
35714         $expectation->at($_[1]);
35715         
35716         my $thisline;
35717         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
35718
35719         
35720
35721         while (!$_matched && !$commit)
35722         {
35723                 
35724                 Parse::RecDescent::_trace(q{Trying production: [/outer/i]},
35725                                           Parse::RecDescent::_tracefirst($_[1]),
35726                                           q{OUTER},
35727                                           $tracelevel)
35728                                                 if defined $::RD_TRACE;
35729                 my $thisprod = $thisrule->{"prods"}[0];
35730                 $text = $_[1];
35731                 my $_savetext;
35732                 @item = (q{OUTER});
35733                 %item = (__RULE__ => q{OUTER});
35734                 my $repcount = 0;
35735
35736
35737                 Parse::RecDescent::_trace(q{Trying terminal: [/outer/i]}, Parse::RecDescent::_tracefirst($text),
35738                                           q{OUTER},
35739                                           $tracelevel)
35740                                                 if defined $::RD_TRACE;
35741                 $lastsep = "";
35742                 $expectation->is(q{})->at($text);
35743                 
35744
35745                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:outer)//i)
35746                 {
35747                         
35748                         $expectation->failed();
35749                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
35750                                                   Parse::RecDescent::_tracefirst($text))
35751                                         if defined $::RD_TRACE;
35752
35753                         last;
35754                 }
35755                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35756                                                 . $& . q{])},
35757                                                   Parse::RecDescent::_tracefirst($text))
35758                                         if defined $::RD_TRACE;
35759                 push @item, $item{__PATTERN1__}=$&;
35760                 
35761
35762
35763                 Parse::RecDescent::_trace(q{>>Matched production: [/outer/i]<<},
35764                                           Parse::RecDescent::_tracefirst($text),
35765                                           q{OUTER},
35766                                           $tracelevel)
35767                                                 if defined $::RD_TRACE;
35768                 $_matched = 1;
35769                 last;
35770         }
35771
35772
35773         unless ( $_matched || defined($return) || defined($score) )
35774         {
35775                 
35776
35777                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
35778                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
35779                                          Parse::RecDescent::_tracefirst($_[1]),
35780                                          q{OUTER},
35781                                          $tracelevel)
35782                                         if defined $::RD_TRACE;
35783                 return undef;
35784         }
35785         if (!defined($return) && defined($score))
35786         {
35787                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
35788                                           q{OUTER},
35789                                           $tracelevel)
35790                                                 if defined $::RD_TRACE;
35791                 $return = $score_return;
35792         }
35793         splice @{$thisparser->{errors}}, $err_at;
35794         $return = $item[$#item] unless defined $return;
35795         if (defined $::RD_TRACE)
35796         {
35797                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
35798                                           $return . q{])}, "",
35799                                           q{OUTER},
35800                                           $tracelevel);
35801                 Parse::RecDescent::_trace(q{(consumed: [} .
35802                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
35803                                           Parse::RecDescent::_tracefirst($text),
35804                                           , q{OUTER},
35805                                           $tracelevel)
35806         }
35807         $_[1] = $text;
35808         return $return;
35809 }
35810
35811 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
35812 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause
35813 {
35814         my $thisparser = $_[0];
35815         use vars q{$tracelevel};
35816         local $tracelevel = ($tracelevel||0)+1;
35817         $ERRORS = 0;
35818         my $thisrule = $thisparser->{"rules"}{"window_order_clause"};
35819         
35820         Parse::RecDescent::_trace(q{Trying rule: [window_order_clause]},
35821                                   Parse::RecDescent::_tracefirst($_[1]),
35822                                   q{window_order_clause},
35823                                   $tracelevel)
35824                                         if defined $::RD_TRACE;
35825
35826         
35827         my $err_at = @{$thisparser->{errors}};
35828
35829         my $score;
35830         my $score_return;
35831         my $_tok;
35832         my $return = undef;
35833         my $_matched=0;
35834         my $commit=0;
35835         my @item = ();
35836         my %item = ();
35837         my $repeating =  defined($_[2]) && $_[2];
35838         my $_noactions = defined($_[3]) && $_[3];
35839         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
35840         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
35841         my $text;
35842         my $lastsep="";
35843         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
35844         $expectation->at($_[1]);
35845         
35846         my $thisline;
35847         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
35848
35849         
35850
35851         while (!$_matched && !$commit)
35852         {
35853                 
35854                 Parse::RecDescent::_trace(q{Trying production: [/ORDER\\s+BY/i <leftop: sort_key_expression /,/ sort_key_expression>]},
35855                                           Parse::RecDescent::_tracefirst($_[1]),
35856                                           q{window_order_clause},
35857                                           $tracelevel)
35858                                                 if defined $::RD_TRACE;
35859                 my $thisprod = $thisrule->{"prods"}[0];
35860                 $text = $_[1];
35861                 my $_savetext;
35862                 @item = (q{window_order_clause});
35863                 %item = (__RULE__ => q{window_order_clause});
35864                 my $repcount = 0;
35865
35866
35867                 Parse::RecDescent::_trace(q{Trying terminal: [/ORDER\\s+BY/i]}, Parse::RecDescent::_tracefirst($text),
35868                                           q{window_order_clause},
35869                                           $tracelevel)
35870                                                 if defined $::RD_TRACE;
35871                 $lastsep = "";
35872                 $expectation->is(q{})->at($text);
35873                 
35874
35875                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ORDER\s+BY)//i)
35876                 {
35877                         
35878                         $expectation->failed();
35879                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
35880                                                   Parse::RecDescent::_tracefirst($text))
35881                                         if defined $::RD_TRACE;
35882
35883                         last;
35884                 }
35885                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35886                                                 . $& . q{])},
35887                                                   Parse::RecDescent::_tracefirst($text))
35888                                         if defined $::RD_TRACE;
35889                 push @item, $item{__PATTERN1__}=$&;
35890                 
35891
35892                 Parse::RecDescent::_trace(q{Trying operator: [<leftop: sort_key_expression /,/ sort_key_expression>]},
35893                                   Parse::RecDescent::_tracefirst($text),
35894                                   q{window_order_clause},
35895                                   $tracelevel)
35896                                         if defined $::RD_TRACE;
35897                 $expectation->is(q{<leftop: sort_key_expression /,/ sort_key_expression>})->at($text);
35898
35899                 $_tok = undef;
35900                 OPLOOP: while (1)
35901                 {
35902                   $repcount = 0;
35903                   my  @item;
35904                   
35905                   # MATCH LEFTARG
35906                   
35907                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
35908                                   Parse::RecDescent::_tracefirst($text),
35909                                   q{window_order_clause},
35910                                   $tracelevel)
35911                                         if defined $::RD_TRACE;
35912                 if (1) { no strict qw{refs};
35913                 $expectation->is(q{sort_key_expression})->at($text);
35914                 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 })))
35915                 {
35916                         
35917                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]>>},
35918                                                   Parse::RecDescent::_tracefirst($text),
35919                                                   q{window_order_clause},
35920                                                   $tracelevel)
35921                                                         if defined $::RD_TRACE;
35922                         $expectation->failed();
35923                         last;
35924                 }
35925                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]<< (return value: [}
35926                                         . $_tok . q{]},
35927                                           
35928                                           Parse::RecDescent::_tracefirst($text),
35929                                           q{window_order_clause},
35930                                           $tracelevel)
35931                                                 if defined $::RD_TRACE;
35932                 $item{q{_alternation_1_of_production_1_of_rule_window_order_clause}} = $_tok;
35933                 push @item, $_tok;
35934                 
35935                 }
35936
35937
35938                   $repcount++;
35939
35940                   my $savetext = $text;
35941                   my $backtrack;
35942
35943                   # MATCH (OP RIGHTARG)(s)
35944                   while ($repcount < 100000000)
35945                   {
35946                         $backtrack = 0;
35947                         
35948                 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
35949                                           q{window_order_clause},
35950                                           $tracelevel)
35951                                                 if defined $::RD_TRACE;
35952                 $lastsep = "";
35953                 $expectation->is(q{/,/})->at($text);
35954                 
35955
35956                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
35957                 {
35958                         
35959                         $expectation->failed();
35960                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
35961                                                   Parse::RecDescent::_tracefirst($text))
35962                                         if defined $::RD_TRACE;
35963
35964                         last;
35965                 }
35966                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35967                                                 . $& . q{])},
35968                                                   Parse::RecDescent::_tracefirst($text))
35969                                         if defined $::RD_TRACE;
35970                 push @item, $item{__PATTERN2__}=$&;
35971                 
35972
35973                         pop @item;
35974                         if (defined $1) {push @item, $item{'_alternation_1_of_production_1_of_rule_window_order_clause(s)'}=$1; $backtrack=1;}
35975                         
35976                 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
35977                                   Parse::RecDescent::_tracefirst($text),
35978                                   q{window_order_clause},
35979                                   $tracelevel)
35980                                         if defined $::RD_TRACE;
35981                 if (1) { no strict qw{refs};
35982                 $expectation->is(q{sort_key_expression})->at($text);
35983                 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 })))
35984                 {
35985                         
35986                         Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]>>},
35987                                                   Parse::RecDescent::_tracefirst($text),
35988                                                   q{window_order_clause},
35989                                                   $tracelevel)
35990                                                         if defined $::RD_TRACE;
35991                         $expectation->failed();
35992                         last;
35993                 }
35994                 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]<< (return value: [}
35995                                         . $_tok . q{]},
35996                                           
35997                                           Parse::RecDescent::_tracefirst($text),
35998                                           q{window_order_clause},
35999                                           $tracelevel)
36000                                                 if defined $::RD_TRACE;
36001                 $item{q{_alternation_1_of_production_1_of_rule_window_order_clause}} = $_tok;
36002                 push @item, $_tok;
36003                 
36004                 }
36005
36006                         $savetext = $text;
36007                         $repcount++;
36008                   }
36009                   $text = $savetext;
36010                   pop @item if $backtrack;
36011
36012                   unless (@item) { undef $_tok; last }
36013                   $_tok = [ @item ];
36014                   last;
36015                 } 
36016
36017                 unless ($repcount>=1)
36018                 {
36019                         Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: sort_key_expression /,/ sort_key_expression>]>>},
36020                                                   Parse::RecDescent::_tracefirst($text),
36021                                                   q{window_order_clause},
36022                                                   $tracelevel)
36023                                                         if defined $::RD_TRACE;
36024                         $expectation->failed();
36025                         last;
36026                 }
36027                 Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: sort_key_expression /,/ sort_key_expression>]<< (return value: [}
36028                                           . qq{@{$_tok||[]}} . q{]},
36029                                           Parse::RecDescent::_tracefirst($text),
36030                                           q{window_order_clause},
36031                                           $tracelevel)
36032                                                 if defined $::RD_TRACE;
36033
36034                 push @item, $item{'_alternation_1_of_production_1_of_rule_window_order_clause(s)'}=$_tok||[];
36035
36036
36037
36038                 Parse::RecDescent::_trace(q{>>Matched production: [/ORDER\\s+BY/i <leftop: sort_key_expression /,/ sort_key_expression>]<<},
36039                                           Parse::RecDescent::_tracefirst($text),
36040                                           q{window_order_clause},
36041                                           $tracelevel)
36042                                                 if defined $::RD_TRACE;
36043                 $_matched = 1;
36044                 last;
36045         }
36046
36047
36048         unless ( $_matched || defined($return) || defined($score) )
36049         {
36050                 
36051
36052                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
36053                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
36054                                          Parse::RecDescent::_tracefirst($_[1]),
36055                                          q{window_order_clause},
36056                                          $tracelevel)
36057                                         if defined $::RD_TRACE;
36058                 return undef;
36059         }
36060         if (!defined($return) && defined($score))
36061         {
36062                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
36063                                           q{window_order_clause},
36064                                           $tracelevel)
36065                                                 if defined $::RD_TRACE;
36066                 $return = $score_return;
36067         }
36068         splice @{$thisparser->{errors}}, $err_at;
36069         $return = $item[$#item] unless defined $return;
36070         if (defined $::RD_TRACE)
36071         {
36072                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
36073                                           $return . q{])}, "",
36074                                           q{window_order_clause},
36075                                           $tracelevel);
36076                 Parse::RecDescent::_trace(q{(consumed: [} .
36077                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
36078                                           Parse::RecDescent::_tracefirst($text),
36079                                           , q{window_order_clause},
36080                                           $tracelevel)
36081         }
36082         $_[1] = $text;
36083         return $return;
36084 }
36085
36086 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
36087 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::TRIGGER
36088 {
36089         my $thisparser = $_[0];
36090         use vars q{$tracelevel};
36091         local $tracelevel = ($tracelevel||0)+1;
36092         $ERRORS = 0;
36093         my $thisrule = $thisparser->{"rules"}{"TRIGGER"};
36094         
36095         Parse::RecDescent::_trace(q{Trying rule: [TRIGGER]},
36096                                   Parse::RecDescent::_tracefirst($_[1]),
36097                                   q{TRIGGER},
36098                                   $tracelevel)
36099                                         if defined $::RD_TRACE;
36100
36101         
36102         my $err_at = @{$thisparser->{errors}};
36103
36104         my $score;
36105         my $score_return;
36106         my $_tok;
36107         my $return = undef;
36108         my $_matched=0;
36109         my $commit=0;
36110         my @item = ();
36111         my %item = ();
36112         my $repeating =  defined($_[2]) && $_[2];
36113         my $_noactions = defined($_[3]) && $_[3];
36114         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
36115         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
36116         my $text;
36117         my $lastsep="";
36118         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
36119         $expectation->at($_[1]);
36120         
36121         my $thisline;
36122         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
36123
36124         
36125
36126         while (!$_matched && !$commit)
36127         {
36128                 
36129                 Parse::RecDescent::_trace(q{Trying production: [/trigger/i]},
36130                                           Parse::RecDescent::_tracefirst($_[1]),
36131                                           q{TRIGGER},
36132                                           $tracelevel)
36133                                                 if defined $::RD_TRACE;
36134                 my $thisprod = $thisrule->{"prods"}[0];
36135                 $text = $_[1];
36136                 my $_savetext;
36137                 @item = (q{TRIGGER});
36138                 %item = (__RULE__ => q{TRIGGER});
36139                 my $repcount = 0;
36140
36141
36142                 Parse::RecDescent::_trace(q{Trying terminal: [/trigger/i]}, Parse::RecDescent::_tracefirst($text),
36143                                           q{TRIGGER},
36144                                           $tracelevel)
36145                                                 if defined $::RD_TRACE;
36146                 $lastsep = "";
36147                 $expectation->is(q{})->at($text);
36148                 
36149
36150                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:trigger)//i)
36151                 {
36152                         
36153                         $expectation->failed();
36154                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
36155                                                   Parse::RecDescent::_tracefirst($text))
36156                                         if defined $::RD_TRACE;
36157
36158                         last;
36159                 }
36160                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
36161                                                 . $& . q{])},
36162                                                   Parse::RecDescent::_tracefirst($text))
36163                                         if defined $::RD_TRACE;
36164                 push @item, $item{__PATTERN1__}=$&;
36165                 
36166
36167
36168                 Parse::RecDescent::_trace(q{>>Matched production: [/trigger/i]<<},
36169                                           Parse::RecDescent::_tracefirst($text),
36170                                           q{TRIGGER},
36171                                           $tracelevel)
36172                                                 if defined $::RD_TRACE;
36173                 $_matched = 1;
36174                 last;
36175         }
36176
36177
36178         unless ( $_matched || defined($return) || defined($score) )
36179         {
36180                 
36181
36182                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
36183                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
36184                                          Parse::RecDescent::_tracefirst($_[1]),
36185                                          q{TRIGGER},
36186                                          $tracelevel)
36187                                         if defined $::RD_TRACE;
36188                 return undef;
36189         }
36190         if (!defined($return) && defined($score))
36191         {
36192                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
36193                                           q{TRIGGER},
36194                                           $tracelevel)
36195                                                 if defined $::RD_TRACE;
36196                 $return = $score_return;
36197         }
36198         splice @{$thisparser->{errors}}, $err_at;
36199         $return = $item[$#item] unless defined $return;
36200         if (defined $::RD_TRACE)
36201         {
36202                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
36203                                           $return . q{])}, "",
36204                                           q{TRIGGER},
36205                                           $tracelevel);
36206                 Parse::RecDescent::_trace(q{(consumed: [} .
36207                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
36208                                           Parse::RecDescent::_tracefirst($text),
36209                                           , q{TRIGGER},
36210                                           $tracelevel)
36211         }
36212         $_[1] = $text;
36213         return $return;
36214 }
36215
36216 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
36217 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::comment
36218 {
36219         my $thisparser = $_[0];
36220         use vars q{$tracelevel};
36221         local $tracelevel = ($tracelevel||0)+1;
36222         $ERRORS = 0;
36223         my $thisrule = $thisparser->{"rules"}{"comment"};
36224         
36225         Parse::RecDescent::_trace(q{Trying rule: [comment]},
36226                                   Parse::RecDescent::_tracefirst($_[1]),
36227                                   q{comment},
36228                                   $tracelevel)
36229                                         if defined $::RD_TRACE;
36230
36231         
36232         my $err_at = @{$thisparser->{errors}};
36233
36234         my $score;
36235         my $score_return;
36236         my $_tok;
36237         my $return = undef;
36238         my $_matched=0;
36239         my $commit=0;
36240         my @item = ();
36241         my %item = ();
36242         my $repeating =  defined($_[2]) && $_[2];
36243         my $_noactions = defined($_[3]) && $_[3];
36244         my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
36245         my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
36246         my $text;
36247         my $lastsep="";
36248         my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
36249         $expectation->at($_[1]);
36250         
36251         my $thisline;
36252         tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
36253
36254         
36255
36256         while (!$_matched && !$commit)
36257         {
36258                 
36259                 Parse::RecDescent::_trace(q{Trying production: [/^\\s*-\{2\}.*\\n/]},
36260                                           Parse::RecDescent::_tracefirst($_[1]),
36261                                           q{comment},
36262                                           $tracelevel)
36263                                                 if defined $::RD_TRACE;
36264                 my $thisprod = $thisrule->{"prods"}[0];
36265                 $text = $_[1];
36266                 my $_savetext;
36267                 @item = (q{comment});
36268                 %item = (__RULE__ => q{comment});
36269                 my $repcount = 0;
36270
36271
36272                 Parse::RecDescent::_trace(q{Trying terminal: [/^\\s*-\{2\}.*\\n/]}, Parse::RecDescent::_tracefirst($text),
36273                                           q{comment},
36274                                           $tracelevel)
36275                                                 if defined $::RD_TRACE;
36276                 $lastsep = "";
36277                 $expectation->is(q{})->at($text);
36278                 
36279
36280                 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:^\s*-{2}.*\n)//)
36281                 {
36282                         
36283                         $expectation->failed();
36284                         Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
36285                                                   Parse::RecDescent::_tracefirst($text))
36286                                         if defined $::RD_TRACE;
36287
36288                         last;
36289                 }
36290                 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
36291                                                 . $& . q{])},
36292                                                   Parse::RecDescent::_tracefirst($text))
36293                                         if defined $::RD_TRACE;
36294                 push @item, $item{__PATTERN1__}=$&;
36295                 
36296
36297                 Parse::RecDescent::_trace(q{Trying action},
36298                                           Parse::RecDescent::_tracefirst($text),
36299                                           q{comment},
36300                                           $tracelevel)
36301                                                 if defined $::RD_TRACE;
36302                 
36303
36304                 $_tok = ($_noactions) ? 0 : do {
36305         my $comment =  $item[1];
36306         $comment    =~ s/^\s*(-{2})\s*//;
36307         $comment    =~ s/\s*$//;
36308         $return     = $comment;
36309     };
36310                 unless (defined $_tok)
36311                 {
36312                         Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
36313                                         if defined $::RD_TRACE;
36314                         last;
36315                 }
36316                 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
36317                                           . $_tok . q{])},
36318                                           Parse::RecDescent::_tracefirst($text))
36319                                                 if defined $::RD_TRACE;
36320                 push @item, $_tok;
36321                 $item{__ACTION1__}=$_tok;
36322                 
36323
36324
36325                 Parse::RecDescent::_trace(q{>>Matched production: [/^\\s*-\{2\}.*\\n/]<<},
36326                                           Parse::RecDescent::_tracefirst($text),
36327                                           q{comment},
36328                                           $tracelevel)
36329                                                 if defined $::RD_TRACE;
36330                 $_matched = 1;
36331                 last;
36332         }
36333
36334
36335         unless ( $_matched || defined($return) || defined($score) )
36336         {
36337                 
36338
36339                 $_[1] = $text;  # NOT SURE THIS IS NEEDED
36340                 Parse::RecDescent::_trace(q{<<Didn't match rule>>},
36341                                          Parse::RecDescent::_tracefirst($_[1]),
36342                                          q{comment},
36343                                          $tracelevel)
36344                                         if defined $::RD_TRACE;
36345                 return undef;
36346         }
36347         if (!defined($return) && defined($score))
36348         {
36349                 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
36350                                           q{comment},
36351                                           $tracelevel)
36352                                                 if defined $::RD_TRACE;
36353                 $return = $score_return;
36354         }
36355         splice @{$thisparser->{errors}}, $err_at;
36356         $return = $item[$#item] unless defined $return;
36357         if (defined $::RD_TRACE)
36358         {
36359                 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
36360                                           $return . q{])}, "",
36361                                           q{comment},
36362                                           $tracelevel);
36363                 Parse::RecDescent::_trace(q{(consumed: [} .
36364                                           Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, 
36365                                           Parse::RecDescent::_tracefirst($text),
36366                                           , q{comment},
36367                                           $tracelevel)
36368         }
36369         $_[1] = $text;
36370         return $return;
36371 }
36372 }
36373 package SQL::Translator::Parser::DB2::Grammar; sub new { my $self = bless( {
36374                  '_AUTOTREE' => undef,
36375                  'localvars' => '',
36376                  'startcode' => '',
36377                  '_check' => {
36378                                'thisoffset' => '',
36379                                'itempos' => '',
36380                                'prevoffset' => '',
36381                                'prevline' => '',
36382                                'prevcolumn' => '',
36383                                'thiscolumn' => ''
36384                              },
36385                  'namespace' => 'Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar',
36386                  '_AUTOACTION' => undef,
36387                  'rules' => {
36388                               '_alternation_1_of_production_17_of_rule_sysibm_function' => bless( {
36389                                                                                                     'impcount' => 0,
36390                                                                                                     'calls' => [],
36391                                                                                                     'changed' => 0,
36392                                                                                                     'opcount' => 0,
36393                                                                                                     'prods' => [
36394                                                                                                                  bless( {
36395                                                                                                                           'number' => '0',
36396                                                                                                                           'strcount' => 0,
36397                                                                                                                           'dircount' => 0,
36398                                                                                                                           'uncommit' => undef,
36399                                                                                                                           'error' => undef,
36400                                                                                                                           'patcount' => 1,
36401                                                                                                                           'actcount' => 0,
36402                                                                                                                           'items' => [
36403                                                                                                                                        bless( {
36404                                                                                                                                                 'pattern' => 'DECIMAL',
36405                                                                                                                                                 'hashname' => '__PATTERN1__',
36406                                                                                                                                                 'description' => '/DECIMAL/i',
36407                                                                                                                                                 'lookahead' => 0,
36408                                                                                                                                                 'rdelim' => '/',
36409                                                                                                                                                 'line' => 628,
36410                                                                                                                                                 'mod' => 'i',
36411                                                                                                                                                 'ldelim' => '/'
36412                                                                                                                                               }, 'Parse::RecDescent::Token' )
36413                                                                                                                                      ],
36414                                                                                                                           'line' => undef
36415                                                                                                                         }, 'Parse::RecDescent::Production' ),
36416                                                                                                                  bless( {
36417                                                                                                                           'number' => '1',
36418                                                                                                                           'strcount' => 0,
36419                                                                                                                           'dircount' => 0,
36420                                                                                                                           'uncommit' => undef,
36421                                                                                                                           'error' => undef,
36422                                                                                                                           'patcount' => 1,
36423                                                                                                                           'actcount' => 0,
36424                                                                                                                           'items' => [
36425                                                                                                                                        bless( {
36426                                                                                                                                                 'pattern' => 'DEC',
36427                                                                                                                                                 'hashname' => '__PATTERN1__',
36428                                                                                                                                                 'description' => '/DEC/i',
36429                                                                                                                                                 'lookahead' => 0,
36430                                                                                                                                                 'rdelim' => '/',
36431                                                                                                                                                 'line' => 628,
36432                                                                                                                                                 'mod' => 'i',
36433                                                                                                                                                 'ldelim' => '/'
36434                                                                                                                                               }, 'Parse::RecDescent::Token' )
36435                                                                                                                                      ],
36436                                                                                                                           'line' => 628
36437                                                                                                                         }, 'Parse::RecDescent::Production' )
36438                                                                                                                ],
36439                                                                                                     'name' => '_alternation_1_of_production_17_of_rule_sysibm_function',
36440                                                                                                     'vars' => '',
36441                                                                                                     'line' => 628
36442                                                                                                   }, 'Parse::RecDescent::Rule' ),
36443                               'triggered_action' => bless( {
36444                                                              'impcount' => 0,
36445                                                              'calls' => [
36446                                                                           'when_clause',
36447                                                                           'SQL_procedure_statement'
36448                                                                         ],
36449                                                              'changed' => 0,
36450                                                              'opcount' => 0,
36451                                                              'prods' => [
36452                                                                           bless( {
36453                                                                                    'number' => '0',
36454                                                                                    'strcount' => 0,
36455                                                                                    'dircount' => 0,
36456                                                                                    'uncommit' => undef,
36457                                                                                    'error' => undef,
36458                                                                                    'patcount' => 0,
36459                                                                                    'actcount' => 1,
36460                                                                                    'items' => [
36461                                                                                                 bless( {
36462                                                                                                          'subrule' => 'when_clause',
36463                                                                                                          'expected' => undef,
36464                                                                                                          'min' => 0,
36465                                                                                                          'argcode' => undef,
36466                                                                                                          'max' => 1,
36467                                                                                                          'matchrule' => 0,
36468                                                                                                          'repspec' => '?',
36469                                                                                                          'lookahead' => 0,
36470                                                                                                          'line' => 263
36471                                                                                                        }, 'Parse::RecDescent::Repetition' ),
36472                                                                                                 bless( {
36473                                                                                                          'subrule' => 'SQL_procedure_statement',
36474                                                                                                          'matchrule' => 0,
36475                                                                                                          'implicit' => undef,
36476                                                                                                          'argcode' => undef,
36477                                                                                                          'lookahead' => 0,
36478                                                                                                          'line' => 263
36479                                                                                                        }, 'Parse::RecDescent::Subrule' ),
36480                                                                                                 bless( {
36481                                                                                                          'hashname' => '__ACTION1__',
36482                                                                                                          'lookahead' => 0,
36483                                                                                                          'line' => 264,
36484                                                                                                          'code' => '{ $return = { \'condition\' => $item[1][0],
36485               \'statement\' => $item{\'SQL_procedure_statement\'} };
36486 }'
36487                                                                                                        }, 'Parse::RecDescent::Action' )
36488                                                                                               ],
36489                                                                                    'line' => undef
36490                                                                                  }, 'Parse::RecDescent::Production' )
36491                                                                         ],
36492                                                              'name' => 'triggered_action',
36493                                                              'vars' => '',
36494                                                              'line' => 263
36495                                                            }, 'Parse::RecDescent::Rule' ),
36496                               '_alternation_1_of_production_2_of_rule_search_condition' => bless( {
36497                                                                                                     'impcount' => 0,
36498                                                                                                     'calls' => [
36499                                                                                                                  'predicate',
36500                                                                                                                  '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
36501                                                                                                                  'search_condition'
36502                                                                                                                ],
36503                                                                                                     'changed' => 0,
36504                                                                                                     'opcount' => 0,
36505                                                                                                     'prods' => [
36506                                                                                                                  bless( {
36507                                                                                                                           'number' => '0',
36508                                                                                                                           'strcount' => 0,
36509                                                                                                                           'dircount' => 0,
36510                                                                                                                           'uncommit' => undef,
36511                                                                                                                           'error' => undef,
36512                                                                                                                           'patcount' => 0,
36513                                                                                                                           'actcount' => 0,
36514                                                                                                                           'items' => [
36515                                                                                                                                        bless( {
36516                                                                                                                                                 'subrule' => 'predicate',
36517                                                                                                                                                 'matchrule' => 0,
36518                                                                                                                                                 'implicit' => undef,
36519                                                                                                                                                 'argcode' => undef,
36520                                                                                                                                                 'lookahead' => 0,
36521                                                                                                                                                 'line' => 628
36522                                                                                                                                               }, 'Parse::RecDescent::Subrule' ),
36523                                                                                                                                        bless( {
36524                                                                                                                                                 'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
36525                                                                                                                                                 'expected' => '/SELECTIVITY/i',
36526                                                                                                                                                 'min' => 0,
36527                                                                                                                                                 'argcode' => undef,
36528                                                                                                                                                 'max' => 1,
36529                                                                                                                                                 'matchrule' => 0,
36530                                                                                                                                                 'repspec' => '?',
36531                                                                                                                                                 'lookahead' => 0,
36532                                                                                                                                                 'line' => 628
36533                                                                                                                                               }, 'Parse::RecDescent::Repetition' )
36534                                                                                                                                      ],
36535                                                                                                                           'line' => undef
36536                                                                                                                         }, 'Parse::RecDescent::Production' ),
36537                                                                                                                  bless( {
36538                                                                                                                           'number' => '1',
36539                                                                                                                           'strcount' => 2,
36540                                                                                                                           'dircount' => 0,
36541                                                                                                                           'uncommit' => undef,
36542                                                                                                                           'error' => undef,
36543                                                                                                                           'patcount' => 0,
36544                                                                                                                           'actcount' => 0,
36545                                                                                                                           'items' => [
36546                                                                                                                                        bless( {
36547                                                                                                                                                 'pattern' => '(',
36548                                                                                                                                                 'hashname' => '__STRING1__',
36549                                                                                                                                                 'description' => '\'(\'',
36550                                                                                                                                                 'lookahead' => 0,
36551                                                                                                                                                 'line' => 628
36552                                                                                                                                               }, 'Parse::RecDescent::Literal' ),
36553                                                                                                                                        bless( {
36554                                                                                                                                                 'subrule' => 'search_condition',
36555                                                                                                                                                 'matchrule' => 0,
36556                                                                                                                                                 'implicit' => undef,
36557                                                                                                                                                 'argcode' => undef,
36558                                                                                                                                                 'lookahead' => 0,
36559                                                                                                                                                 'line' => 628
36560                                                                                                                                               }, 'Parse::RecDescent::Subrule' ),
36561                                                                                                                                        bless( {
36562                                                                                                                                                 'pattern' => ')',
36563                                                                                                                                                 'hashname' => '__STRING2__',
36564                                                                                                                                                 'description' => '\')\'',
36565                                                                                                                                                 'lookahead' => 0,
36566                                                                                                                                                 'line' => 628
36567                                                                                                                                               }, 'Parse::RecDescent::Literal' )
36568                                                                                                                                      ],
36569                                                                                                                           'line' => 628
36570                                                                                                                         }, 'Parse::RecDescent::Production' )
36571                                                                                                                ],
36572                                                                                                     'name' => '_alternation_1_of_production_2_of_rule_search_condition',
36573                                                                                                     'vars' => '',
36574                                                                                                     'line' => 628
36575                                                                                                   }, 'Parse::RecDescent::Rule' ),
36576                               'name1' => bless( {
36577                                                   'impcount' => 0,
36578                                                   'calls' => [
36579                                                                'NAME'
36580                                                              ],
36581                                                   'changed' => 0,
36582                                                   'opcount' => 0,
36583                                                   'prods' => [
36584                                                                bless( {
36585                                                                         'number' => '0',
36586                                                                         'strcount' => 0,
36587                                                                         'dircount' => 0,
36588                                                                         'uncommit' => undef,
36589                                                                         'error' => undef,
36590                                                                         'patcount' => 0,
36591                                                                         'actcount' => 0,
36592                                                                         'items' => [
36593                                                                                      bless( {
36594                                                                                               'subrule' => 'NAME',
36595                                                                                               'matchrule' => 0,
36596                                                                                               'implicit' => undef,
36597                                                                                               'argcode' => undef,
36598                                                                                               'lookahead' => 0,
36599                                                                                               'line' => 536
36600                                                                                             }, 'Parse::RecDescent::Subrule' )
36601                                                                                    ],
36602                                                                         'line' => undef
36603                                                                       }, 'Parse::RecDescent::Production' )
36604                                                              ],
36605                                                   'name' => 'name1',
36606                                                   'vars' => '',
36607                                                   'line' => 536
36608                                                 }, 'Parse::RecDescent::Rule' ),
36609                               '_alternation_2_of_production_1_of_rule_cond' => bless( {
36610                                                                                         'impcount' => 0,
36611                                                                                         'calls' => [
36612                                                                                                      'predicate',
36613                                                                                                      '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
36614                                                                                                      'search_condition'
36615                                                                                                    ],
36616                                                                                         'changed' => 0,
36617                                                                                         'opcount' => 0,
36618                                                                                         'prods' => [
36619                                                                                                      bless( {
36620                                                                                                               'number' => '0',
36621                                                                                                               'strcount' => 0,
36622                                                                                                               'dircount' => 0,
36623                                                                                                               'uncommit' => undef,
36624                                                                                                               'error' => undef,
36625                                                                                                               'patcount' => 0,
36626                                                                                                               'actcount' => 0,
36627                                                                                                               'items' => [
36628                                                                                                                            bless( {
36629                                                                                                                                     'subrule' => 'predicate',
36630                                                                                                                                     'matchrule' => 0,
36631                                                                                                                                     'implicit' => undef,
36632                                                                                                                                     'argcode' => undef,
36633                                                                                                                                     'lookahead' => 0,
36634                                                                                                                                     'line' => 628
36635                                                                                                                                   }, 'Parse::RecDescent::Subrule' ),
36636                                                                                                                            bless( {
36637                                                                                                                                     'subrule' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
36638                                                                                                                                     'expected' => '/SELECTIVITY/i',
36639                                                                                                                                     'min' => 0,
36640                                                                                                                                     'argcode' => undef,
36641                                                                                                                                     'max' => 1,
36642                                                                                                                                     'matchrule' => 0,
36643                                                                                                                                     'repspec' => '?',
36644                                                                                                                                     'lookahead' => 0,
36645                                                                                                                                     'line' => 628
36646                                                                                                                                   }, 'Parse::RecDescent::Repetition' )
36647                                                                                                                          ],
36648                                                                                                               'line' => undef
36649                                                                                                             }, 'Parse::RecDescent::Production' ),
36650                                                                                                      bless( {
36651                                                                                                               'number' => '1',
36652                                                                                                               'strcount' => 2,
36653                                                                                                               'dircount' => 0,
36654                                                                                                               'uncommit' => undef,
36655                                                                                                               'error' => undef,
36656                                                                                                               'patcount' => 0,
36657                                                                                                               'actcount' => 0,
36658                                                                                                               'items' => [
36659                                                                                                                            bless( {
36660                                                                                                                                     'pattern' => '(',
36661                                                                                                                                     'hashname' => '__STRING1__',
36662                                                                                                                                     'description' => '\'(\'',
36663                                                                                                                                     'lookahead' => 0,
36664                                                                                                                                     'line' => 628
36665                                                                                                                                   }, 'Parse::RecDescent::Literal' ),
36666                                                                                                                            bless( {
36667                                                                                                                                     'subrule' => 'search_condition',
36668                                                                                                                                     'matchrule' => 0,
36669                                                                                                                                     'implicit' => undef,
36670                                                                                                                                     'argcode' => undef,
36671                                                                                                                                     'lookahead' => 0,
36672                                                                                                                                     'line' => 628
36673                                                                                                                                   }, 'Parse::RecDescent::Subrule' ),
36674                                                                                                                            bless( {
36675                                                                                                                                     'pattern' => ')',
36676                                                                                                                                     'hashname' => '__STRING2__',
36677                                                                                                                                     'description' => '\')\'',
36678                                                                                                                                     'lookahead' => 0,
36679                                                                                                                                     'line' => 628
36680                                                                                                                                   }, 'Parse::RecDescent::Literal' )
36681                                                                                                                          ],
36682                                                                                                               'line' => 628
36683                                                                                                             }, 'Parse::RecDescent::Production' )
36684                                                                                                    ],
36685                                                                                         'name' => '_alternation_2_of_production_1_of_rule_cond',
36686                                                                                         'vars' => '',
36687                                                                                         'line' => 628
36688                                                                                       }, 'Parse::RecDescent::Rule' ),
36689                               '_alternation_1_of_production_1_of_rule_expression' => bless( {
36690                                                                                               'impcount' => 2,
36691                                                                                               'calls' => [
36692                                                                                                            '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
36693                                                                                                            '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression'
36694                                                                                                          ],
36695                                                                                               'changed' => 0,
36696                                                                                               'opcount' => 0,
36697                                                                                               'prods' => [
36698                                                                                                            bless( {
36699                                                                                                                     'number' => '0',
36700                                                                                                                     'strcount' => 0,
36701                                                                                                                     'dircount' => 0,
36702                                                                                                                     'uncommit' => undef,
36703                                                                                                                     'error' => undef,
36704                                                                                                                     'patcount' => 0,
36705                                                                                                                     'actcount' => 0,
36706                                                                                                                     'items' => [
36707                                                                                                                                  bless( {
36708                                                                                                                                           'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
36709                                                                                                                                           'expected' => '\'+\', or \'-\'',
36710                                                                                                                                           'min' => 0,
36711                                                                                                                                           'argcode' => undef,
36712                                                                                                                                           'max' => 1,
36713                                                                                                                                           'matchrule' => 0,
36714                                                                                                                                           'repspec' => '?',
36715                                                                                                                                           'lookahead' => 0,
36716                                                                                                                                           'line' => 611
36717                                                                                                                                         }, 'Parse::RecDescent::Repetition' ),
36718                                                                                                                                  bless( {
36719                                                                                                                                           'subrule' => '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
36720                                                                                                                                           'matchrule' => 0,
36721                                                                                                                                           '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',
36722                                                                                                                                           'argcode' => undef,
36723                                                                                                                                           'lookahead' => 0,
36724                                                                                                                                           'line' => 627
36725                                                                                                                                         }, 'Parse::RecDescent::Subrule' )
36726                                                                                                                                ],
36727                                                                                                                     'line' => undef
36728                                                                                                                   }, 'Parse::RecDescent::Production' )
36729                                                                                                          ],
36730                                                                                               'name' => '_alternation_1_of_production_1_of_rule_expression',
36731                                                                                               'vars' => '',
36732                                                                                               'line' => 608
36733                                                                                             }, 'Parse::RecDescent::Rule' ),
36734                               'SCHEMA' => bless( {
36735                                                    'impcount' => 0,
36736                                                    'calls' => [],
36737                                                    'changed' => 0,
36738                                                    'opcount' => 0,
36739                                                    'prods' => [
36740                                                                 bless( {
36741                                                                          'number' => '0',
36742                                                                          'strcount' => 0,
36743                                                                          'dircount' => 0,
36744                                                                          'uncommit' => undef,
36745                                                                          'error' => undef,
36746                                                                          'patcount' => 1,
36747                                                                          'actcount' => 0,
36748                                                                          'items' => [
36749                                                                                       bless( {
36750                                                                                                'pattern' => '\\w+',
36751                                                                                                'hashname' => '__PATTERN1__',
36752                                                                                                'description' => '/\\\\w+/',
36753                                                                                                'lookahead' => 0,
36754                                                                                                'rdelim' => '/',
36755                                                                                                'line' => 142,
36756                                                                                                'mod' => '',
36757                                                                                                'ldelim' => '/'
36758                                                                                              }, 'Parse::RecDescent::Token' )
36759                                                                                     ],
36760                                                                          'line' => undef
36761                                                                        }, 'Parse::RecDescent::Production' ),
36762                                                                 bless( {
36763                                                                          'number' => '1',
36764                                                                          'strcount' => 0,
36765                                                                          'dircount' => 0,
36766                                                                          'uncommit' => undef,
36767                                                                          'error' => undef,
36768                                                                          'patcount' => 1,
36769                                                                          'actcount' => 0,
36770                                                                          'items' => [
36771                                                                                       bless( {
36772                                                                                                'pattern' => '\\w{1,128}',
36773                                                                                                'hashname' => '__PATTERN1__',
36774                                                                                                'description' => '/\\\\w\\{1,128\\}/',
36775                                                                                                'lookahead' => 0,
36776                                                                                                'rdelim' => '/',
36777                                                                                                'line' => 144,
36778                                                                                                'mod' => '',
36779                                                                                                'ldelim' => '/'
36780                                                                                              }, 'Parse::RecDescent::Token' )
36781                                                                                     ],
36782                                                                          'line' => undef
36783                                                                        }, 'Parse::RecDescent::Production' )
36784                                                               ],
36785                                                    'name' => 'SCHEMA',
36786                                                    'vars' => '',
36787                                                    'line' => 142
36788                                                  }, 'Parse::RecDescent::Rule' ),
36789                               '_alternation_1_of_production_87_of_rule_sysibm_function' => bless( {
36790                                                                                                     'impcount' => 0,
36791                                                                                                     'calls' => [],
36792                                                                                                     'changed' => 0,
36793                                                                                                     'opcount' => 0,
36794                                                                                                     'prods' => [
36795                                                                                                                  bless( {
36796                                                                                                                           'number' => '0',
36797                                                                                                                           'strcount' => 0,
36798                                                                                                                           'dircount' => 0,
36799                                                                                                                           'uncommit' => undef,
36800                                                                                                                           'error' => undef,
36801                                                                                                                           'patcount' => 1,
36802                                                                                                                           'actcount' => 0,
36803                                                                                                                           'items' => [
36804                                                                                                                                        bless( {
36805                                                                                                                                                 'pattern' => 'VARIANCE',
36806                                                                                                                                                 'hashname' => '__PATTERN1__',
36807                                                                                                                                                 'description' => '/VARIANCE/i',
36808                                                                                                                                                 'lookahead' => 0,
36809                                                                                                                                                 'rdelim' => '/',
36810                                                                                                                                                 'line' => 628,
36811                                                                                                                                                 'mod' => 'i',
36812                                                                                                                                                 'ldelim' => '/'
36813                                                                                                                                               }, 'Parse::RecDescent::Token' )
36814                                                                                                                                      ],
36815                                                                                                                           'line' => undef
36816                                                                                                                         }, 'Parse::RecDescent::Production' ),
36817                                                                                                                  bless( {
36818                                                                                                                           'number' => '1',
36819                                                                                                                           'strcount' => 0,
36820                                                                                                                           'dircount' => 0,
36821                                                                                                                           'uncommit' => undef,
36822                                                                                                                           'error' => undef,
36823                                                                                                                           'patcount' => 1,
36824                                                                                                                           'actcount' => 0,
36825                                                                                                                           'items' => [
36826                                                                                                                                        bless( {
36827                                                                                                                                                 'pattern' => 'VAR',
36828                                                                                                                                                 'hashname' => '__PATTERN1__',
36829                                                                                                                                                 'description' => '/VAR/i',
36830                                                                                                                                                 'lookahead' => 0,
36831                                                                                                                                                 'rdelim' => '/',
36832                                                                                                                                                 'line' => 628,
36833                                                                                                                                                 'mod' => 'i',
36834                                                                                                                                                 'ldelim' => '/'
36835                                                                                                                                               }, 'Parse::RecDescent::Token' )
36836                                                                                                                                      ],
36837                                                                                                                           'line' => 628
36838                                                                                                                         }, 'Parse::RecDescent::Production' )
36839                                                                                                                ],
36840                                                                                                     'name' => '_alternation_1_of_production_87_of_rule_sysibm_function',
36841                                                                                                     'vars' => '',
36842                                                                                                     'line' => 628
36843                                                                                                   }, 'Parse::RecDescent::Rule' ),
36844                               '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression' => bless( {
36845                                                                                                                                      'impcount' => 0,
36846                                                                                                                                      'calls' => [],
36847                                                                                                                                      'changed' => 0,
36848                                                                                                                                      'opcount' => 0,
36849                                                                                                                                      'prods' => [
36850                                                                                                                                                   bless( {
36851                                                                                                                                                            'number' => '0',
36852                                                                                                                                                            'strcount' => 1,
36853                                                                                                                                                            'dircount' => 0,
36854                                                                                                                                                            'uncommit' => undef,
36855                                                                                                                                                            'error' => undef,
36856                                                                                                                                                            'patcount' => 0,
36857                                                                                                                                                            'actcount' => 0,
36858                                                                                                                                                            'items' => [
36859                                                                                                                                                                         bless( {
36860                                                                                                                                                                                  'pattern' => '+',
36861                                                                                                                                                                                  'hashname' => '__STRING1__',
36862                                                                                                                                                                                  'description' => '\'+\'',
36863                                                                                                                                                                                  'lookahead' => 0,
36864                                                                                                                                                                                  'line' => 626
36865                                                                                                                                                                                }, 'Parse::RecDescent::Literal' )
36866                                                                                                                                                                       ],
36867                                                                                                                                                            'line' => undef
36868                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
36869                                                                                                                                                   bless( {
36870                                                                                                                                                            'number' => '1',
36871                                                                                                                                                            'strcount' => 1,
36872                                                                                                                                                            'dircount' => 0,
36873                                                                                                                                                            'uncommit' => undef,
36874                                                                                                                                                            'error' => undef,
36875                                                                                                                                                            'patcount' => 0,
36876                                                                                                                                                            'actcount' => 0,
36877                                                                                                                                                            'items' => [
36878                                                                                                                                                                         bless( {
36879                                                                                                                                                                                  'pattern' => '-',
36880                                                                                                                                                                                  'hashname' => '__STRING1__',
36881                                                                                                                                                                                  'description' => '\'-\'',
36882                                                                                                                                                                                  'lookahead' => 0,
36883                                                                                                                                                                                  'line' => 627
36884                                                                                                                                                                                }, 'Parse::RecDescent::Literal' )
36885                                                                                                                                                                       ],
36886                                                                                                                                                            'line' => 627
36887                                                                                                                                                          }, 'Parse::RecDescent::Production' )
36888                                                                                                                                                 ],
36889                                                                                                                                      'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
36890                                                                                                                                      'vars' => '',
36891                                                                                                                                      'line' => 626
36892                                                                                                                                    }, 'Parse::RecDescent::Rule' ),
36893                               'get_bracketed' => bless( {
36894                                                           'impcount' => 0,
36895                                                           'calls' => [],
36896                                                           'changed' => 0,
36897                                                           'opcount' => 0,
36898                                                           'prods' => [
36899                                                                        bless( {
36900                                                                                 'number' => '0',
36901                                                                                 'strcount' => 0,
36902                                                                                 'dircount' => 0,
36903                                                                                 'uncommit' => undef,
36904                                                                                 'error' => undef,
36905                                                                                 'patcount' => 0,
36906                                                                                 'actcount' => 1,
36907                                                                                 'items' => [
36908                                                                                              bless( {
36909                                                                                                       'hashname' => '__ACTION1__',
36910                                                                                                       'lookahead' => 0,
36911                                                                                                       'line' => 170,
36912                                                                                                       'code' => '{ 
36913     extract_bracketed($text, \'(\');
36914 }'
36915                                                                                                     }, 'Parse::RecDescent::Action' )
36916                                                                                            ],
36917                                                                                 'line' => undef
36918                                                                               }, 'Parse::RecDescent::Production' )
36919                                                                      ],
36920                                                           'name' => 'get_bracketed',
36921                                                           'vars' => '',
36922                                                           'line' => 169
36923                                                         }, 'Parse::RecDescent::Rule' ),
36924                               'labeled_duration' => bless( {
36925                                                              'impcount' => 0,
36926                                                              'calls' => [
36927                                                                           'ld_type',
36928                                                                           'ld_duration'
36929                                                                         ],
36930                                                              'changed' => 0,
36931                                                              'opcount' => 0,
36932                                                              'prods' => [
36933                                                                           bless( {
36934                                                                                    'number' => '0',
36935                                                                                    'strcount' => 0,
36936                                                                                    'dircount' => 0,
36937                                                                                    'uncommit' => undef,
36938                                                                                    'error' => undef,
36939                                                                                    'patcount' => 0,
36940                                                                                    'actcount' => 0,
36941                                                                                    'items' => [
36942                                                                                                 bless( {
36943                                                                                                          'subrule' => 'ld_type',
36944                                                                                                          'matchrule' => 0,
36945                                                                                                          'implicit' => undef,
36946                                                                                                          'argcode' => undef,
36947                                                                                                          'lookahead' => 0,
36948                                                                                                          'line' => 480
36949                                                                                                        }, 'Parse::RecDescent::Subrule' ),
36950                                                                                                 bless( {
36951                                                                                                          'subrule' => 'ld_duration',
36952                                                                                                          'matchrule' => 0,
36953                                                                                                          'implicit' => undef,
36954                                                                                                          'argcode' => undef,
36955                                                                                                          'lookahead' => 0,
36956                                                                                                          'line' => 480
36957                                                                                                        }, 'Parse::RecDescent::Subrule' )
36958                                                                                               ],
36959                                                                                    'line' => undef
36960                                                                                  }, 'Parse::RecDescent::Production' )
36961                                                                         ],
36962                                                              'name' => 'labeled_duration',
36963                                                              'vars' => '',
36964                                                              'line' => 480
36965                                                            }, 'Parse::RecDescent::Rule' ),
36966                               'group_end' => bless( {
36967                                                       'impcount' => 0,
36968                                                       'calls' => [
36969                                                                    'unsigned_constant'
36970                                                                  ],
36971                                                       'changed' => 0,
36972                                                       'opcount' => 0,
36973                                                       'prods' => [
36974                                                                    bless( {
36975                                                                             'number' => '0',
36976                                                                             'strcount' => 0,
36977                                                                             'dircount' => 0,
36978                                                                             'uncommit' => undef,
36979                                                                             'error' => undef,
36980                                                                             'patcount' => 1,
36981                                                                             'actcount' => 0,
36982                                                                             'items' => [
36983                                                                                          bless( {
36984                                                                                                   'pattern' => 'UNBOUNDED\\s+PRECEDING',
36985                                                                                                   'hashname' => '__PATTERN1__',
36986                                                                                                   'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
36987                                                                                                   'lookahead' => 0,
36988                                                                                                   'rdelim' => '/',
36989                                                                                                   'line' => 590,
36990                                                                                                   'mod' => 'i',
36991                                                                                                   'ldelim' => '/'
36992                                                                                                 }, 'Parse::RecDescent::Token' )
36993                                                                                        ],
36994                                                                             'line' => undef
36995                                                                           }, 'Parse::RecDescent::Production' ),
36996                                                                    bless( {
36997                                                                             'number' => '1',
36998                                                                             'strcount' => 0,
36999                                                                             'dircount' => 0,
37000                                                                             'uncommit' => undef,
37001                                                                             'error' => undef,
37002                                                                             'patcount' => 1,
37003                                                                             'actcount' => 0,
37004                                                                             'items' => [
37005                                                                                          bless( {
37006                                                                                                   'subrule' => 'unsigned_constant',
37007                                                                                                   'matchrule' => 0,
37008                                                                                                   'implicit' => undef,
37009                                                                                                   'argcode' => undef,
37010                                                                                                   'lookahead' => 0,
37011                                                                                                   'line' => 591
37012                                                                                                 }, 'Parse::RecDescent::Subrule' ),
37013                                                                                          bless( {
37014                                                                                                   'pattern' => 'FOLLOWING',
37015                                                                                                   'hashname' => '__PATTERN1__',
37016                                                                                                   'description' => '/FOLLOWING/i',
37017                                                                                                   'lookahead' => 0,
37018                                                                                                   'rdelim' => '/',
37019                                                                                                   'line' => 591,
37020                                                                                                   'mod' => 'i',
37021                                                                                                   'ldelim' => '/'
37022                                                                                                 }, 'Parse::RecDescent::Token' )
37023                                                                                        ],
37024                                                                             'line' => 591
37025                                                                           }, 'Parse::RecDescent::Production' )
37026                                                                  ],
37027                                                       'name' => 'group_end',
37028                                                       'vars' => '',
37029                                                       'line' => 590
37030                                                     }, 'Parse::RecDescent::Rule' ),
37031                               'statement' => bless( {
37032                                                       'impcount' => 0,
37033                                                       'calls' => [
37034                                                                    'comment',
37035                                                                    'create'
37036                                                                  ],
37037                                                       'changed' => 0,
37038                                                       'opcount' => 0,
37039                                                       'prods' => [
37040                                                                    bless( {
37041                                                                             'number' => '0',
37042                                                                             'strcount' => 0,
37043                                                                             'dircount' => 0,
37044                                                                             'uncommit' => undef,
37045                                                                             'error' => undef,
37046                                                                             'patcount' => 0,
37047                                                                             'actcount' => 0,
37048                                                                             'items' => [
37049                                                                                          bless( {
37050                                                                                                   'subrule' => 'comment',
37051                                                                                                   'matchrule' => 0,
37052                                                                                                   'implicit' => undef,
37053                                                                                                   'argcode' => undef,
37054                                                                                                   'lookahead' => 0,
37055                                                                                                   'line' => 23
37056                                                                                                 }, 'Parse::RecDescent::Subrule' )
37057                                                                                        ],
37058                                                                             'line' => undef
37059                                                                           }, 'Parse::RecDescent::Production' ),
37060                                                                    bless( {
37061                                                                             'number' => '1',
37062                                                                             'strcount' => 0,
37063                                                                             'dircount' => 0,
37064                                                                             'uncommit' => undef,
37065                                                                             'error' => undef,
37066                                                                             'patcount' => 0,
37067                                                                             'actcount' => 0,
37068                                                                             'items' => [
37069                                                                                          bless( {
37070                                                                                                   'subrule' => 'create',
37071                                                                                                   'matchrule' => 0,
37072                                                                                                   'implicit' => undef,
37073                                                                                                   'argcode' => undef,
37074                                                                                                   'lookahead' => 0,
37075                                                                                                   'line' => 24
37076                                                                                                 }, 'Parse::RecDescent::Subrule' )
37077                                                                                        ],
37078                                                                             'line' => 24
37079                                                                           }, 'Parse::RecDescent::Production' ),
37080                                                                    bless( {
37081                                                                             'number' => '2',
37082                                                                             'strcount' => 0,
37083                                                                             'dircount' => 1,
37084                                                                             'uncommit' => 0,
37085                                                                             'error' => 1,
37086                                                                             'patcount' => 0,
37087                                                                             'actcount' => 0,
37088                                                                             'items' => [
37089                                                                                          bless( {
37090                                                                                                   'msg' => '',
37091                                                                                                   'hashname' => '__DIRECTIVE1__',
37092                                                                                                   'commitonly' => '',
37093                                                                                                   'lookahead' => 0,
37094                                                                                                   'line' => 25
37095                                                                                                 }, 'Parse::RecDescent::Error' )
37096                                                                                        ],
37097                                                                             'line' => 25
37098                                                                           }, 'Parse::RecDescent::Production' )
37099                                                                  ],
37100                                                       'name' => 'statement',
37101                                                       'vars' => '',
37102                                                       'line' => 22
37103                                                     }, 'Parse::RecDescent::Rule' ),
37104                               '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause' => bless( {
37105                                                                                                                                              'impcount' => 0,
37106                                                                                                                                              'calls' => [
37107                                                                                                                                                           'result_expression'
37108                                                                                                                                                         ],
37109                                                                                                                                              'changed' => 0,
37110                                                                                                                                              'opcount' => 0,
37111                                                                                                                                              'prods' => [
37112                                                                                                                                                           bless( {
37113                                                                                                                                                                    'number' => '0',
37114                                                                                                                                                                    'strcount' => 0,
37115                                                                                                                                                                    'dircount' => 0,
37116                                                                                                                                                                    'uncommit' => undef,
37117                                                                                                                                                                    'error' => undef,
37118                                                                                                                                                                    'patcount' => 0,
37119                                                                                                                                                                    'actcount' => 0,
37120                                                                                                                                                                    'items' => [
37121                                                                                                                                                                                 bless( {
37122                                                                                                                                                                                          'subrule' => 'result_expression',
37123                                                                                                                                                                                          'matchrule' => 0,
37124                                                                                                                                                                                          'implicit' => undef,
37125                                                                                                                                                                                          'argcode' => undef,
37126                                                                                                                                                                                          'lookahead' => 0,
37127                                                                                                                                                                                          'line' => 626
37128                                                                                                                                                                                        }, 'Parse::RecDescent::Subrule' )
37129                                                                                                                                                                               ],
37130                                                                                                                                                                    'line' => undef
37131                                                                                                                                                                  }, 'Parse::RecDescent::Production' ),
37132                                                                                                                                                           bless( {
37133                                                                                                                                                                    'number' => '1',
37134                                                                                                                                                                    'strcount' => 0,
37135                                                                                                                                                                    'dircount' => 0,
37136                                                                                                                                                                    'uncommit' => undef,
37137                                                                                                                                                                    'error' => undef,
37138                                                                                                                                                                    'patcount' => 1,
37139                                                                                                                                                                    'actcount' => 0,
37140                                                                                                                                                                    'items' => [
37141                                                                                                                                                                                 bless( {
37142                                                                                                                                                                                          'pattern' => 'NULL',
37143                                                                                                                                                                                          'hashname' => '__PATTERN1__',
37144                                                                                                                                                                                          'description' => '/NULL/i',
37145                                                                                                                                                                                          'lookahead' => 0,
37146                                                                                                                                                                                          'rdelim' => '/',
37147                                                                                                                                                                                          'line' => 627,
37148                                                                                                                                                                                          'mod' => 'i',
37149                                                                                                                                                                                          'ldelim' => '/'
37150                                                                                                                                                                                        }, 'Parse::RecDescent::Token' )
37151                                                                                                                                                                               ],
37152                                                                                                                                                                    'line' => 627
37153                                                                                                                                                                  }, 'Parse::RecDescent::Production' )
37154                                                                                                                                                         ],
37155                                                                                                                                              'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause',
37156                                                                                                                                              'vars' => '',
37157                                                                                                                                              'line' => 626
37158                                                                                                                                            }, 'Parse::RecDescent::Rule' ),
37159                               '_alternation_2_of_production_1_of_rule_case_expression' => bless( {
37160                                                                                                    'impcount' => 0,
37161                                                                                                    'calls' => [
37162                                                                                                                 'result_expression'
37163                                                                                                               ],
37164                                                                                                    'changed' => 0,
37165                                                                                                    'opcount' => 0,
37166                                                                                                    'prods' => [
37167                                                                                                                 bless( {
37168                                                                                                                          'number' => '0',
37169                                                                                                                          'strcount' => 0,
37170                                                                                                                          'dircount' => 0,
37171                                                                                                                          'uncommit' => undef,
37172                                                                                                                          'error' => undef,
37173                                                                                                                          'patcount' => 1,
37174                                                                                                                          'actcount' => 0,
37175                                                                                                                          'items' => [
37176                                                                                                                                       bless( {
37177                                                                                                                                                'pattern' => 'ELSE\\s+NULL',
37178                                                                                                                                                'hashname' => '__PATTERN1__',
37179                                                                                                                                                'description' => '/ELSE\\\\s+NULL/i',
37180                                                                                                                                                'lookahead' => 0,
37181                                                                                                                                                'rdelim' => '/',
37182                                                                                                                                                'line' => 626,
37183                                                                                                                                                'mod' => 'i',
37184                                                                                                                                                'ldelim' => '/'
37185                                                                                                                                              }, 'Parse::RecDescent::Token' )
37186                                                                                                                                     ],
37187                                                                                                                          'line' => undef
37188                                                                                                                        }, 'Parse::RecDescent::Production' ),
37189                                                                                                                 bless( {
37190                                                                                                                          'number' => '1',
37191                                                                                                                          'strcount' => 0,
37192                                                                                                                          'dircount' => 0,
37193                                                                                                                          'uncommit' => undef,
37194                                                                                                                          'error' => undef,
37195                                                                                                                          'patcount' => 1,
37196                                                                                                                          'actcount' => 0,
37197                                                                                                                          'items' => [
37198                                                                                                                                       bless( {
37199                                                                                                                                                'pattern' => 'ELSE',
37200                                                                                                                                                'hashname' => '__PATTERN1__',
37201                                                                                                                                                'description' => '/ELSE/i',
37202                                                                                                                                                'lookahead' => 0,
37203                                                                                                                                                'rdelim' => '/',
37204                                                                                                                                                'line' => 627,
37205                                                                                                                                                'mod' => 'i',
37206                                                                                                                                                'ldelim' => '/'
37207                                                                                                                                              }, 'Parse::RecDescent::Token' ),
37208                                                                                                                                       bless( {
37209                                                                                                                                                'subrule' => 'result_expression',
37210                                                                                                                                                'matchrule' => 0,
37211                                                                                                                                                'implicit' => undef,
37212                                                                                                                                                'argcode' => undef,
37213                                                                                                                                                'lookahead' => 0,
37214                                                                                                                                                'line' => 627
37215                                                                                                                                              }, 'Parse::RecDescent::Subrule' )
37216                                                                                                                                     ],
37217                                                                                                                          'line' => 627
37218                                                                                                                        }, 'Parse::RecDescent::Production' )
37219                                                                                                               ],
37220                                                                                                    'name' => '_alternation_2_of_production_1_of_rule_case_expression',
37221                                                                                                    'vars' => '',
37222                                                                                                    'line' => 626
37223                                                                                                  }, 'Parse::RecDescent::Rule' ),
37224                               'subject_expression' => bless( {
37225                                                                'impcount' => 0,
37226                                                                'calls' => [
37227                                                                             'expression'
37228                                                                           ],
37229                                                                'changed' => 0,
37230                                                                'opcount' => 0,
37231                                                                'prods' => [
37232                                                                             bless( {
37233                                                                                      'number' => '0',
37234                                                                                      'strcount' => 0,
37235                                                                                      'dircount' => 0,
37236                                                                                      'uncommit' => undef,
37237                                                                                      'error' => undef,
37238                                                                                      'patcount' => 0,
37239                                                                                      'actcount' => 1,
37240                                                                                      'items' => [
37241                                                                                                   bless( {
37242                                                                                                            'subrule' => 'expression',
37243                                                                                                            'matchrule' => 0,
37244                                                                                                            'implicit' => undef,
37245                                                                                                            'argcode' => undef,
37246                                                                                                            'lookahead' => 0,
37247                                                                                                            'line' => 598
37248                                                                                                          }, 'Parse::RecDescent::Subrule' ),
37249                                                                                                   bless( {
37250                                                                                                            'hashname' => '__ACTION1__',
37251                                                                                                            'lookahead' => 0,
37252                                                                                                            'line' => 599,
37253                                                                                                            'code' => '{ # with static result type that is a used-defined struct type 
37254 }'
37255                                                                                                          }, 'Parse::RecDescent::Action' )
37256                                                                                                 ],
37257                                                                                      'line' => undef
37258                                                                                    }, 'Parse::RecDescent::Production' )
37259                                                                           ],
37260                                                                'name' => 'subject_expression',
37261                                                                'vars' => '',
37262                                                                'line' => 598
37263                                                              }, 'Parse::RecDescent::Rule' ),
37264                               '_alternation_1_of_production_1_of_rule_desc_option' => bless( {
37265                                                                                                'impcount' => 0,
37266                                                                                                'calls' => [],
37267                                                                                                'changed' => 0,
37268                                                                                                'opcount' => 0,
37269                                                                                                'prods' => [
37270                                                                                                             bless( {
37271                                                                                                                      'number' => '0',
37272                                                                                                                      'strcount' => 0,
37273                                                                                                                      'dircount' => 0,
37274                                                                                                                      'uncommit' => undef,
37275                                                                                                                      'error' => undef,
37276                                                                                                                      'patcount' => 1,
37277                                                                                                                      'actcount' => 0,
37278                                                                                                                      'items' => [
37279                                                                                                                                   bless( {
37280                                                                                                                                            'pattern' => 'NULLS\\s+FIRST',
37281                                                                                                                                            'hashname' => '__PATTERN1__',
37282                                                                                                                                            'description' => '/NULLS\\\\s+FIRST/i',
37283                                                                                                                                            'lookahead' => 0,
37284                                                                                                                                            'rdelim' => '/',
37285                                                                                                                                            'line' => 628,
37286                                                                                                                                            'mod' => 'i',
37287                                                                                                                                            'ldelim' => '/'
37288                                                                                                                                          }, 'Parse::RecDescent::Token' )
37289                                                                                                                                 ],
37290                                                                                                                      'line' => undef
37291                                                                                                                    }, 'Parse::RecDescent::Production' ),
37292                                                                                                             bless( {
37293                                                                                                                      'number' => '1',
37294                                                                                                                      'strcount' => 0,
37295                                                                                                                      'dircount' => 0,
37296                                                                                                                      'uncommit' => undef,
37297                                                                                                                      'error' => undef,
37298                                                                                                                      'patcount' => 1,
37299                                                                                                                      'actcount' => 0,
37300                                                                                                                      'items' => [
37301                                                                                                                                   bless( {
37302                                                                                                                                            'pattern' => 'NULLS\\s+LAST',
37303                                                                                                                                            'hashname' => '__PATTERN1__',
37304                                                                                                                                            'description' => '/NULLS\\\\s+LAST/i',
37305                                                                                                                                            'lookahead' => 0,
37306                                                                                                                                            'rdelim' => '/',
37307                                                                                                                                            'line' => 628,
37308                                                                                                                                            'mod' => 'i',
37309                                                                                                                                            'ldelim' => '/'
37310                                                                                                                                          }, 'Parse::RecDescent::Token' )
37311                                                                                                                                 ],
37312                                                                                                                      'line' => 628
37313                                                                                                                    }, 'Parse::RecDescent::Production' )
37314                                                                                                           ],
37315                                                                                                'name' => '_alternation_1_of_production_1_of_rule_desc_option',
37316                                                                                                'vars' => '',
37317                                                                                                'line' => 628
37318                                                                                              }, 'Parse::RecDescent::Rule' ),
37319                               'view_name' => bless( {
37320                                                       'impcount' => 0,
37321                                                       'calls' => [
37322                                                                    'SCHEMA',
37323                                                                    'NAME'
37324                                                                  ],
37325                                                       'changed' => 0,
37326                                                       'opcount' => 0,
37327                                                       'prods' => [
37328                                                                    bless( {
37329                                                                             'number' => '0',
37330                                                                             'strcount' => 1,
37331                                                                             'dircount' => 0,
37332                                                                             'uncommit' => undef,
37333                                                                             'error' => undef,
37334                                                                             'patcount' => 0,
37335                                                                             'actcount' => 1,
37336                                                                             'items' => [
37337                                                                                          bless( {
37338                                                                                                   'subrule' => 'SCHEMA',
37339                                                                                                   'matchrule' => 0,
37340                                                                                                   'implicit' => undef,
37341                                                                                                   'argcode' => undef,
37342                                                                                                   'lookahead' => 0,
37343                                                                                                   'line' => 129
37344                                                                                                 }, 'Parse::RecDescent::Subrule' ),
37345                                                                                          bless( {
37346                                                                                                   'pattern' => '.',
37347                                                                                                   'hashname' => '__STRING1__',
37348                                                                                                   'description' => '\'.\'',
37349                                                                                                   'lookahead' => 0,
37350                                                                                                   'line' => 129
37351                                                                                                 }, 'Parse::RecDescent::Literal' ),
37352                                                                                          bless( {
37353                                                                                                   'subrule' => 'NAME',
37354                                                                                                   'matchrule' => 0,
37355                                                                                                   'implicit' => undef,
37356                                                                                                   'argcode' => undef,
37357                                                                                                   'lookahead' => 0,
37358                                                                                                   'line' => 129
37359                                                                                                 }, 'Parse::RecDescent::Subrule' ),
37360                                                                                          bless( {
37361                                                                                                   'hashname' => '__ACTION1__',
37362                                                                                                   'lookahead' => 0,
37363                                                                                                   'line' => 130,
37364                                                                                                   'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
37365                                                                                                 }, 'Parse::RecDescent::Action' )
37366                                                                                        ],
37367                                                                             'line' => undef
37368                                                                           }, 'Parse::RecDescent::Production' ),
37369                                                                    bless( {
37370                                                                             'number' => '1',
37371                                                                             'strcount' => 0,
37372                                                                             'dircount' => 0,
37373                                                                             'uncommit' => undef,
37374                                                                             'error' => undef,
37375                                                                             'patcount' => 0,
37376                                                                             'actcount' => 1,
37377                                                                             'items' => [
37378                                                                                          bless( {
37379                                                                                                   'subrule' => 'NAME',
37380                                                                                                   'matchrule' => 0,
37381                                                                                                   'implicit' => undef,
37382                                                                                                   'argcode' => undef,
37383                                                                                                   'lookahead' => 0,
37384                                                                                                   'line' => 131
37385                                                                                                 }, 'Parse::RecDescent::Subrule' ),
37386                                                                                          bless( {
37387                                                                                                   'hashname' => '__ACTION1__',
37388                                                                                                   'lookahead' => 0,
37389                                                                                                   'line' => 132,
37390                                                                                                   'code' => '{ $return = { name => $item[1] } }'
37391                                                                                                 }, 'Parse::RecDescent::Action' )
37392                                                                                        ],
37393                                                                             'line' => 131
37394                                                                           }, 'Parse::RecDescent::Production' )
37395                                                                  ],
37396                                                       'name' => 'view_name',
37397                                                       'vars' => '',
37398                                                       'line' => 129
37399                                                     }, 'Parse::RecDescent::Rule' ),
37400                               '_alternation_1_of_production_1_of_rule_cond' => bless( {
37401                                                                                         'impcount' => 0,
37402                                                                                         'calls' => [],
37403                                                                                         'changed' => 0,
37404                                                                                         'opcount' => 0,
37405                                                                                         'prods' => [
37406                                                                                                      bless( {
37407                                                                                                               'number' => '0',
37408                                                                                                               'strcount' => 0,
37409                                                                                                               'dircount' => 0,
37410                                                                                                               'uncommit' => undef,
37411                                                                                                               'error' => undef,
37412                                                                                                               'patcount' => 1,
37413                                                                                                               'actcount' => 0,
37414                                                                                                               'items' => [
37415                                                                                                                            bless( {
37416                                                                                                                                     'pattern' => 'AND',
37417                                                                                                                                     'hashname' => '__PATTERN1__',
37418                                                                                                                                     'description' => '/AND/i',
37419                                                                                                                                     'lookahead' => 0,
37420                                                                                                                                     'rdelim' => '/',
37421                                                                                                                                     'line' => 628,
37422                                                                                                                                     'mod' => 'i',
37423                                                                                                                                     'ldelim' => '/'
37424                                                                                                                                   }, 'Parse::RecDescent::Token' )
37425                                                                                                                          ],
37426                                                                                                               'line' => undef
37427                                                                                                             }, 'Parse::RecDescent::Production' ),
37428                                                                                                      bless( {
37429                                                                                                               'number' => '1',
37430                                                                                                               'strcount' => 0,
37431                                                                                                               'dircount' => 0,
37432                                                                                                               'uncommit' => undef,
37433                                                                                                               'error' => undef,
37434                                                                                                               'patcount' => 1,
37435                                                                                                               'actcount' => 0,
37436                                                                                                               'items' => [
37437                                                                                                                            bless( {
37438                                                                                                                                     'pattern' => 'OR',
37439                                                                                                                                     'hashname' => '__PATTERN1__',
37440                                                                                                                                     'description' => '/OR/i',
37441                                                                                                                                     'lookahead' => 0,
37442                                                                                                                                     'rdelim' => '/',
37443                                                                                                                                     'line' => 628,
37444                                                                                                                                     'mod' => 'i',
37445                                                                                                                                     'ldelim' => '/'
37446                                                                                                                                   }, 'Parse::RecDescent::Token' )
37447                                                                                                                          ],
37448                                                                                                               'line' => 628
37449                                                                                                             }, 'Parse::RecDescent::Production' )
37450                                                                                                    ],
37451                                                                                         'name' => '_alternation_1_of_production_1_of_rule_cond',
37452                                                                                         'vars' => '',
37453                                                                                         'line' => 628
37454                                                                                       }, 'Parse::RecDescent::Rule' ),
37455                               'numbering_function' => bless( {
37456                                                                'impcount' => 2,
37457                                                                'calls' => [
37458                                                                             'window_partition_clause',
37459                                                                             '_alternation_1_of_production_1_of_rule_numbering_function',
37460                                                                             '_alternation_2_of_production_1_of_rule_numbering_function'
37461                                                                           ],
37462                                                                'changed' => 0,
37463                                                                'opcount' => 0,
37464                                                                'prods' => [
37465                                                                             bless( {
37466                                                                                      'number' => '0',
37467                                                                                      'strcount' => 3,
37468                                                                                      'dircount' => 0,
37469                                                                                      'uncommit' => undef,
37470                                                                                      'error' => undef,
37471                                                                                      'patcount' => 2,
37472                                                                                      'actcount' => 0,
37473                                                                                      'items' => [
37474                                                                                                   bless( {
37475                                                                                                            'pattern' => 'ROW_NUMBER|ROWNUMBER',
37476                                                                                                            'hashname' => '__PATTERN1__',
37477                                                                                                            'description' => '/ROW_NUMBER|ROWNUMBER/i',
37478                                                                                                            'lookahead' => 0,
37479                                                                                                            'rdelim' => '/',
37480                                                                                                            'line' => 546,
37481                                                                                                            'mod' => 'i',
37482                                                                                                            'ldelim' => '/'
37483                                                                                                          }, 'Parse::RecDescent::Token' ),
37484                                                                                                   bless( {
37485                                                                                                            'pattern' => '()',
37486                                                                                                            'hashname' => '__STRING1__',
37487                                                                                                            'description' => '\'()\'',
37488                                                                                                            'lookahead' => 0,
37489                                                                                                            'line' => 546
37490                                                                                                          }, 'Parse::RecDescent::Literal' ),
37491                                                                                                   bless( {
37492                                                                                                            'pattern' => 'OVER',
37493                                                                                                            'hashname' => '__PATTERN2__',
37494                                                                                                            'description' => '/OVER/i',
37495                                                                                                            'lookahead' => 0,
37496                                                                                                            'rdelim' => '/',
37497                                                                                                            'line' => 546,
37498                                                                                                            'mod' => 'i',
37499                                                                                                            'ldelim' => '/'
37500                                                                                                          }, 'Parse::RecDescent::Token' ),
37501                                                                                                   bless( {
37502                                                                                                            'pattern' => '(',
37503                                                                                                            'hashname' => '__STRING2__',
37504                                                                                                            'description' => '\'(\'',
37505                                                                                                            'lookahead' => 0,
37506                                                                                                            'line' => 546
37507                                                                                                          }, 'Parse::RecDescent::Literal' ),
37508                                                                                                   bless( {
37509                                                                                                            'subrule' => 'window_partition_clause',
37510                                                                                                            'expected' => undef,
37511                                                                                                            'min' => 0,
37512                                                                                                            'argcode' => undef,
37513                                                                                                            'max' => 1,
37514                                                                                                            'matchrule' => 0,
37515                                                                                                            'repspec' => '?',
37516                                                                                                            'lookahead' => 0,
37517                                                                                                            'line' => 546
37518                                                                                                          }, 'Parse::RecDescent::Repetition' ),
37519                                                                                                   bless( {
37520                                                                                                            'subrule' => '_alternation_1_of_production_1_of_rule_numbering_function',
37521                                                                                                            'expected' => 'window_order_clause',
37522                                                                                                            'min' => 0,
37523                                                                                                            'argcode' => undef,
37524                                                                                                            'max' => 1,
37525                                                                                                            'matchrule' => 0,
37526                                                                                                            'repspec' => '?',
37527                                                                                                            'lookahead' => 0,
37528                                                                                                            'line' => 548
37529                                                                                                          }, 'Parse::RecDescent::Repetition' ),
37530                                                                                                   bless( {
37531                                                                                                            'subrule' => '_alternation_2_of_production_1_of_rule_numbering_function',
37532                                                                                                            'expected' => '/RANGE\\\\s+BETWEEN\\\\s+UNBOUNDED\\\\s+PRECEDING\\\\s+AND\\\\s+UNBBOUNDED\\\\s+FOLLOWING/i, or window_aggregation_group_clause',
37533                                                                                                            'min' => 0,
37534                                                                                                            'argcode' => undef,
37535                                                                                                            'max' => 1,
37536                                                                                                            'matchrule' => 0,
37537                                                                                                            'repspec' => '?',
37538                                                                                                            'lookahead' => 0,
37539                                                                                                            'line' => 551
37540                                                                                                          }, 'Parse::RecDescent::Repetition' ),
37541                                                                                                   bless( {
37542                                                                                                            'pattern' => ')',
37543                                                                                                            'hashname' => '__STRING3__',
37544                                                                                                            'description' => '\')\'',
37545                                                                                                            'lookahead' => 0,
37546                                                                                                            'line' => 551
37547                                                                                                          }, 'Parse::RecDescent::Literal' )
37548                                                                                                 ],
37549                                                                                      'line' => undef
37550                                                                                    }, 'Parse::RecDescent::Production' )
37551                                                                           ],
37552                                                                'name' => 'numbering_function',
37553                                                                'vars' => '',
37554                                                                'line' => 546
37555                                                              }, 'Parse::RecDescent::Rule' ),
37556                               '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause' => bless( {
37557                                                                                                                    'impcount' => 0,
37558                                                                                                                    'calls' => [],
37559                                                                                                                    'changed' => 0,
37560                                                                                                                    'opcount' => 0,
37561                                                                                                                    'prods' => [
37562                                                                                                                                 bless( {
37563                                                                                                                                          'number' => '0',
37564                                                                                                                                          'strcount' => 0,
37565                                                                                                                                          'dircount' => 0,
37566                                                                                                                                          'uncommit' => undef,
37567                                                                                                                                          'error' => undef,
37568                                                                                                                                          'patcount' => 1,
37569                                                                                                                                          'actcount' => 0,
37570                                                                                                                                          'items' => [
37571                                                                                                                                                       bless( {
37572                                                                                                                                                                'pattern' => 'ROWS',
37573                                                                                                                                                                'hashname' => '__PATTERN1__',
37574                                                                                                                                                                'description' => '/ROWS/i',
37575                                                                                                                                                                'lookahead' => 0,
37576                                                                                                                                                                'rdelim' => '/',
37577                                                                                                                                                                'line' => 626,
37578                                                                                                                                                                'mod' => 'i',
37579                                                                                                                                                                'ldelim' => '/'
37580                                                                                                                                                              }, 'Parse::RecDescent::Token' )
37581                                                                                                                                                     ],
37582                                                                                                                                          'line' => undef
37583                                                                                                                                        }, 'Parse::RecDescent::Production' ),
37584                                                                                                                                 bless( {
37585                                                                                                                                          'number' => '1',
37586                                                                                                                                          'strcount' => 0,
37587                                                                                                                                          'dircount' => 0,
37588                                                                                                                                          'uncommit' => undef,
37589                                                                                                                                          'error' => undef,
37590                                                                                                                                          'patcount' => 1,
37591                                                                                                                                          'actcount' => 0,
37592                                                                                                                                          'items' => [
37593                                                                                                                                                       bless( {
37594                                                                                                                                                                'pattern' => 'RANGE',
37595                                                                                                                                                                'hashname' => '__PATTERN1__',
37596                                                                                                                                                                'description' => '/RANGE/i',
37597                                                                                                                                                                'lookahead' => 0,
37598                                                                                                                                                                'rdelim' => '/',
37599                                                                                                                                                                'line' => 627,
37600                                                                                                                                                                'mod' => 'i',
37601                                                                                                                                                                'ldelim' => '/'
37602                                                                                                                                                              }, 'Parse::RecDescent::Token' )
37603                                                                                                                                                     ],
37604                                                                                                                                          'line' => 627
37605                                                                                                                                        }, 'Parse::RecDescent::Production' )
37606                                                                                                                               ],
37607                                                                                                                    'name' => '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
37608                                                                                                                    'vars' => '',
37609                                                                                                                    'line' => 626
37610                                                                                                                  }, 'Parse::RecDescent::Rule' ),
37611                               'group_bound1' => bless( {
37612                                                          'impcount' => 0,
37613                                                          'calls' => [
37614                                                                       'unsigned_constant'
37615                                                                     ],
37616                                                          'changed' => 0,
37617                                                          'opcount' => 0,
37618                                                          'prods' => [
37619                                                                       bless( {
37620                                                                                'number' => '0',
37621                                                                                'strcount' => 0,
37622                                                                                'dircount' => 0,
37623                                                                                'uncommit' => undef,
37624                                                                                'error' => undef,
37625                                                                                'patcount' => 1,
37626                                                                                'actcount' => 0,
37627                                                                                'items' => [
37628                                                                                             bless( {
37629                                                                                                      'pattern' => 'UNBOUNDED\\s+PRECEDING',
37630                                                                                                      'hashname' => '__PATTERN1__',
37631                                                                                                      'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
37632                                                                                                      'lookahead' => 0,
37633                                                                                                      'rdelim' => '/',
37634                                                                                                      'line' => 580,
37635                                                                                                      'mod' => 'i',
37636                                                                                                      'ldelim' => '/'
37637                                                                                                    }, 'Parse::RecDescent::Token' )
37638                                                                                           ],
37639                                                                                'line' => undef
37640                                                                              }, 'Parse::RecDescent::Production' ),
37641                                                                       bless( {
37642                                                                                'number' => '1',
37643                                                                                'strcount' => 0,
37644                                                                                'dircount' => 0,
37645                                                                                'uncommit' => undef,
37646                                                                                'error' => undef,
37647                                                                                'patcount' => 1,
37648                                                                                'actcount' => 0,
37649                                                                                'items' => [
37650                                                                                             bless( {
37651                                                                                                      'subrule' => 'unsigned_constant',
37652                                                                                                      'matchrule' => 0,
37653                                                                                                      'implicit' => undef,
37654                                                                                                      'argcode' => undef,
37655                                                                                                      'lookahead' => 0,
37656                                                                                                      'line' => 581
37657                                                                                                    }, 'Parse::RecDescent::Subrule' ),
37658                                                                                             bless( {
37659                                                                                                      'pattern' => 'PRECEDING',
37660                                                                                                      'hashname' => '__PATTERN1__',
37661                                                                                                      'description' => '/PRECEDING/i',
37662                                                                                                      'lookahead' => 0,
37663                                                                                                      'rdelim' => '/',
37664                                                                                                      'line' => 581,
37665                                                                                                      'mod' => 'i',
37666                                                                                                      'ldelim' => '/'
37667                                                                                                    }, 'Parse::RecDescent::Token' )
37668                                                                                           ],
37669                                                                                'line' => 581
37670                                                                              }, 'Parse::RecDescent::Production' ),
37671                                                                       bless( {
37672                                                                                'number' => '2',
37673                                                                                'strcount' => 0,
37674                                                                                'dircount' => 0,
37675                                                                                'uncommit' => undef,
37676                                                                                'error' => undef,
37677                                                                                'patcount' => 1,
37678                                                                                'actcount' => 0,
37679                                                                                'items' => [
37680                                                                                             bless( {
37681                                                                                                      'subrule' => 'unsigned_constant',
37682                                                                                                      'matchrule' => 0,
37683                                                                                                      'implicit' => undef,
37684                                                                                                      'argcode' => undef,
37685                                                                                                      'lookahead' => 0,
37686                                                                                                      'line' => 582
37687                                                                                                    }, 'Parse::RecDescent::Subrule' ),
37688                                                                                             bless( {
37689                                                                                                      'pattern' => 'FOLLOWING',
37690                                                                                                      'hashname' => '__PATTERN1__',
37691                                                                                                      'description' => '/FOLLOWING/i',
37692                                                                                                      'lookahead' => 0,
37693                                                                                                      'rdelim' => '/',
37694                                                                                                      'line' => 582,
37695                                                                                                      'mod' => 'i',
37696                                                                                                      'ldelim' => '/'
37697                                                                                                    }, 'Parse::RecDescent::Token' )
37698                                                                                           ],
37699                                                                                'line' => 582
37700                                                                              }, 'Parse::RecDescent::Production' ),
37701                                                                       bless( {
37702                                                                                'number' => '3',
37703                                                                                'strcount' => 0,
37704                                                                                'dircount' => 0,
37705                                                                                'uncommit' => undef,
37706                                                                                'error' => undef,
37707                                                                                'patcount' => 1,
37708                                                                                'actcount' => 0,
37709                                                                                'items' => [
37710                                                                                             bless( {
37711                                                                                                      'pattern' => 'CURRENT\\s+ROW',
37712                                                                                                      'hashname' => '__PATTERN1__',
37713                                                                                                      'description' => '/CURRENT\\\\s+ROW/i',
37714                                                                                                      'lookahead' => 0,
37715                                                                                                      'rdelim' => '/',
37716                                                                                                      'line' => 583,
37717                                                                                                      'mod' => 'i',
37718                                                                                                      'ldelim' => '/'
37719                                                                                                    }, 'Parse::RecDescent::Token' )
37720                                                                                           ],
37721                                                                                'line' => 583
37722                                                                              }, 'Parse::RecDescent::Production' )
37723                                                                     ],
37724                                                          'name' => 'group_bound1',
37725                                                          'vars' => '',
37726                                                          'line' => 580
37727                                                        }, 'Parse::RecDescent::Rule' ),
37728                               'OLAP_function' => bless( {
37729                                                           'impcount' => 0,
37730                                                           'calls' => [
37731                                                                        'ranking_function',
37732                                                                        'numbering_function',
37733                                                                        'aggregation_function'
37734                                                                      ],
37735                                                           'changed' => 0,
37736                                                           'opcount' => 0,
37737                                                           'prods' => [
37738                                                                        bless( {
37739                                                                                 'number' => '0',
37740                                                                                 'strcount' => 0,
37741                                                                                 'dircount' => 0,
37742                                                                                 'uncommit' => undef,
37743                                                                                 'error' => undef,
37744                                                                                 'patcount' => 0,
37745                                                                                 'actcount' => 0,
37746                                                                                 'items' => [
37747                                                                                              bless( {
37748                                                                                                       'subrule' => 'ranking_function',
37749                                                                                                       'matchrule' => 0,
37750                                                                                                       'implicit' => undef,
37751                                                                                                       'argcode' => undef,
37752                                                                                                       'lookahead' => 0,
37753                                                                                                       'line' => 538
37754                                                                                                     }, 'Parse::RecDescent::Subrule' )
37755                                                                                            ],
37756                                                                                 'line' => undef
37757                                                                               }, 'Parse::RecDescent::Production' ),
37758                                                                        bless( {
37759                                                                                 'number' => '1',
37760                                                                                 'strcount' => 0,
37761                                                                                 'dircount' => 0,
37762                                                                                 'uncommit' => undef,
37763                                                                                 'error' => undef,
37764                                                                                 'patcount' => 0,
37765                                                                                 'actcount' => 0,
37766                                                                                 'items' => [
37767                                                                                              bless( {
37768                                                                                                       'subrule' => 'numbering_function',
37769                                                                                                       'matchrule' => 0,
37770                                                                                                       'implicit' => undef,
37771                                                                                                       'argcode' => undef,
37772                                                                                                       'lookahead' => 0,
37773                                                                                                       'line' => 539
37774                                                                                                     }, 'Parse::RecDescent::Subrule' )
37775                                                                                            ],
37776                                                                                 'line' => 539
37777                                                                               }, 'Parse::RecDescent::Production' ),
37778                                                                        bless( {
37779                                                                                 'number' => '2',
37780                                                                                 'strcount' => 0,
37781                                                                                 'dircount' => 0,
37782                                                                                 'uncommit' => undef,
37783                                                                                 'error' => undef,
37784                                                                                 'patcount' => 0,
37785                                                                                 'actcount' => 0,
37786                                                                                 'items' => [
37787                                                                                              bless( {
37788                                                                                                       'subrule' => 'aggregation_function',
37789                                                                                                       'matchrule' => 0,
37790                                                                                                       'implicit' => undef,
37791                                                                                                       'argcode' => undef,
37792                                                                                                       'lookahead' => 0,
37793                                                                                                       'line' => 540
37794                                                                                                     }, 'Parse::RecDescent::Subrule' )
37795                                                                                            ],
37796                                                                                 'line' => 540
37797                                                                               }, 'Parse::RecDescent::Production' )
37798                                                                      ],
37799                                                           'name' => 'OLAP_function',
37800                                                           'vars' => '',
37801                                                           'line' => 538
37802                                                         }, 'Parse::RecDescent::Rule' ),
37803                               '_alternation_1_of_production_30_of_rule_sysibm_function' => bless( {
37804                                                                                                     'impcount' => 0,
37805                                                                                                     'calls' => [],
37806                                                                                                     'changed' => 0,
37807                                                                                                     'opcount' => 0,
37808                                                                                                     'prods' => [
37809                                                                                                                  bless( {
37810                                                                                                                           'number' => '0',
37811                                                                                                                           'strcount' => 0,
37812                                                                                                                           'dircount' => 0,
37813                                                                                                                           'uncommit' => undef,
37814                                                                                                                           'error' => undef,
37815                                                                                                                           'patcount' => 1,
37816                                                                                                                           'actcount' => 0,
37817                                                                                                                           'items' => [
37818                                                                                                                                        bless( {
37819                                                                                                                                                 'pattern' => 'DOUBLE',
37820                                                                                                                                                 'hashname' => '__PATTERN1__',
37821                                                                                                                                                 'description' => '/DOUBLE/i',
37822                                                                                                                                                 'lookahead' => 0,
37823                                                                                                                                                 'rdelim' => '/',
37824                                                                                                                                                 'line' => 628,
37825                                                                                                                                                 'mod' => 'i',
37826                                                                                                                                                 'ldelim' => '/'
37827                                                                                                                                               }, 'Parse::RecDescent::Token' )
37828                                                                                                                                      ],
37829                                                                                                                           'line' => undef
37830                                                                                                                         }, 'Parse::RecDescent::Production' ),
37831                                                                                                                  bless( {
37832                                                                                                                           'number' => '1',
37833                                                                                                                           'strcount' => 0,
37834                                                                                                                           'dircount' => 0,
37835                                                                                                                           'uncommit' => undef,
37836                                                                                                                           'error' => undef,
37837                                                                                                                           'patcount' => 1,
37838                                                                                                                           'actcount' => 0,
37839                                                                                                                           'items' => [
37840                                                                                                                                        bless( {
37841                                                                                                                                                 'pattern' => 'DOUBLE_PRECISION',
37842                                                                                                                                                 'hashname' => '__PATTERN1__',
37843                                                                                                                                                 'description' => '/DOUBLE_PRECISION/i',
37844                                                                                                                                                 'lookahead' => 0,
37845                                                                                                                                                 'rdelim' => '/',
37846                                                                                                                                                 'line' => 628,
37847                                                                                                                                                 'mod' => 'i',
37848                                                                                                                                                 'ldelim' => '/'
37849                                                                                                                                               }, 'Parse::RecDescent::Token' )
37850                                                                                                                                      ],
37851                                                                                                                           'line' => 628
37852                                                                                                                         }, 'Parse::RecDescent::Production' )
37853                                                                                                                ],
37854                                                                                                     'name' => '_alternation_1_of_production_30_of_rule_sysibm_function',
37855                                                                                                     'vars' => '',
37856                                                                                                     'line' => 628
37857                                                                                                   }, 'Parse::RecDescent::Rule' ),
37858                               'FULL' => bless( {
37859                                                  'impcount' => 0,
37860                                                  'calls' => [],
37861                                                  'changed' => 0,
37862                                                  'opcount' => 0,
37863                                                  'prods' => [
37864                                                               bless( {
37865                                                                        'number' => '0',
37866                                                                        'strcount' => 0,
37867                                                                        'dircount' => 0,
37868                                                                        'uncommit' => undef,
37869                                                                        'error' => undef,
37870                                                                        'patcount' => 1,
37871                                                                        'actcount' => 0,
37872                                                                        'items' => [
37873                                                                                     bless( {
37874                                                                                              'pattern' => 'full',
37875                                                                                              'hashname' => '__PATTERN1__',
37876                                                                                              'description' => '/full/i',
37877                                                                                              'lookahead' => 0,
37878                                                                                              'rdelim' => '/',
37879                                                                                              'line' => 113,
37880                                                                                              'mod' => 'i',
37881                                                                                              'ldelim' => '/'
37882                                                                                            }, 'Parse::RecDescent::Token' )
37883                                                                                   ],
37884                                                                        'line' => undef
37885                                                                      }, 'Parse::RecDescent::Production' )
37886                                                             ],
37887                                                  'name' => 'FULL',
37888                                                  'vars' => '',
37889                                                  'line' => 113
37890                                                }, 'Parse::RecDescent::Rule' ),
37891                               '_alternation_2_of_production_1_of_rule_cast_specification' => bless( {
37892                                                                                                       'impcount' => 1,
37893                                                                                                       'calls' => [
37894                                                                                                                    '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification'
37895                                                                                                                  ],
37896                                                                                                       'changed' => 0,
37897                                                                                                       'opcount' => 0,
37898                                                                                                       'prods' => [
37899                                                                                                                    bless( {
37900                                                                                                                             'number' => '0',
37901                                                                                                                             'strcount' => 0,
37902                                                                                                                             'dircount' => 0,
37903                                                                                                                             'uncommit' => undef,
37904                                                                                                                             'error' => undef,
37905                                                                                                                             'patcount' => 1,
37906                                                                                                                             'actcount' => 0,
37907                                                                                                                             'items' => [
37908                                                                                                                                          bless( {
37909                                                                                                                                                   'pattern' => 'SCOPE',
37910                                                                                                                                                   'hashname' => '__PATTERN1__',
37911                                                                                                                                                   'description' => '/SCOPE/',
37912                                                                                                                                                   'lookahead' => 0,
37913                                                                                                                                                   'rdelim' => '/',
37914                                                                                                                                                   'line' => 625,
37915                                                                                                                                                   'mod' => '',
37916                                                                                                                                                   'ldelim' => '/'
37917                                                                                                                                                 }, 'Parse::RecDescent::Token' ),
37918                                                                                                                                          bless( {
37919                                                                                                                                                   'subrule' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification',
37920                                                                                                                                                   'matchrule' => 0,
37921                                                                                                                                                   'implicit' => 'typed_table_name, or typed_view_name',
37922                                                                                                                                                   'argcode' => undef,
37923                                                                                                                                                   'lookahead' => 0,
37924                                                                                                                                                   'line' => 627
37925                                                                                                                                                 }, 'Parse::RecDescent::Subrule' )
37926                                                                                                                                        ],
37927                                                                                                                             'line' => undef
37928                                                                                                                           }, 'Parse::RecDescent::Production' )
37929                                                                                                                  ],
37930                                                                                                       'name' => '_alternation_2_of_production_1_of_rule_cast_specification',
37931                                                                                                       'vars' => '',
37932                                                                                                       'line' => 625
37933                                                                                                     }, 'Parse::RecDescent::Rule' ),
37934                               'case_expression' => bless( {
37935                                                             'impcount' => 2,
37936                                                             'calls' => [
37937                                                                          '_alternation_1_of_production_1_of_rule_case_expression',
37938                                                                          '_alternation_2_of_production_1_of_rule_case_expression'
37939                                                                        ],
37940                                                             'changed' => 0,
37941                                                             'opcount' => 0,
37942                                                             'prods' => [
37943                                                                          bless( {
37944                                                                                   'number' => '0',
37945                                                                                   'strcount' => 0,
37946                                                                                   'dircount' => 0,
37947                                                                                   'uncommit' => undef,
37948                                                                                   'error' => undef,
37949                                                                                   'patcount' => 2,
37950                                                                                   'actcount' => 0,
37951                                                                                   'items' => [
37952                                                                                                bless( {
37953                                                                                                         'pattern' => 'CASE',
37954                                                                                                         'hashname' => '__PATTERN1__',
37955                                                                                                         'description' => '/CASE/i',
37956                                                                                                         'lookahead' => 0,
37957                                                                                                         'rdelim' => '/',
37958                                                                                                         'line' => 496,
37959                                                                                                         'mod' => 'i',
37960                                                                                                         'ldelim' => '/'
37961                                                                                                       }, 'Parse::RecDescent::Token' ),
37962                                                                                                bless( {
37963                                                                                                         'subrule' => '_alternation_1_of_production_1_of_rule_case_expression',
37964                                                                                                         'matchrule' => 0,
37965                                                                                                         'implicit' => 'searched_when_clause, or simple_when_clause',
37966                                                                                                         'argcode' => undef,
37967                                                                                                         'lookahead' => 0,
37968                                                                                                         'line' => 498
37969                                                                                                       }, 'Parse::RecDescent::Subrule' ),
37970                                                                                                bless( {
37971                                                                                                         'subrule' => '_alternation_2_of_production_1_of_rule_case_expression',
37972                                                                                                         'expected' => '/ELSE\\\\s+NULL/i, or /ELSE/i',
37973                                                                                                         'min' => 0,
37974                                                                                                         'argcode' => undef,
37975                                                                                                         'max' => 1,
37976                                                                                                         'matchrule' => 0,
37977                                                                                                         'repspec' => '?',
37978                                                                                                         'lookahead' => 0,
37979                                                                                                         'line' => 501
37980                                                                                                       }, 'Parse::RecDescent::Repetition' ),
37981                                                                                                bless( {
37982                                                                                                         'pattern' => 'END',
37983                                                                                                         'hashname' => '__PATTERN2__',
37984                                                                                                         'description' => '/END/i',
37985                                                                                                         'lookahead' => 0,
37986                                                                                                         'rdelim' => '/',
37987                                                                                                         'line' => 501,
37988                                                                                                         'mod' => 'i',
37989                                                                                                         'ldelim' => '/'
37990                                                                                                       }, 'Parse::RecDescent::Token' )
37991                                                                                              ],
37992                                                                                   'line' => undef
37993                                                                                 }, 'Parse::RecDescent::Production' )
37994                                                                        ],
37995                                                             'name' => 'case_expression',
37996                                                             'vars' => '',
37997                                                             'line' => 496
37998                                                           }, 'Parse::RecDescent::Rule' ),
37999                               'operator' => bless( {
38000                                                      'impcount' => 0,
38001                                                      'calls' => [
38002                                                                   '_alternation_1_of_production_1_of_rule_operator'
38003                                                                 ],
38004                                                      'changed' => 0,
38005                                                      'opcount' => 0,
38006                                                      'prods' => [
38007                                                                   bless( {
38008                                                                            'number' => '0',
38009                                                                            'strcount' => 0,
38010                                                                            'dircount' => 0,
38011                                                                            'uncommit' => undef,
38012                                                                            'error' => undef,
38013                                                                            'patcount' => 0,
38014                                                                            'actcount' => 0,
38015                                                                            'items' => [
38016                                                                                         bless( {
38017                                                                                                  'subrule' => '_alternation_1_of_production_1_of_rule_operator',
38018                                                                                                  'matchrule' => 0,
38019                                                                                                  'implicit' => '/CONCAT/i, or \'||\'',
38020                                                                                                  'argcode' => undef,
38021                                                                                                  'lookahead' => 0,
38022                                                                                                  'line' => 321
38023                                                                                                }, 'Parse::RecDescent::Subrule' )
38024                                                                                       ],
38025                                                                            'line' => undef
38026                                                                          }, 'Parse::RecDescent::Production' ),
38027                                                                   bless( {
38028                                                                            'number' => '1',
38029                                                                            'strcount' => 1,
38030                                                                            'dircount' => 0,
38031                                                                            'uncommit' => undef,
38032                                                                            'error' => undef,
38033                                                                            'patcount' => 0,
38034                                                                            'actcount' => 0,
38035                                                                            'items' => [
38036                                                                                         bless( {
38037                                                                                                  'pattern' => '/',
38038                                                                                                  'hashname' => '__STRING1__',
38039                                                                                                  'description' => '\'/\'',
38040                                                                                                  'lookahead' => 0,
38041                                                                                                  'line' => 321
38042                                                                                                }, 'Parse::RecDescent::Literal' )
38043                                                                                       ],
38044                                                                            'line' => 321
38045                                                                          }, 'Parse::RecDescent::Production' ),
38046                                                                   bless( {
38047                                                                            'number' => '2',
38048                                                                            'strcount' => 1,
38049                                                                            'dircount' => 0,
38050                                                                            'uncommit' => undef,
38051                                                                            'error' => undef,
38052                                                                            'patcount' => 0,
38053                                                                            'actcount' => 0,
38054                                                                            'items' => [
38055                                                                                         bless( {
38056                                                                                                  'pattern' => '*',
38057                                                                                                  'hashname' => '__STRING1__',
38058                                                                                                  'description' => '\'*\'',
38059                                                                                                  'lookahead' => 0,
38060                                                                                                  'line' => 321
38061                                                                                                }, 'Parse::RecDescent::Literal' )
38062                                                                                       ],
38063                                                                            'line' => 321
38064                                                                          }, 'Parse::RecDescent::Production' ),
38065                                                                   bless( {
38066                                                                            'number' => '3',
38067                                                                            'strcount' => 1,
38068                                                                            'dircount' => 0,
38069                                                                            'uncommit' => undef,
38070                                                                            'error' => undef,
38071                                                                            'patcount' => 0,
38072                                                                            'actcount' => 0,
38073                                                                            'items' => [
38074                                                                                         bless( {
38075                                                                                                  'pattern' => '+',
38076                                                                                                  'hashname' => '__STRING1__',
38077                                                                                                  'description' => '\'+\'',
38078                                                                                                  'lookahead' => 0,
38079                                                                                                  'line' => 321
38080                                                                                                }, 'Parse::RecDescent::Literal' )
38081                                                                                       ],
38082                                                                            'line' => 321
38083                                                                          }, 'Parse::RecDescent::Production' ),
38084                                                                   bless( {
38085                                                                            'number' => '4',
38086                                                                            'strcount' => 1,
38087                                                                            'dircount' => 0,
38088                                                                            'uncommit' => undef,
38089                                                                            'error' => undef,
38090                                                                            'patcount' => 0,
38091                                                                            'actcount' => 0,
38092                                                                            'items' => [
38093                                                                                         bless( {
38094                                                                                                  'pattern' => '-',
38095                                                                                                  'hashname' => '__STRING1__',
38096                                                                                                  'description' => '\'-\'',
38097                                                                                                  'lookahead' => 0,
38098                                                                                                  'line' => 321
38099                                                                                                }, 'Parse::RecDescent::Literal' )
38100                                                                                       ],
38101                                                                            'line' => 321
38102                                                                          }, 'Parse::RecDescent::Production' )
38103                                                                 ],
38104                                                      'name' => 'operator',
38105                                                      'vars' => '',
38106                                                      'line' => 321
38107                                                    }, 'Parse::RecDescent::Rule' ),
38108                               '_alternation_1_of_production_2_of_rule_type' => bless( {
38109                                                                                         'impcount' => 0,
38110                                                                                         'calls' => [],
38111                                                                                         'changed' => 0,
38112                                                                                         'opcount' => 0,
38113                                                                                         'prods' => [
38114                                                                                                      bless( {
38115                                                                                                               'number' => '0',
38116                                                                                                               'strcount' => 0,
38117                                                                                                               'dircount' => 0,
38118                                                                                                               'uncommit' => undef,
38119                                                                                                               'error' => undef,
38120                                                                                                               'patcount' => 1,
38121                                                                                                               'actcount' => 0,
38122                                                                                                               'items' => [
38123                                                                                                                            bless( {
38124                                                                                                                                     'pattern' => 'INSERT',
38125                                                                                                                                     'hashname' => '__PATTERN1__',
38126                                                                                                                                     'description' => '/INSERT/i',
38127                                                                                                                                     'lookahead' => 0,
38128                                                                                                                                     'rdelim' => '/',
38129                                                                                                                                     'line' => 628,
38130                                                                                                                                     'mod' => 'i',
38131                                                                                                                                     'ldelim' => '/'
38132                                                                                                                                   }, 'Parse::RecDescent::Token' )
38133                                                                                                                          ],
38134                                                                                                               'line' => undef
38135                                                                                                             }, 'Parse::RecDescent::Production' ),
38136                                                                                                      bless( {
38137                                                                                                               'number' => '1',
38138                                                                                                               'strcount' => 0,
38139                                                                                                               'dircount' => 0,
38140                                                                                                               'uncommit' => undef,
38141                                                                                                               'error' => undef,
38142                                                                                                               'patcount' => 1,
38143                                                                                                               'actcount' => 0,
38144                                                                                                               'items' => [
38145                                                                                                                            bless( {
38146                                                                                                                                     'pattern' => 'DELETE',
38147                                                                                                                                     'hashname' => '__PATTERN1__',
38148                                                                                                                                     'description' => '/DELETE/i',
38149                                                                                                                                     'lookahead' => 0,
38150                                                                                                                                     'rdelim' => '/',
38151                                                                                                                                     'line' => 628,
38152                                                                                                                                     'mod' => 'i',
38153                                                                                                                                     'ldelim' => '/'
38154                                                                                                                                   }, 'Parse::RecDescent::Token' )
38155                                                                                                                          ],
38156                                                                                                               'line' => 628
38157                                                                                                             }, 'Parse::RecDescent::Production' ),
38158                                                                                                      bless( {
38159                                                                                                               'number' => '2',
38160                                                                                                               'strcount' => 0,
38161                                                                                                               'dircount' => 0,
38162                                                                                                               'uncommit' => undef,
38163                                                                                                               'error' => undef,
38164                                                                                                               'patcount' => 1,
38165                                                                                                               'actcount' => 0,
38166                                                                                                               'items' => [
38167                                                                                                                            bless( {
38168                                                                                                                                     'pattern' => 'UPDATE',
38169                                                                                                                                     'hashname' => '__PATTERN1__',
38170                                                                                                                                     'description' => '/UPDATE/i',
38171                                                                                                                                     'lookahead' => 0,
38172                                                                                                                                     'rdelim' => '/',
38173                                                                                                                                     'line' => 628,
38174                                                                                                                                     'mod' => 'i',
38175                                                                                                                                     'ldelim' => '/'
38176                                                                                                                                   }, 'Parse::RecDescent::Token' )
38177                                                                                                                          ],
38178                                                                                                               'line' => 628
38179                                                                                                             }, 'Parse::RecDescent::Production' )
38180                                                                                                    ],
38181                                                                                         'name' => '_alternation_1_of_production_2_of_rule_type',
38182                                                                                         'vars' => '',
38183                                                                                         'line' => 628
38184                                                                                       }, 'Parse::RecDescent::Rule' ),
38185                               '_alternation_1_of_production_8_of_rule_sysibm_function' => bless( {
38186                                                                                                    'impcount' => 0,
38187                                                                                                    'calls' => [],
38188                                                                                                    'changed' => 0,
38189                                                                                                    'opcount' => 0,
38190                                                                                                    'prods' => [
38191                                                                                                                 bless( {
38192                                                                                                                          'number' => '0',
38193                                                                                                                          'strcount' => 0,
38194                                                                                                                          'dircount' => 0,
38195                                                                                                                          'uncommit' => undef,
38196                                                                                                                          'error' => undef,
38197                                                                                                                          'patcount' => 1,
38198                                                                                                                          'actcount' => 0,
38199                                                                                                                          'items' => [
38200                                                                                                                                       bless( {
38201                                                                                                                                                'pattern' => 'CONCAT',
38202                                                                                                                                                'hashname' => '__PATTERN1__',
38203                                                                                                                                                'description' => '/CONCAT/',
38204                                                                                                                                                'lookahead' => 0,
38205                                                                                                                                                'rdelim' => '/',
38206                                                                                                                                                'line' => 628,
38207                                                                                                                                                'mod' => '',
38208                                                                                                                                                'ldelim' => '/'
38209                                                                                                                                              }, 'Parse::RecDescent::Token' )
38210                                                                                                                                     ],
38211                                                                                                                          'line' => undef
38212                                                                                                                        }, 'Parse::RecDescent::Production' ),
38213                                                                                                                 bless( {
38214                                                                                                                          'number' => '1',
38215                                                                                                                          'strcount' => 1,
38216                                                                                                                          'dircount' => 0,
38217                                                                                                                          'uncommit' => undef,
38218                                                                                                                          'error' => undef,
38219                                                                                                                          'patcount' => 0,
38220                                                                                                                          'actcount' => 0,
38221                                                                                                                          'items' => [
38222                                                                                                                                       bless( {
38223                                                                                                                                                'pattern' => '||',
38224                                                                                                                                                'hashname' => '__STRING1__',
38225                                                                                                                                                'description' => '\'||\'',
38226                                                                                                                                                'lookahead' => 0,
38227                                                                                                                                                'line' => 628
38228                                                                                                                                              }, 'Parse::RecDescent::Literal' )
38229                                                                                                                                     ],
38230                                                                                                                          'line' => 628
38231                                                                                                                        }, 'Parse::RecDescent::Production' )
38232                                                                                                               ],
38233                                                                                                    'name' => '_alternation_1_of_production_8_of_rule_sysibm_function',
38234                                                                                                    'vars' => '',
38235                                                                                                    'line' => 628
38236                                                                                                  }, 'Parse::RecDescent::Rule' ),
38237                               'sequence_reference' => bless( {
38238                                                                'impcount' => 0,
38239                                                                'calls' => [
38240                                                                             'nextval_expression',
38241                                                                             'prevval_expression'
38242                                                                           ],
38243                                                                'changed' => 0,
38244                                                                'opcount' => 0,
38245                                                                'prods' => [
38246                                                                             bless( {
38247                                                                                      'number' => '0',
38248                                                                                      'strcount' => 0,
38249                                                                                      'dircount' => 0,
38250                                                                                      'uncommit' => undef,
38251                                                                                      'error' => undef,
38252                                                                                      'patcount' => 0,
38253                                                                                      'actcount' => 0,
38254                                                                                      'items' => [
38255                                                                                                   bless( {
38256                                                                                                            'subrule' => 'nextval_expression',
38257                                                                                                            'matchrule' => 0,
38258                                                                                                            'implicit' => undef,
38259                                                                                                            'argcode' => undef,
38260                                                                                                            'lookahead' => 0,
38261                                                                                                            'line' => 608
38262                                                                                                          }, 'Parse::RecDescent::Subrule' )
38263                                                                                                 ],
38264                                                                                      'line' => undef
38265                                                                                    }, 'Parse::RecDescent::Production' ),
38266                                                                             bless( {
38267                                                                                      'number' => '1',
38268                                                                                      'strcount' => 0,
38269                                                                                      'dircount' => 0,
38270                                                                                      'uncommit' => undef,
38271                                                                                      'error' => undef,
38272                                                                                      'patcount' => 0,
38273                                                                                      'actcount' => 0,
38274                                                                                      'items' => [
38275                                                                                                   bless( {
38276                                                                                                            'subrule' => 'prevval_expression',
38277                                                                                                            'matchrule' => 0,
38278                                                                                                            'implicit' => undef,
38279                                                                                                            'argcode' => undef,
38280                                                                                                            'lookahead' => 0,
38281                                                                                                            'line' => 609
38282                                                                                                          }, 'Parse::RecDescent::Subrule' )
38283                                                                                                 ],
38284                                                                                      'line' => 609
38285                                                                                    }, 'Parse::RecDescent::Production' )
38286                                                                           ],
38287                                                                'name' => 'sequence_reference',
38288                                                                'vars' => '',
38289                                                                'line' => 608
38290                                                              }, 'Parse::RecDescent::Rule' ),
38291                               'sysibm_function' => bless( {
38292                                                             'impcount' => 0,
38293                                                             'calls' => [
38294                                                                          '_alternation_1_of_production_1_of_rule_sysibm_function',
38295                                                                          '_alternation_1_of_production_8_of_rule_sysibm_function',
38296                                                                          '_alternation_1_of_production_9_of_rule_sysibm_function',
38297                                                                          '_alternation_1_of_production_12_of_rule_sysibm_function',
38298                                                                          '_alternation_1_of_production_17_of_rule_sysibm_function',
38299                                                                          '_alternation_1_of_production_30_of_rule_sysibm_function',
38300                                                                          '_alternation_1_of_production_41_of_rule_sysibm_function',
38301                                                                          '_alternation_1_of_production_42_of_rule_sysibm_function',
38302                                                                          '_alternation_1_of_production_63_of_rule_sysibm_function',
38303                                                                          '_alternation_1_of_production_83_of_rule_sysibm_function',
38304                                                                          '_alternation_1_of_production_87_of_rule_sysibm_function'
38305                                                                        ],
38306                                                             'changed' => 0,
38307                                                             'opcount' => 0,
38308                                                             'prods' => [
38309                                                                          bless( {
38310                                                                                   'number' => '0',
38311                                                                                   'strcount' => 0,
38312                                                                                   'dircount' => 0,
38313                                                                                   'uncommit' => undef,
38314                                                                                   'error' => undef,
38315                                                                                   'patcount' => 0,
38316                                                                                   'actcount' => 0,
38317                                                                                   'items' => [
38318                                                                                                bless( {
38319                                                                                                         'subrule' => '_alternation_1_of_production_1_of_rule_sysibm_function',
38320                                                                                                         'matchrule' => 0,
38321                                                                                                         'implicit' => '/ABS/i, or /ABSVAL/i',
38322                                                                                                         'argcode' => undef,
38323                                                                                                         'lookahead' => 0,
38324                                                                                                         'line' => 332
38325                                                                                                       }, 'Parse::RecDescent::Subrule' )
38326                                                                                              ],
38327                                                                                   'line' => undef
38328                                                                                 }, 'Parse::RecDescent::Production' ),
38329                                                                          bless( {
38330                                                                                   'number' => '1',
38331                                                                                   'strcount' => 0,
38332                                                                                   'dircount' => 0,
38333                                                                                   'uncommit' => undef,
38334                                                                                   'error' => undef,
38335                                                                                   'patcount' => 1,
38336                                                                                   'actcount' => 0,
38337                                                                                   'items' => [
38338                                                                                                bless( {
38339                                                                                                         'pattern' => 'AVG',
38340                                                                                                         'hashname' => '__PATTERN1__',
38341                                                                                                         'description' => '/AVG/i',
38342                                                                                                         'lookahead' => 0,
38343                                                                                                         'rdelim' => '/',
38344                                                                                                         'line' => 333,
38345                                                                                                         'mod' => 'i',
38346                                                                                                         'ldelim' => '/'
38347                                                                                                       }, 'Parse::RecDescent::Token' )
38348                                                                                              ],
38349                                                                                   'line' => 333
38350                                                                                 }, 'Parse::RecDescent::Production' ),
38351                                                                          bless( {
38352                                                                                   'number' => '2',
38353                                                                                   'strcount' => 0,
38354                                                                                   'dircount' => 0,
38355                                                                                   'uncommit' => undef,
38356                                                                                   'error' => undef,
38357                                                                                   'patcount' => 1,
38358                                                                                   'actcount' => 0,
38359                                                                                   'items' => [
38360                                                                                                bless( {
38361                                                                                                         'pattern' => 'BIGINT',
38362                                                                                                         'hashname' => '__PATTERN1__',
38363                                                                                                         'description' => '/BIGINT/i',
38364                                                                                                         'lookahead' => 0,
38365                                                                                                         'rdelim' => '/',
38366                                                                                                         'line' => 334,
38367                                                                                                         'mod' => 'i',
38368                                                                                                         'ldelim' => '/'
38369                                                                                                       }, 'Parse::RecDescent::Token' )
38370                                                                                              ],
38371                                                                                   'line' => 334
38372                                                                                 }, 'Parse::RecDescent::Production' ),
38373                                                                          bless( {
38374                                                                                   'number' => '3',
38375                                                                                   'strcount' => 0,
38376                                                                                   'dircount' => 0,
38377                                                                                   'uncommit' => undef,
38378                                                                                   'error' => undef,
38379                                                                                   'patcount' => 1,
38380                                                                                   'actcount' => 0,
38381                                                                                   'items' => [
38382                                                                                                bless( {
38383                                                                                                         'pattern' => 'BLOB',
38384                                                                                                         'hashname' => '__PATTERN1__',
38385                                                                                                         'description' => '/BLOB/i',
38386                                                                                                         'lookahead' => 0,
38387                                                                                                         'rdelim' => '/',
38388                                                                                                         'line' => 335,
38389                                                                                                         'mod' => 'i',
38390                                                                                                         'ldelim' => '/'
38391                                                                                                       }, 'Parse::RecDescent::Token' )
38392                                                                                              ],
38393                                                                                   'line' => 335
38394                                                                                 }, 'Parse::RecDescent::Production' ),
38395                                                                          bless( {
38396                                                                                   'number' => '4',
38397                                                                                   'strcount' => 0,
38398                                                                                   'dircount' => 0,
38399                                                                                   'uncommit' => undef,
38400                                                                                   'error' => undef,
38401                                                                                   'patcount' => 1,
38402                                                                                   'actcount' => 0,
38403                                                                                   'items' => [
38404                                                                                                bless( {
38405                                                                                                         'pattern' => 'CHAR',
38406                                                                                                         'hashname' => '__PATTERN1__',
38407                                                                                                         'description' => '/CHAR/i',
38408                                                                                                         'lookahead' => 0,
38409                                                                                                         'rdelim' => '/',
38410                                                                                                         'line' => 336,
38411                                                                                                         'mod' => 'i',
38412                                                                                                         'ldelim' => '/'
38413                                                                                                       }, 'Parse::RecDescent::Token' )
38414                                                                                              ],
38415                                                                                   'line' => 336
38416                                                                                 }, 'Parse::RecDescent::Production' ),
38417                                                                          bless( {
38418                                                                                   'number' => '5',
38419                                                                                   'strcount' => 0,
38420                                                                                   'dircount' => 0,
38421                                                                                   'uncommit' => undef,
38422                                                                                   'error' => undef,
38423                                                                                   'patcount' => 1,
38424                                                                                   'actcount' => 0,
38425                                                                                   'items' => [
38426                                                                                                bless( {
38427                                                                                                         'pattern' => 'CLOB',
38428                                                                                                         'hashname' => '__PATTERN1__',
38429                                                                                                         'description' => '/CLOB/i',
38430                                                                                                         'lookahead' => 0,
38431                                                                                                         'rdelim' => '/',
38432                                                                                                         'line' => 337,
38433                                                                                                         'mod' => 'i',
38434                                                                                                         'ldelim' => '/'
38435                                                                                                       }, 'Parse::RecDescent::Token' )
38436                                                                                              ],
38437                                                                                   'line' => 337
38438                                                                                 }, 'Parse::RecDescent::Production' ),
38439                                                                          bless( {
38440                                                                                   'number' => '6',
38441                                                                                   'strcount' => 0,
38442                                                                                   'dircount' => 0,
38443                                                                                   'uncommit' => undef,
38444                                                                                   'error' => undef,
38445                                                                                   'patcount' => 1,
38446                                                                                   'actcount' => 0,
38447                                                                                   'items' => [
38448                                                                                                bless( {
38449                                                                                                         'pattern' => 'COALESCE',
38450                                                                                                         'hashname' => '__PATTERN1__',
38451                                                                                                         'description' => '/COALESCE/i',
38452                                                                                                         'lookahead' => 0,
38453                                                                                                         'rdelim' => '/',
38454                                                                                                         'line' => 338,
38455                                                                                                         'mod' => 'i',
38456                                                                                                         'ldelim' => '/'
38457                                                                                                       }, 'Parse::RecDescent::Token' )
38458                                                                                              ],
38459                                                                                   'line' => 338
38460                                                                                 }, 'Parse::RecDescent::Production' ),
38461                                                                          bless( {
38462                                                                                   'number' => '7',
38463                                                                                   'strcount' => 0,
38464                                                                                   'dircount' => 0,
38465                                                                                   'uncommit' => undef,
38466                                                                                   'error' => undef,
38467                                                                                   'patcount' => 0,
38468                                                                                   'actcount' => 0,
38469                                                                                   'items' => [
38470                                                                                                bless( {
38471                                                                                                         'subrule' => '_alternation_1_of_production_8_of_rule_sysibm_function',
38472                                                                                                         'matchrule' => 0,
38473                                                                                                         'implicit' => '/CONCAT/, or \'||\'',
38474                                                                                                         'argcode' => undef,
38475                                                                                                         'lookahead' => 0,
38476                                                                                                         'line' => 339
38477                                                                                                       }, 'Parse::RecDescent::Subrule' )
38478                                                                                              ],
38479                                                                                   'line' => 339
38480                                                                                 }, 'Parse::RecDescent::Production' ),
38481                                                                          bless( {
38482                                                                                   'number' => '8',
38483                                                                                   'strcount' => 0,
38484                                                                                   'dircount' => 0,
38485                                                                                   'uncommit' => undef,
38486                                                                                   'error' => undef,
38487                                                                                   'patcount' => 0,
38488                                                                                   'actcount' => 0,
38489                                                                                   'items' => [
38490                                                                                                bless( {
38491                                                                                                         'subrule' => '_alternation_1_of_production_9_of_rule_sysibm_function',
38492                                                                                                         'matchrule' => 0,
38493                                                                                                         'implicit' => '/CORRELATION/i, or /CORR/',
38494                                                                                                         'argcode' => undef,
38495                                                                                                         'lookahead' => 0,
38496                                                                                                         'line' => 340
38497                                                                                                       }, 'Parse::RecDescent::Subrule' )
38498                                                                                              ],
38499                                                                                   'line' => 340
38500                                                                                 }, 'Parse::RecDescent::Production' ),
38501                                                                          bless( {
38502                                                                                   'number' => '9',
38503                                                                                   'strcount' => 0,
38504                                                                                   'dircount' => 0,
38505                                                                                   'uncommit' => undef,
38506                                                                                   'error' => undef,
38507                                                                                   'patcount' => 1,
38508                                                                                   'actcount' => 0,
38509                                                                                   'items' => [
38510                                                                                                bless( {
38511                                                                                                         'pattern' => 'COUNT',
38512                                                                                                         'hashname' => '__PATTERN1__',
38513                                                                                                         'description' => '/COUNT/i',
38514                                                                                                         'lookahead' => 0,
38515                                                                                                         'rdelim' => '/',
38516                                                                                                         'line' => 341,
38517                                                                                                         'mod' => 'i',
38518                                                                                                         'ldelim' => '/'
38519                                                                                                       }, 'Parse::RecDescent::Token' )
38520                                                                                              ],
38521                                                                                   'line' => 341
38522                                                                                 }, 'Parse::RecDescent::Production' ),
38523                                                                          bless( {
38524                                                                                   'number' => '10',
38525                                                                                   'strcount' => 0,
38526                                                                                   'dircount' => 0,
38527                                                                                   'uncommit' => undef,
38528                                                                                   'error' => undef,
38529                                                                                   'patcount' => 1,
38530                                                                                   'actcount' => 0,
38531                                                                                   'items' => [
38532                                                                                                bless( {
38533                                                                                                         'pattern' => 'COUNT_BIG',
38534                                                                                                         'hashname' => '__PATTERN1__',
38535                                                                                                         'description' => '/COUNT_BIG/i',
38536                                                                                                         'lookahead' => 0,
38537                                                                                                         'rdelim' => '/',
38538                                                                                                         'line' => 342,
38539                                                                                                         'mod' => 'i',
38540                                                                                                         'ldelim' => '/'
38541                                                                                                       }, 'Parse::RecDescent::Token' )
38542                                                                                              ],
38543                                                                                   'line' => 342
38544                                                                                 }, 'Parse::RecDescent::Production' ),
38545                                                                          bless( {
38546                                                                                   'number' => '11',
38547                                                                                   'strcount' => 0,
38548                                                                                   'dircount' => 0,
38549                                                                                   'uncommit' => undef,
38550                                                                                   'error' => undef,
38551                                                                                   'patcount' => 0,
38552                                                                                   'actcount' => 0,
38553                                                                                   'items' => [
38554                                                                                                bless( {
38555                                                                                                         'subrule' => '_alternation_1_of_production_12_of_rule_sysibm_function',
38556                                                                                                         'matchrule' => 0,
38557                                                                                                         'implicit' => '/COVARIANCE/i, or /COVAR/i',
38558                                                                                                         'argcode' => undef,
38559                                                                                                         'lookahead' => 0,
38560                                                                                                         'line' => 343
38561                                                                                                       }, 'Parse::RecDescent::Subrule' )
38562                                                                                              ],
38563                                                                                   'line' => 343
38564                                                                                 }, 'Parse::RecDescent::Production' ),
38565                                                                          bless( {
38566                                                                                   'number' => '12',
38567                                                                                   'strcount' => 0,
38568                                                                                   'dircount' => 0,
38569                                                                                   'uncommit' => undef,
38570                                                                                   'error' => undef,
38571                                                                                   'patcount' => 1,
38572                                                                                   'actcount' => 0,
38573                                                                                   'items' => [
38574                                                                                                bless( {
38575                                                                                                         'pattern' => 'DATE',
38576                                                                                                         'hashname' => '__PATTERN1__',
38577                                                                                                         'description' => '/DATE/i',
38578                                                                                                         'lookahead' => 0,
38579                                                                                                         'rdelim' => '/',
38580                                                                                                         'line' => 344,
38581                                                                                                         'mod' => 'i',
38582                                                                                                         'ldelim' => '/'
38583                                                                                                       }, 'Parse::RecDescent::Token' )
38584                                                                                              ],
38585                                                                                   'line' => 344
38586                                                                                 }, 'Parse::RecDescent::Production' ),
38587                                                                          bless( {
38588                                                                                   'number' => '13',
38589                                                                                   'strcount' => 0,
38590                                                                                   'dircount' => 0,
38591                                                                                   'uncommit' => undef,
38592                                                                                   'error' => undef,
38593                                                                                   'patcount' => 1,
38594                                                                                   'actcount' => 0,
38595                                                                                   'items' => [
38596                                                                                                bless( {
38597                                                                                                         'pattern' => 'DAY',
38598                                                                                                         'hashname' => '__PATTERN1__',
38599                                                                                                         'description' => '/DAY/i',
38600                                                                                                         'lookahead' => 0,
38601                                                                                                         'rdelim' => '/',
38602                                                                                                         'line' => 345,
38603                                                                                                         'mod' => 'i',
38604                                                                                                         'ldelim' => '/'
38605                                                                                                       }, 'Parse::RecDescent::Token' )
38606                                                                                              ],
38607                                                                                   'line' => 345
38608                                                                                 }, 'Parse::RecDescent::Production' ),
38609                                                                          bless( {
38610                                                                                   'number' => '14',
38611                                                                                   'strcount' => 0,
38612                                                                                   'dircount' => 0,
38613                                                                                   'uncommit' => undef,
38614                                                                                   'error' => undef,
38615                                                                                   'patcount' => 1,
38616                                                                                   'actcount' => 0,
38617                                                                                   'items' => [
38618                                                                                                bless( {
38619                                                                                                         'pattern' => 'DAYS',
38620                                                                                                         'hashname' => '__PATTERN1__',
38621                                                                                                         'description' => '/DAYS/i',
38622                                                                                                         'lookahead' => 0,
38623                                                                                                         'rdelim' => '/',
38624                                                                                                         'line' => 346,
38625                                                                                                         'mod' => 'i',
38626                                                                                                         'ldelim' => '/'
38627                                                                                                       }, 'Parse::RecDescent::Token' )
38628                                                                                              ],
38629                                                                                   'line' => 346
38630                                                                                 }, 'Parse::RecDescent::Production' ),
38631                                                                          bless( {
38632                                                                                   'number' => '15',
38633                                                                                   'strcount' => 0,
38634                                                                                   'dircount' => 0,
38635                                                                                   'uncommit' => undef,
38636                                                                                   'error' => undef,
38637                                                                                   'patcount' => 1,
38638                                                                                   'actcount' => 0,
38639                                                                                   'items' => [
38640                                                                                                bless( {
38641                                                                                                         'pattern' => 'DBCLOB',
38642                                                                                                         'hashname' => '__PATTERN1__',
38643                                                                                                         'description' => '/DBCLOB/i',
38644                                                                                                         'lookahead' => 0,
38645                                                                                                         'rdelim' => '/',
38646                                                                                                         'line' => 347,
38647                                                                                                         'mod' => 'i',
38648                                                                                                         'ldelim' => '/'
38649                                                                                                       }, 'Parse::RecDescent::Token' )
38650                                                                                              ],
38651                                                                                   'line' => 347
38652                                                                                 }, 'Parse::RecDescent::Production' ),
38653                                                                          bless( {
38654                                                                                   'number' => '16',
38655                                                                                   'strcount' => 0,
38656                                                                                   'dircount' => 0,
38657                                                                                   'uncommit' => undef,
38658                                                                                   'error' => undef,
38659                                                                                   'patcount' => 0,
38660                                                                                   'actcount' => 0,
38661                                                                                   'items' => [
38662                                                                                                bless( {
38663                                                                                                         'subrule' => '_alternation_1_of_production_17_of_rule_sysibm_function',
38664                                                                                                         'matchrule' => 0,
38665                                                                                                         'implicit' => '/DECIMAL/i, or /DEC/i',
38666                                                                                                         'argcode' => undef,
38667                                                                                                         'lookahead' => 0,
38668                                                                                                         'line' => 348
38669                                                                                                       }, 'Parse::RecDescent::Subrule' )
38670                                                                                              ],
38671                                                                                   'line' => 348
38672                                                                                 }, 'Parse::RecDescent::Production' ),
38673                                                                          bless( {
38674                                                                                   'number' => '17',
38675                                                                                   'strcount' => 0,
38676                                                                                   'dircount' => 0,
38677                                                                                   'uncommit' => undef,
38678                                                                                   'error' => undef,
38679                                                                                   'patcount' => 1,
38680                                                                                   'actcount' => 0,
38681                                                                                   'items' => [
38682                                                                                                bless( {
38683                                                                                                         'pattern' => 'DECRYPT_BIN',
38684                                                                                                         'hashname' => '__PATTERN1__',
38685                                                                                                         'description' => '/DECRYPT_BIN/i',
38686                                                                                                         'lookahead' => 0,
38687                                                                                                         'rdelim' => '/',
38688                                                                                                         'line' => 349,
38689                                                                                                         'mod' => 'i',
38690                                                                                                         'ldelim' => '/'
38691                                                                                                       }, 'Parse::RecDescent::Token' )
38692                                                                                              ],
38693                                                                                   'line' => 349
38694                                                                                 }, 'Parse::RecDescent::Production' ),
38695                                                                          bless( {
38696                                                                                   'number' => '18',
38697                                                                                   'strcount' => 0,
38698                                                                                   'dircount' => 0,
38699                                                                                   'uncommit' => undef,
38700                                                                                   'error' => undef,
38701                                                                                   'patcount' => 1,
38702                                                                                   'actcount' => 0,
38703                                                                                   'items' => [
38704                                                                                                bless( {
38705                                                                                                         'pattern' => 'DECRYPT_CHAR',
38706                                                                                                         'hashname' => '__PATTERN1__',
38707                                                                                                         'description' => '/DECRYPT_CHAR/i',
38708                                                                                                         'lookahead' => 0,
38709                                                                                                         'rdelim' => '/',
38710                                                                                                         'line' => 350,
38711                                                                                                         'mod' => 'i',
38712                                                                                                         'ldelim' => '/'
38713                                                                                                       }, 'Parse::RecDescent::Token' )
38714                                                                                              ],
38715                                                                                   'line' => 350
38716                                                                                 }, 'Parse::RecDescent::Production' ),
38717                                                                          bless( {
38718                                                                                   'number' => '19',
38719                                                                                   'strcount' => 0,
38720                                                                                   'dircount' => 0,
38721                                                                                   'uncommit' => undef,
38722                                                                                   'error' => undef,
38723                                                                                   'patcount' => 1,
38724                                                                                   'actcount' => 0,
38725                                                                                   'items' => [
38726                                                                                                bless( {
38727                                                                                                         'pattern' => 'DEREF',
38728                                                                                                         'hashname' => '__PATTERN1__',
38729                                                                                                         'description' => '/DEREF/i',
38730                                                                                                         'lookahead' => 0,
38731                                                                                                         'rdelim' => '/',
38732                                                                                                         'line' => 351,
38733                                                                                                         'mod' => 'i',
38734                                                                                                         'ldelim' => '/'
38735                                                                                                       }, 'Parse::RecDescent::Token' )
38736                                                                                              ],
38737                                                                                   'line' => 351
38738                                                                                 }, 'Parse::RecDescent::Production' ),
38739                                                                          bless( {
38740                                                                                   'number' => '20',
38741                                                                                   'strcount' => 0,
38742                                                                                   'dircount' => 0,
38743                                                                                   'uncommit' => undef,
38744                                                                                   'error' => undef,
38745                                                                                   'patcount' => 1,
38746                                                                                   'actcount' => 0,
38747                                                                                   'items' => [
38748                                                                                                bless( {
38749                                                                                                         'pattern' => 'DIGITS',
38750                                                                                                         'hashname' => '__PATTERN1__',
38751                                                                                                         'description' => '/DIGITS/i',
38752                                                                                                         'lookahead' => 0,
38753                                                                                                         'rdelim' => '/',
38754                                                                                                         'line' => 352,
38755                                                                                                         'mod' => 'i',
38756                                                                                                         'ldelim' => '/'
38757                                                                                                       }, 'Parse::RecDescent::Token' )
38758                                                                                              ],
38759                                                                                   'line' => 352
38760                                                                                 }, 'Parse::RecDescent::Production' ),
38761                                                                          bless( {
38762                                                                                   'number' => '21',
38763                                                                                   'strcount' => 0,
38764                                                                                   'dircount' => 0,
38765                                                                                   'uncommit' => undef,
38766                                                                                   'error' => undef,
38767                                                                                   'patcount' => 1,
38768                                                                                   'actcount' => 0,
38769                                                                                   'items' => [
38770                                                                                                bless( {
38771                                                                                                         'pattern' => 'DLCOMMENT',
38772                                                                                                         'hashname' => '__PATTERN1__',
38773                                                                                                         'description' => '/DLCOMMENT/i',
38774                                                                                                         'lookahead' => 0,
38775                                                                                                         'rdelim' => '/',
38776                                                                                                         'line' => 353,
38777                                                                                                         'mod' => 'i',
38778                                                                                                         'ldelim' => '/'
38779                                                                                                       }, 'Parse::RecDescent::Token' )
38780                                                                                              ],
38781                                                                                   'line' => 353
38782                                                                                 }, 'Parse::RecDescent::Production' ),
38783                                                                          bless( {
38784                                                                                   'number' => '22',
38785                                                                                   'strcount' => 0,
38786                                                                                   'dircount' => 0,
38787                                                                                   'uncommit' => undef,
38788                                                                                   'error' => undef,
38789                                                                                   'patcount' => 1,
38790                                                                                   'actcount' => 0,
38791                                                                                   'items' => [
38792                                                                                                bless( {
38793                                                                                                         'pattern' => 'DLLINKTYPE',
38794                                                                                                         'hashname' => '__PATTERN1__',
38795                                                                                                         'description' => '/DLLINKTYPE/i',
38796                                                                                                         'lookahead' => 0,
38797                                                                                                         'rdelim' => '/',
38798                                                                                                         'line' => 354,
38799                                                                                                         'mod' => 'i',
38800                                                                                                         'ldelim' => '/'
38801                                                                                                       }, 'Parse::RecDescent::Token' )
38802                                                                                              ],
38803                                                                                   'line' => 354
38804                                                                                 }, 'Parse::RecDescent::Production' ),
38805                                                                          bless( {
38806                                                                                   'number' => '23',
38807                                                                                   'strcount' => 0,
38808                                                                                   'dircount' => 0,
38809                                                                                   'uncommit' => undef,
38810                                                                                   'error' => undef,
38811                                                                                   'patcount' => 1,
38812                                                                                   'actcount' => 0,
38813                                                                                   'items' => [
38814                                                                                                bless( {
38815                                                                                                         'pattern' => 'DLURLCOMPLETE',
38816                                                                                                         'hashname' => '__PATTERN1__',
38817                                                                                                         'description' => '/DLURLCOMPLETE/i',
38818                                                                                                         'lookahead' => 0,
38819                                                                                                         'rdelim' => '/',
38820                                                                                                         'line' => 355,
38821                                                                                                         'mod' => 'i',
38822                                                                                                         'ldelim' => '/'
38823                                                                                                       }, 'Parse::RecDescent::Token' )
38824                                                                                              ],
38825                                                                                   'line' => 355
38826                                                                                 }, 'Parse::RecDescent::Production' ),
38827                                                                          bless( {
38828                                                                                   'number' => '24',
38829                                                                                   'strcount' => 0,
38830                                                                                   'dircount' => 0,
38831                                                                                   'uncommit' => undef,
38832                                                                                   'error' => undef,
38833                                                                                   'patcount' => 1,
38834                                                                                   'actcount' => 0,
38835                                                                                   'items' => [
38836                                                                                                bless( {
38837                                                                                                         'pattern' => 'DLURLPATH',
38838                                                                                                         'hashname' => '__PATTERN1__',
38839                                                                                                         'description' => '/DLURLPATH/i',
38840                                                                                                         'lookahead' => 0,
38841                                                                                                         'rdelim' => '/',
38842                                                                                                         'line' => 356,
38843                                                                                                         'mod' => 'i',
38844                                                                                                         'ldelim' => '/'
38845                                                                                                       }, 'Parse::RecDescent::Token' )
38846                                                                                              ],
38847                                                                                   'line' => 356
38848                                                                                 }, 'Parse::RecDescent::Production' ),
38849                                                                          bless( {
38850                                                                                   'number' => '25',
38851                                                                                   'strcount' => 0,
38852                                                                                   'dircount' => 0,
38853                                                                                   'uncommit' => undef,
38854                                                                                   'error' => undef,
38855                                                                                   'patcount' => 1,
38856                                                                                   'actcount' => 0,
38857                                                                                   'items' => [
38858                                                                                                bless( {
38859                                                                                                         'pattern' => 'DLURLPATHONLY',
38860                                                                                                         'hashname' => '__PATTERN1__',
38861                                                                                                         'description' => '/DLURLPATHONLY/i',
38862                                                                                                         'lookahead' => 0,
38863                                                                                                         'rdelim' => '/',
38864                                                                                                         'line' => 357,
38865                                                                                                         'mod' => 'i',
38866                                                                                                         'ldelim' => '/'
38867                                                                                                       }, 'Parse::RecDescent::Token' )
38868                                                                                              ],
38869                                                                                   'line' => 357
38870                                                                                 }, 'Parse::RecDescent::Production' ),
38871                                                                          bless( {
38872                                                                                   'number' => '26',
38873                                                                                   'strcount' => 0,
38874                                                                                   'dircount' => 0,
38875                                                                                   'uncommit' => undef,
38876                                                                                   'error' => undef,
38877                                                                                   'patcount' => 1,
38878                                                                                   'actcount' => 0,
38879                                                                                   'items' => [
38880                                                                                                bless( {
38881                                                                                                         'pattern' => 'DLURLSCHEME',
38882                                                                                                         'hashname' => '__PATTERN1__',
38883                                                                                                         'description' => '/DLURLSCHEME/i',
38884                                                                                                         'lookahead' => 0,
38885                                                                                                         'rdelim' => '/',
38886                                                                                                         'line' => 358,
38887                                                                                                         'mod' => 'i',
38888                                                                                                         'ldelim' => '/'
38889                                                                                                       }, 'Parse::RecDescent::Token' )
38890                                                                                              ],
38891                                                                                   'line' => 358
38892                                                                                 }, 'Parse::RecDescent::Production' ),
38893                                                                          bless( {
38894                                                                                   'number' => '27',
38895                                                                                   'strcount' => 0,
38896                                                                                   'dircount' => 0,
38897                                                                                   'uncommit' => undef,
38898                                                                                   'error' => undef,
38899                                                                                   'patcount' => 1,
38900                                                                                   'actcount' => 0,
38901                                                                                   'items' => [
38902                                                                                                bless( {
38903                                                                                                         'pattern' => 'DLURLSERVER',
38904                                                                                                         'hashname' => '__PATTERN1__',
38905                                                                                                         'description' => '/DLURLSERVER/i',
38906                                                                                                         'lookahead' => 0,
38907                                                                                                         'rdelim' => '/',
38908                                                                                                         'line' => 359,
38909                                                                                                         'mod' => 'i',
38910                                                                                                         'ldelim' => '/'
38911                                                                                                       }, 'Parse::RecDescent::Token' )
38912                                                                                              ],
38913                                                                                   'line' => 359
38914                                                                                 }, 'Parse::RecDescent::Production' ),
38915                                                                          bless( {
38916                                                                                   'number' => '28',
38917                                                                                   'strcount' => 0,
38918                                                                                   'dircount' => 0,
38919                                                                                   'uncommit' => undef,
38920                                                                                   'error' => undef,
38921                                                                                   'patcount' => 1,
38922                                                                                   'actcount' => 0,
38923                                                                                   'items' => [
38924                                                                                                bless( {
38925                                                                                                         'pattern' => 'DLVALUE',
38926                                                                                                         'hashname' => '__PATTERN1__',
38927                                                                                                         'description' => '/DLVALUE/i',
38928                                                                                                         'lookahead' => 0,
38929                                                                                                         'rdelim' => '/',
38930                                                                                                         'line' => 360,
38931                                                                                                         'mod' => 'i',
38932                                                                                                         'ldelim' => '/'
38933                                                                                                       }, 'Parse::RecDescent::Token' )
38934                                                                                              ],
38935                                                                                   'line' => 360
38936                                                                                 }, 'Parse::RecDescent::Production' ),
38937                                                                          bless( {
38938                                                                                   'number' => '29',
38939                                                                                   'strcount' => 0,
38940                                                                                   'dircount' => 0,
38941                                                                                   'uncommit' => undef,
38942                                                                                   'error' => undef,
38943                                                                                   'patcount' => 0,
38944                                                                                   'actcount' => 0,
38945                                                                                   'items' => [
38946                                                                                                bless( {
38947                                                                                                         'subrule' => '_alternation_1_of_production_30_of_rule_sysibm_function',
38948                                                                                                         'matchrule' => 0,
38949                                                                                                         'implicit' => '/DOUBLE/i, or /DOUBLE_PRECISION/i',
38950                                                                                                         'argcode' => undef,
38951                                                                                                         'lookahead' => 0,
38952                                                                                                         'line' => 361
38953                                                                                                       }, 'Parse::RecDescent::Subrule' )
38954                                                                                              ],
38955                                                                                   'line' => 361
38956                                                                                 }, 'Parse::RecDescent::Production' ),
38957                                                                          bless( {
38958                                                                                   'number' => '30',
38959                                                                                   'strcount' => 0,
38960                                                                                   'dircount' => 0,
38961                                                                                   'uncommit' => undef,
38962                                                                                   'error' => undef,
38963                                                                                   'patcount' => 1,
38964                                                                                   'actcount' => 0,
38965                                                                                   'items' => [
38966                                                                                                bless( {
38967                                                                                                         'pattern' => 'ENCRYPT',
38968                                                                                                         'hashname' => '__PATTERN1__',
38969                                                                                                         'description' => '/ENCRYPT/i',
38970                                                                                                         'lookahead' => 0,
38971                                                                                                         'rdelim' => '/',
38972                                                                                                         'line' => 362,
38973                                                                                                         'mod' => 'i',
38974                                                                                                         'ldelim' => '/'
38975                                                                                                       }, 'Parse::RecDescent::Token' )
38976                                                                                              ],
38977                                                                                   'line' => 362
38978                                                                                 }, 'Parse::RecDescent::Production' ),
38979                                                                          bless( {
38980                                                                                   'number' => '31',
38981                                                                                   'strcount' => 0,
38982                                                                                   'dircount' => 0,
38983                                                                                   'uncommit' => undef,
38984                                                                                   'error' => undef,
38985                                                                                   'patcount' => 1,
38986                                                                                   'actcount' => 0,
38987                                                                                   'items' => [
38988                                                                                                bless( {
38989                                                                                                         'pattern' => 'EVENT_MON_STATE',
38990                                                                                                         'hashname' => '__PATTERN1__',
38991                                                                                                         'description' => '/EVENT_MON_STATE/i',
38992                                                                                                         'lookahead' => 0,
38993                                                                                                         'rdelim' => '/',
38994                                                                                                         'line' => 363,
38995                                                                                                         'mod' => 'i',
38996                                                                                                         'ldelim' => '/'
38997                                                                                                       }, 'Parse::RecDescent::Token' )
38998                                                                                              ],
38999                                                                                   'line' => 363
39000                                                                                 }, 'Parse::RecDescent::Production' ),
39001                                                                          bless( {
39002                                                                                   'number' => '32',
39003                                                                                   'strcount' => 0,
39004                                                                                   'dircount' => 0,
39005                                                                                   'uncommit' => undef,
39006                                                                                   'error' => undef,
39007                                                                                   'patcount' => 1,
39008                                                                                   'actcount' => 0,
39009                                                                                   'items' => [
39010                                                                                                bless( {
39011                                                                                                         'pattern' => 'FLOAT',
39012                                                                                                         'hashname' => '__PATTERN1__',
39013                                                                                                         'description' => '/FLOAT/i',
39014                                                                                                         'lookahead' => 0,
39015                                                                                                         'rdelim' => '/',
39016                                                                                                         'line' => 364,
39017                                                                                                         'mod' => 'i',
39018                                                                                                         'ldelim' => '/'
39019                                                                                                       }, 'Parse::RecDescent::Token' )
39020                                                                                              ],
39021                                                                                   'line' => 364
39022                                                                                 }, 'Parse::RecDescent::Production' ),
39023                                                                          bless( {
39024                                                                                   'number' => '33',
39025                                                                                   'strcount' => 0,
39026                                                                                   'dircount' => 0,
39027                                                                                   'uncommit' => undef,
39028                                                                                   'error' => undef,
39029                                                                                   'patcount' => 1,
39030                                                                                   'actcount' => 0,
39031                                                                                   'items' => [
39032                                                                                                bless( {
39033                                                                                                         'pattern' => 'GETHINT',
39034                                                                                                         'hashname' => '__PATTERN1__',
39035                                                                                                         'description' => '/GETHINT/i',
39036                                                                                                         'lookahead' => 0,
39037                                                                                                         'rdelim' => '/',
39038                                                                                                         'line' => 365,
39039                                                                                                         'mod' => 'i',
39040                                                                                                         'ldelim' => '/'
39041                                                                                                       }, 'Parse::RecDescent::Token' )
39042                                                                                              ],
39043                                                                                   'line' => 365
39044                                                                                 }, 'Parse::RecDescent::Production' ),
39045                                                                          bless( {
39046                                                                                   'number' => '34',
39047                                                                                   'strcount' => 0,
39048                                                                                   'dircount' => 0,
39049                                                                                   'uncommit' => undef,
39050                                                                                   'error' => undef,
39051                                                                                   'patcount' => 1,
39052                                                                                   'actcount' => 0,
39053                                                                                   'items' => [
39054                                                                                                bless( {
39055                                                                                                         'pattern' => 'GENERATE_UNIQUE',
39056                                                                                                         'hashname' => '__PATTERN1__',
39057                                                                                                         'description' => '/GENERATE_UNIQUE/i',
39058                                                                                                         'lookahead' => 0,
39059                                                                                                         'rdelim' => '/',
39060                                                                                                         'line' => 366,
39061                                                                                                         'mod' => 'i',
39062                                                                                                         'ldelim' => '/'
39063                                                                                                       }, 'Parse::RecDescent::Token' )
39064                                                                                              ],
39065                                                                                   'line' => 366
39066                                                                                 }, 'Parse::RecDescent::Production' ),
39067                                                                          bless( {
39068                                                                                   'number' => '35',
39069                                                                                   'strcount' => 0,
39070                                                                                   'dircount' => 0,
39071                                                                                   'uncommit' => undef,
39072                                                                                   'error' => undef,
39073                                                                                   'patcount' => 1,
39074                                                                                   'actcount' => 0,
39075                                                                                   'items' => [
39076                                                                                                bless( {
39077                                                                                                         'pattern' => 'GRAPHIC',
39078                                                                                                         'hashname' => '__PATTERN1__',
39079                                                                                                         'description' => '/GRAPHIC/i',
39080                                                                                                         'lookahead' => 0,
39081                                                                                                         'rdelim' => '/',
39082                                                                                                         'line' => 367,
39083                                                                                                         'mod' => 'i',
39084                                                                                                         'ldelim' => '/'
39085                                                                                                       }, 'Parse::RecDescent::Token' )
39086                                                                                              ],
39087                                                                                   'line' => 367
39088                                                                                 }, 'Parse::RecDescent::Production' ),
39089                                                                          bless( {
39090                                                                                   'number' => '36',
39091                                                                                   'strcount' => 0,
39092                                                                                   'dircount' => 0,
39093                                                                                   'uncommit' => undef,
39094                                                                                   'error' => undef,
39095                                                                                   'patcount' => 1,
39096                                                                                   'actcount' => 0,
39097                                                                                   'items' => [
39098                                                                                                bless( {
39099                                                                                                         'pattern' => 'GROUPING',
39100                                                                                                         'hashname' => '__PATTERN1__',
39101                                                                                                         'description' => '/GROUPING/i',
39102                                                                                                         'lookahead' => 0,
39103                                                                                                         'rdelim' => '/',
39104                                                                                                         'line' => 368,
39105                                                                                                         'mod' => 'i',
39106                                                                                                         'ldelim' => '/'
39107                                                                                                       }, 'Parse::RecDescent::Token' )
39108                                                                                              ],
39109                                                                                   'line' => 368
39110                                                                                 }, 'Parse::RecDescent::Production' ),
39111                                                                          bless( {
39112                                                                                   'number' => '37',
39113                                                                                   'strcount' => 0,
39114                                                                                   'dircount' => 0,
39115                                                                                   'uncommit' => undef,
39116                                                                                   'error' => undef,
39117                                                                                   'patcount' => 1,
39118                                                                                   'actcount' => 0,
39119                                                                                   'items' => [
39120                                                                                                bless( {
39121                                                                                                         'pattern' => 'HEX',
39122                                                                                                         'hashname' => '__PATTERN1__',
39123                                                                                                         'description' => '/HEX/i',
39124                                                                                                         'lookahead' => 0,
39125                                                                                                         'rdelim' => '/',
39126                                                                                                         'line' => 369,
39127                                                                                                         'mod' => 'i',
39128                                                                                                         'ldelim' => '/'
39129                                                                                                       }, 'Parse::RecDescent::Token' )
39130                                                                                              ],
39131                                                                                   'line' => 369
39132                                                                                 }, 'Parse::RecDescent::Production' ),
39133                                                                          bless( {
39134                                                                                   'number' => '38',
39135                                                                                   'strcount' => 0,
39136                                                                                   'dircount' => 0,
39137                                                                                   'uncommit' => undef,
39138                                                                                   'error' => undef,
39139                                                                                   'patcount' => 1,
39140                                                                                   'actcount' => 0,
39141                                                                                   'items' => [
39142                                                                                                bless( {
39143                                                                                                         'pattern' => 'HOUR',
39144                                                                                                         'hashname' => '__PATTERN1__',
39145                                                                                                         'description' => '/HOUR/i',
39146                                                                                                         'lookahead' => 0,
39147                                                                                                         'rdelim' => '/',
39148                                                                                                         'line' => 370,
39149                                                                                                         'mod' => 'i',
39150                                                                                                         'ldelim' => '/'
39151                                                                                                       }, 'Parse::RecDescent::Token' )
39152                                                                                              ],
39153                                                                                   'line' => 370
39154                                                                                 }, 'Parse::RecDescent::Production' ),
39155                                                                          bless( {
39156                                                                                   'number' => '39',
39157                                                                                   'strcount' => 0,
39158                                                                                   'dircount' => 0,
39159                                                                                   'uncommit' => undef,
39160                                                                                   'error' => undef,
39161                                                                                   'patcount' => 1,
39162                                                                                   'actcount' => 0,
39163                                                                                   'items' => [
39164                                                                                                bless( {
39165                                                                                                         'pattern' => 'IDENTITY_VAL_LOCAL',
39166                                                                                                         'hashname' => '__PATTERN1__',
39167                                                                                                         'description' => '/IDENTITY_VAL_LOCAL/i',
39168                                                                                                         'lookahead' => 0,
39169                                                                                                         'rdelim' => '/',
39170                                                                                                         'line' => 371,
39171                                                                                                         'mod' => 'i',
39172                                                                                                         'ldelim' => '/'
39173                                                                                                       }, 'Parse::RecDescent::Token' )
39174                                                                                              ],
39175                                                                                   'line' => 371
39176                                                                                 }, 'Parse::RecDescent::Production' ),
39177                                                                          bless( {
39178                                                                                   'number' => '40',
39179                                                                                   'strcount' => 0,
39180                                                                                   'dircount' => 0,
39181                                                                                   'uncommit' => undef,
39182                                                                                   'error' => undef,
39183                                                                                   'patcount' => 0,
39184                                                                                   'actcount' => 0,
39185                                                                                   'items' => [
39186                                                                                                bless( {
39187                                                                                                         'subrule' => '_alternation_1_of_production_41_of_rule_sysibm_function',
39188                                                                                                         'matchrule' => 0,
39189                                                                                                         'implicit' => '/INTEGER/i, or /INT/',
39190                                                                                                         'argcode' => undef,
39191                                                                                                         'lookahead' => 0,
39192                                                                                                         'line' => 372
39193                                                                                                       }, 'Parse::RecDescent::Subrule' )
39194                                                                                              ],
39195                                                                                   'line' => 372
39196                                                                                 }, 'Parse::RecDescent::Production' ),
39197                                                                          bless( {
39198                                                                                   'number' => '41',
39199                                                                                   'strcount' => 0,
39200                                                                                   'dircount' => 0,
39201                                                                                   'uncommit' => undef,
39202                                                                                   'error' => undef,
39203                                                                                   'patcount' => 0,
39204                                                                                   'actcount' => 0,
39205                                                                                   'items' => [
39206                                                                                                bless( {
39207                                                                                                         'subrule' => '_alternation_1_of_production_42_of_rule_sysibm_function',
39208                                                                                                         'matchrule' => 0,
39209                                                                                                         'implicit' => '/LCASE/i, or /LOWER/',
39210                                                                                                         'argcode' => undef,
39211                                                                                                         'lookahead' => 0,
39212                                                                                                         'line' => 373
39213                                                                                                       }, 'Parse::RecDescent::Subrule' )
39214                                                                                              ],
39215                                                                                   'line' => 373
39216                                                                                 }, 'Parse::RecDescent::Production' ),
39217                                                                          bless( {
39218                                                                                   'number' => '42',
39219                                                                                   'strcount' => 0,
39220                                                                                   'dircount' => 0,
39221                                                                                   'uncommit' => undef,
39222                                                                                   'error' => undef,
39223                                                                                   'patcount' => 1,
39224                                                                                   'actcount' => 0,
39225                                                                                   'items' => [
39226                                                                                                bless( {
39227                                                                                                         'pattern' => 'LENGTH',
39228                                                                                                         'hashname' => '__PATTERN1__',
39229                                                                                                         'description' => '/LENGTH/i',
39230                                                                                                         'lookahead' => 0,
39231                                                                                                         'rdelim' => '/',
39232                                                                                                         'line' => 374,
39233                                                                                                         'mod' => 'i',
39234                                                                                                         'ldelim' => '/'
39235                                                                                                       }, 'Parse::RecDescent::Token' )
39236                                                                                              ],
39237                                                                                   'line' => 374
39238                                                                                 }, 'Parse::RecDescent::Production' ),
39239                                                                          bless( {
39240                                                                                   'number' => '43',
39241                                                                                   'strcount' => 0,
39242                                                                                   'dircount' => 0,
39243                                                                                   'uncommit' => undef,
39244                                                                                   'error' => undef,
39245                                                                                   'patcount' => 1,
39246                                                                                   'actcount' => 0,
39247                                                                                   'items' => [
39248                                                                                                bless( {
39249                                                                                                         'pattern' => 'LONG_VARCHAR',
39250                                                                                                         'hashname' => '__PATTERN1__',
39251                                                                                                         'description' => '/LONG_VARCHAR/i',
39252                                                                                                         'lookahead' => 0,
39253                                                                                                         'rdelim' => '/',
39254                                                                                                         'line' => 375,
39255                                                                                                         'mod' => 'i',
39256                                                                                                         'ldelim' => '/'
39257                                                                                                       }, 'Parse::RecDescent::Token' )
39258                                                                                              ],
39259                                                                                   'line' => 375
39260                                                                                 }, 'Parse::RecDescent::Production' ),
39261                                                                          bless( {
39262                                                                                   'number' => '44',
39263                                                                                   'strcount' => 0,
39264                                                                                   'dircount' => 0,
39265                                                                                   'uncommit' => undef,
39266                                                                                   'error' => undef,
39267                                                                                   'patcount' => 1,
39268                                                                                   'actcount' => 0,
39269                                                                                   'items' => [
39270                                                                                                bless( {
39271                                                                                                         'pattern' => 'LONG_VARGRAPHIC',
39272                                                                                                         'hashname' => '__PATTERN1__',
39273                                                                                                         'description' => '/LONG_VARGRAPHIC/i',
39274                                                                                                         'lookahead' => 0,
39275                                                                                                         'rdelim' => '/',
39276                                                                                                         'line' => 376,
39277                                                                                                         'mod' => 'i',
39278                                                                                                         'ldelim' => '/'
39279                                                                                                       }, 'Parse::RecDescent::Token' )
39280                                                                                              ],
39281                                                                                   'line' => 376
39282                                                                                 }, 'Parse::RecDescent::Production' ),
39283                                                                          bless( {
39284                                                                                   'number' => '45',
39285                                                                                   'strcount' => 0,
39286                                                                                   'dircount' => 0,
39287                                                                                   'uncommit' => undef,
39288                                                                                   'error' => undef,
39289                                                                                   'patcount' => 1,
39290                                                                                   'actcount' => 0,
39291                                                                                   'items' => [
39292                                                                                                bless( {
39293                                                                                                         'pattern' => 'LTRIM',
39294                                                                                                         'hashname' => '__PATTERN1__',
39295                                                                                                         'description' => '/LTRIM/i',
39296                                                                                                         'lookahead' => 0,
39297                                                                                                         'rdelim' => '/',
39298                                                                                                         'line' => 377,
39299                                                                                                         'mod' => 'i',
39300                                                                                                         'ldelim' => '/'
39301                                                                                                       }, 'Parse::RecDescent::Token' )
39302                                                                                              ],
39303                                                                                   'line' => 377
39304                                                                                 }, 'Parse::RecDescent::Production' ),
39305                                                                          bless( {
39306                                                                                   'number' => '46',
39307                                                                                   'strcount' => 0,
39308                                                                                   'dircount' => 0,
39309                                                                                   'uncommit' => undef,
39310                                                                                   'error' => undef,
39311                                                                                   'patcount' => 1,
39312                                                                                   'actcount' => 0,
39313                                                                                   'items' => [
39314                                                                                                bless( {
39315                                                                                                         'pattern' => 'MAX',
39316                                                                                                         'hashname' => '__PATTERN1__',
39317                                                                                                         'description' => '/MAX/i',
39318                                                                                                         'lookahead' => 0,
39319                                                                                                         'rdelim' => '/',
39320                                                                                                         'line' => 378,
39321                                                                                                         'mod' => 'i',
39322                                                                                                         'ldelim' => '/'
39323                                                                                                       }, 'Parse::RecDescent::Token' )
39324                                                                                              ],
39325                                                                                   'line' => 378
39326                                                                                 }, 'Parse::RecDescent::Production' ),
39327                                                                          bless( {
39328                                                                                   'number' => '47',
39329                                                                                   'strcount' => 0,
39330                                                                                   'dircount' => 0,
39331                                                                                   'uncommit' => undef,
39332                                                                                   'error' => undef,
39333                                                                                   'patcount' => 1,
39334                                                                                   'actcount' => 0,
39335                                                                                   'items' => [
39336                                                                                                bless( {
39337                                                                                                         'pattern' => 'MICROSECOND',
39338                                                                                                         'hashname' => '__PATTERN1__',
39339                                                                                                         'description' => '/MICROSECOND/i',
39340                                                                                                         'lookahead' => 0,
39341                                                                                                         'rdelim' => '/',
39342                                                                                                         'line' => 379,
39343                                                                                                         'mod' => 'i',
39344                                                                                                         'ldelim' => '/'
39345                                                                                                       }, 'Parse::RecDescent::Token' )
39346                                                                                              ],
39347                                                                                   'line' => 379
39348                                                                                 }, 'Parse::RecDescent::Production' ),
39349                                                                          bless( {
39350                                                                                   'number' => '48',
39351                                                                                   'strcount' => 0,
39352                                                                                   'dircount' => 0,
39353                                                                                   'uncommit' => undef,
39354                                                                                   'error' => undef,
39355                                                                                   'patcount' => 1,
39356                                                                                   'actcount' => 0,
39357                                                                                   'items' => [
39358                                                                                                bless( {
39359                                                                                                         'pattern' => 'MIN',
39360                                                                                                         'hashname' => '__PATTERN1__',
39361                                                                                                         'description' => '/MIN/i',
39362                                                                                                         'lookahead' => 0,
39363                                                                                                         'rdelim' => '/',
39364                                                                                                         'line' => 380,
39365                                                                                                         'mod' => 'i',
39366                                                                                                         'ldelim' => '/'
39367                                                                                                       }, 'Parse::RecDescent::Token' )
39368                                                                                              ],
39369                                                                                   'line' => 380
39370                                                                                 }, 'Parse::RecDescent::Production' ),
39371                                                                          bless( {
39372                                                                                   'number' => '49',
39373                                                                                   'strcount' => 0,
39374                                                                                   'dircount' => 0,
39375                                                                                   'uncommit' => undef,
39376                                                                                   'error' => undef,
39377                                                                                   'patcount' => 1,
39378                                                                                   'actcount' => 0,
39379                                                                                   'items' => [
39380                                                                                                bless( {
39381                                                                                                         'pattern' => 'MINUTE',
39382                                                                                                         'hashname' => '__PATTERN1__',
39383                                                                                                         'description' => '/MINUTE/i',
39384                                                                                                         'lookahead' => 0,
39385                                                                                                         'rdelim' => '/',
39386                                                                                                         'line' => 381,
39387                                                                                                         'mod' => 'i',
39388                                                                                                         'ldelim' => '/'
39389                                                                                                       }, 'Parse::RecDescent::Token' )
39390                                                                                              ],
39391                                                                                   'line' => 381
39392                                                                                 }, 'Parse::RecDescent::Production' ),
39393                                                                          bless( {
39394                                                                                   'number' => '50',
39395                                                                                   'strcount' => 0,
39396                                                                                   'dircount' => 0,
39397                                                                                   'uncommit' => undef,
39398                                                                                   'error' => undef,
39399                                                                                   'patcount' => 1,
39400                                                                                   'actcount' => 0,
39401                                                                                   'items' => [
39402                                                                                                bless( {
39403                                                                                                         'pattern' => 'MONTH',
39404                                                                                                         'hashname' => '__PATTERN1__',
39405                                                                                                         'description' => '/MONTH/i',
39406                                                                                                         'lookahead' => 0,
39407                                                                                                         'rdelim' => '/',
39408                                                                                                         'line' => 382,
39409                                                                                                         'mod' => 'i',
39410                                                                                                         'ldelim' => '/'
39411                                                                                                       }, 'Parse::RecDescent::Token' )
39412                                                                                              ],
39413                                                                                   'line' => 382
39414                                                                                 }, 'Parse::RecDescent::Production' ),
39415                                                                          bless( {
39416                                                                                   'number' => '51',
39417                                                                                   'strcount' => 0,
39418                                                                                   'dircount' => 0,
39419                                                                                   'uncommit' => undef,
39420                                                                                   'error' => undef,
39421                                                                                   'patcount' => 1,
39422                                                                                   'actcount' => 0,
39423                                                                                   'items' => [
39424                                                                                                bless( {
39425                                                                                                         'pattern' => 'MULTIPLY_ACT',
39426                                                                                                         'hashname' => '__PATTERN1__',
39427                                                                                                         'description' => '/MULTIPLY_ACT/i',
39428                                                                                                         'lookahead' => 0,
39429                                                                                                         'rdelim' => '/',
39430                                                                                                         'line' => 383,
39431                                                                                                         'mod' => 'i',
39432                                                                                                         'ldelim' => '/'
39433                                                                                                       }, 'Parse::RecDescent::Token' )
39434                                                                                              ],
39435                                                                                   'line' => 383
39436                                                                                 }, 'Parse::RecDescent::Production' ),
39437                                                                          bless( {
39438                                                                                   'number' => '52',
39439                                                                                   'strcount' => 0,
39440                                                                                   'dircount' => 0,
39441                                                                                   'uncommit' => undef,
39442                                                                                   'error' => undef,
39443                                                                                   'patcount' => 1,
39444                                                                                   'actcount' => 0,
39445                                                                                   'items' => [
39446                                                                                                bless( {
39447                                                                                                         'pattern' => 'NODENUMBER',
39448                                                                                                         'hashname' => '__PATTERN1__',
39449                                                                                                         'description' => '/NODENUMBER/i',
39450                                                                                                         'lookahead' => 0,
39451                                                                                                         'rdelim' => '/',
39452                                                                                                         'line' => 384,
39453                                                                                                         'mod' => 'i',
39454                                                                                                         'ldelim' => '/'
39455                                                                                                       }, 'Parse::RecDescent::Token' )
39456                                                                                              ],
39457                                                                                   'line' => 384
39458                                                                                 }, 'Parse::RecDescent::Production' ),
39459                                                                          bless( {
39460                                                                                   'number' => '53',
39461                                                                                   'strcount' => 0,
39462                                                                                   'dircount' => 0,
39463                                                                                   'uncommit' => undef,
39464                                                                                   'error' => undef,
39465                                                                                   'patcount' => 1,
39466                                                                                   'actcount' => 0,
39467                                                                                   'items' => [
39468                                                                                                bless( {
39469                                                                                                         'pattern' => 'NULLIF',
39470                                                                                                         'hashname' => '__PATTERN1__',
39471                                                                                                         'description' => '/NULLIF/i',
39472                                                                                                         'lookahead' => 0,
39473                                                                                                         'rdelim' => '/',
39474                                                                                                         'line' => 385,
39475                                                                                                         'mod' => 'i',
39476                                                                                                         'ldelim' => '/'
39477                                                                                                       }, 'Parse::RecDescent::Token' )
39478                                                                                              ],
39479                                                                                   'line' => 385
39480                                                                                 }, 'Parse::RecDescent::Production' ),
39481                                                                          bless( {
39482                                                                                   'number' => '54',
39483                                                                                   'strcount' => 0,
39484                                                                                   'dircount' => 0,
39485                                                                                   'uncommit' => undef,
39486                                                                                   'error' => undef,
39487                                                                                   'patcount' => 1,
39488                                                                                   'actcount' => 0,
39489                                                                                   'items' => [
39490                                                                                                bless( {
39491                                                                                                         'pattern' => 'PARTITON',
39492                                                                                                         'hashname' => '__PATTERN1__',
39493                                                                                                         'description' => '/PARTITON/i',
39494                                                                                                         'lookahead' => 0,
39495                                                                                                         'rdelim' => '/',
39496                                                                                                         'line' => 386,
39497                                                                                                         'mod' => 'i',
39498                                                                                                         'ldelim' => '/'
39499                                                                                                       }, 'Parse::RecDescent::Token' )
39500                                                                                              ],
39501                                                                                   'line' => 386
39502                                                                                 }, 'Parse::RecDescent::Production' ),
39503                                                                          bless( {
39504                                                                                   'number' => '55',
39505                                                                                   'strcount' => 0,
39506                                                                                   'dircount' => 0,
39507                                                                                   'uncommit' => undef,
39508                                                                                   'error' => undef,
39509                                                                                   'patcount' => 1,
39510                                                                                   'actcount' => 0,
39511                                                                                   'items' => [
39512                                                                                                bless( {
39513                                                                                                         'pattern' => 'POSSTR',
39514                                                                                                         'hashname' => '__PATTERN1__',
39515                                                                                                         'description' => '/POSSTR/i',
39516                                                                                                         'lookahead' => 0,
39517                                                                                                         'rdelim' => '/',
39518                                                                                                         'line' => 387,
39519                                                                                                         'mod' => 'i',
39520                                                                                                         'ldelim' => '/'
39521                                                                                                       }, 'Parse::RecDescent::Token' )
39522                                                                                              ],
39523                                                                                   'line' => 387
39524                                                                                 }, 'Parse::RecDescent::Production' ),
39525                                                                          bless( {
39526                                                                                   'number' => '56',
39527                                                                                   'strcount' => 0,
39528                                                                                   'dircount' => 0,
39529                                                                                   'uncommit' => undef,
39530                                                                                   'error' => undef,
39531                                                                                   'patcount' => 1,
39532                                                                                   'actcount' => 0,
39533                                                                                   'items' => [
39534                                                                                                bless( {
39535                                                                                                         'pattern' => 'RAISE_ERROR',
39536                                                                                                         'hashname' => '__PATTERN1__',
39537                                                                                                         'description' => '/RAISE_ERROR/i',
39538                                                                                                         'lookahead' => 0,
39539                                                                                                         'rdelim' => '/',
39540                                                                                                         'line' => 388,
39541                                                                                                         'mod' => 'i',
39542                                                                                                         'ldelim' => '/'
39543                                                                                                       }, 'Parse::RecDescent::Token' )
39544                                                                                              ],
39545                                                                                   'line' => 388
39546                                                                                 }, 'Parse::RecDescent::Production' ),
39547                                                                          bless( {
39548                                                                                   'number' => '57',
39549                                                                                   'strcount' => 0,
39550                                                                                   'dircount' => 0,
39551                                                                                   'uncommit' => undef,
39552                                                                                   'error' => undef,
39553                                                                                   'patcount' => 1,
39554                                                                                   'actcount' => 0,
39555                                                                                   'items' => [
39556                                                                                                bless( {
39557                                                                                                         'pattern' => 'REAL',
39558                                                                                                         'hashname' => '__PATTERN1__',
39559                                                                                                         'description' => '/REAL/i',
39560                                                                                                         'lookahead' => 0,
39561                                                                                                         'rdelim' => '/',
39562                                                                                                         'line' => 389,
39563                                                                                                         'mod' => 'i',
39564                                                                                                         'ldelim' => '/'
39565                                                                                                       }, 'Parse::RecDescent::Token' )
39566                                                                                              ],
39567                                                                                   'line' => 389
39568                                                                                 }, 'Parse::RecDescent::Production' ),
39569                                                                          bless( {
39570                                                                                   'number' => '58',
39571                                                                                   'strcount' => 0,
39572                                                                                   'dircount' => 0,
39573                                                                                   'uncommit' => undef,
39574                                                                                   'error' => undef,
39575                                                                                   'patcount' => 1,
39576                                                                                   'actcount' => 0,
39577                                                                                   'items' => [
39578                                                                                                bless( {
39579                                                                                                         'pattern' => 'REC2XML',
39580                                                                                                         'hashname' => '__PATTERN1__',
39581                                                                                                         'description' => '/REC2XML/i',
39582                                                                                                         'lookahead' => 0,
39583                                                                                                         'rdelim' => '/',
39584                                                                                                         'line' => 390,
39585                                                                                                         'mod' => 'i',
39586                                                                                                         'ldelim' => '/'
39587                                                                                                       }, 'Parse::RecDescent::Token' )
39588                                                                                              ],
39589                                                                                   'line' => 390
39590                                                                                 }, 'Parse::RecDescent::Production' ),
39591                                                                          bless( {
39592                                                                                   'number' => '59',
39593                                                                                   'strcount' => 0,
39594                                                                                   'dircount' => 0,
39595                                                                                   'uncommit' => undef,
39596                                                                                   'error' => undef,
39597                                                                                   'patcount' => 1,
39598                                                                                   'actcount' => 0,
39599                                                                                   'items' => [
39600                                                                                                bless( {
39601                                                                                                         'pattern' => 'REGR_AVGX',
39602                                                                                                         'hashname' => '__PATTERN1__',
39603                                                                                                         'description' => '/REGR_AVGX/i',
39604                                                                                                         'lookahead' => 0,
39605                                                                                                         'rdelim' => '/',
39606                                                                                                         'line' => 391,
39607                                                                                                         'mod' => 'i',
39608                                                                                                         'ldelim' => '/'
39609                                                                                                       }, 'Parse::RecDescent::Token' )
39610                                                                                              ],
39611                                                                                   'line' => 391
39612                                                                                 }, 'Parse::RecDescent::Production' ),
39613                                                                          bless( {
39614                                                                                   'number' => '60',
39615                                                                                   'strcount' => 0,
39616                                                                                   'dircount' => 0,
39617                                                                                   'uncommit' => undef,
39618                                                                                   'error' => undef,
39619                                                                                   'patcount' => 1,
39620                                                                                   'actcount' => 0,
39621                                                                                   'items' => [
39622                                                                                                bless( {
39623                                                                                                         'pattern' => 'REGR_AVGY',
39624                                                                                                         'hashname' => '__PATTERN1__',
39625                                                                                                         'description' => '/REGR_AVGY/i',
39626                                                                                                         'lookahead' => 0,
39627                                                                                                         'rdelim' => '/',
39628                                                                                                         'line' => 392,
39629                                                                                                         'mod' => 'i',
39630                                                                                                         'ldelim' => '/'
39631                                                                                                       }, 'Parse::RecDescent::Token' )
39632                                                                                              ],
39633                                                                                   'line' => 392
39634                                                                                 }, 'Parse::RecDescent::Production' ),
39635                                                                          bless( {
39636                                                                                   'number' => '61',
39637                                                                                   'strcount' => 0,
39638                                                                                   'dircount' => 0,
39639                                                                                   'uncommit' => undef,
39640                                                                                   'error' => undef,
39641                                                                                   'patcount' => 1,
39642                                                                                   'actcount' => 0,
39643                                                                                   'items' => [
39644                                                                                                bless( {
39645                                                                                                         'pattern' => 'REGR_COUNT',
39646                                                                                                         'hashname' => '__PATTERN1__',
39647                                                                                                         'description' => '/REGR_COUNT/i',
39648                                                                                                         'lookahead' => 0,
39649                                                                                                         'rdelim' => '/',
39650                                                                                                         'line' => 393,
39651                                                                                                         'mod' => 'i',
39652                                                                                                         'ldelim' => '/'
39653                                                                                                       }, 'Parse::RecDescent::Token' )
39654                                                                                              ],
39655                                                                                   'line' => 393
39656                                                                                 }, 'Parse::RecDescent::Production' ),
39657                                                                          bless( {
39658                                                                                   'number' => '62',
39659                                                                                   'strcount' => 0,
39660                                                                                   'dircount' => 0,
39661                                                                                   'uncommit' => undef,
39662                                                                                   'error' => undef,
39663                                                                                   'patcount' => 0,
39664                                                                                   'actcount' => 0,
39665                                                                                   'items' => [
39666                                                                                                bless( {
39667                                                                                                         'subrule' => '_alternation_1_of_production_63_of_rule_sysibm_function',
39668                                                                                                         'matchrule' => 0,
39669                                                                                                         'implicit' => '/REGR_INTERCEPT/i, or /REGR_ICPT/i',
39670                                                                                                         'argcode' => undef,
39671                                                                                                         'lookahead' => 0,
39672                                                                                                         'line' => 394
39673                                                                                                       }, 'Parse::RecDescent::Subrule' )
39674                                                                                              ],
39675                                                                                   'line' => 394
39676                                                                                 }, 'Parse::RecDescent::Production' ),
39677                                                                          bless( {
39678                                                                                   'number' => '63',
39679                                                                                   'strcount' => 0,
39680                                                                                   'dircount' => 0,
39681                                                                                   'uncommit' => undef,
39682                                                                                   'error' => undef,
39683                                                                                   'patcount' => 1,
39684                                                                                   'actcount' => 0,
39685                                                                                   'items' => [
39686                                                                                                bless( {
39687                                                                                                         'pattern' => 'REGR_R2',
39688                                                                                                         'hashname' => '__PATTERN1__',
39689                                                                                                         'description' => '/REGR_R2/i',
39690                                                                                                         'lookahead' => 0,
39691                                                                                                         'rdelim' => '/',
39692                                                                                                         'line' => 395,
39693                                                                                                         'mod' => 'i',
39694                                                                                                         'ldelim' => '/'
39695                                                                                                       }, 'Parse::RecDescent::Token' )
39696                                                                                              ],
39697                                                                                   'line' => 395
39698                                                                                 }, 'Parse::RecDescent::Production' ),
39699                                                                          bless( {
39700                                                                                   'number' => '64',
39701                                                                                   'strcount' => 0,
39702                                                                                   'dircount' => 0,
39703                                                                                   'uncommit' => undef,
39704                                                                                   'error' => undef,
39705                                                                                   'patcount' => 1,
39706                                                                                   'actcount' => 0,
39707                                                                                   'items' => [
39708                                                                                                bless( {
39709                                                                                                         'pattern' => 'REGR_SLOPE',
39710                                                                                                         'hashname' => '__PATTERN1__',
39711                                                                                                         'description' => '/REGR_SLOPE/i',
39712                                                                                                         'lookahead' => 0,
39713                                                                                                         'rdelim' => '/',
39714                                                                                                         'line' => 396,
39715                                                                                                         'mod' => 'i',
39716                                                                                                         'ldelim' => '/'
39717                                                                                                       }, 'Parse::RecDescent::Token' )
39718                                                                                              ],
39719                                                                                   'line' => 396
39720                                                                                 }, 'Parse::RecDescent::Production' ),
39721                                                                          bless( {
39722                                                                                   'number' => '65',
39723                                                                                   'strcount' => 0,
39724                                                                                   'dircount' => 0,
39725                                                                                   'uncommit' => undef,
39726                                                                                   'error' => undef,
39727                                                                                   'patcount' => 1,
39728                                                                                   'actcount' => 0,
39729                                                                                   'items' => [
39730                                                                                                bless( {
39731                                                                                                         'pattern' => 'REGR_SXX',
39732                                                                                                         'hashname' => '__PATTERN1__',
39733                                                                                                         'description' => '/REGR_SXX/i',
39734                                                                                                         'lookahead' => 0,
39735                                                                                                         'rdelim' => '/',
39736                                                                                                         'line' => 397,
39737                                                                                                         'mod' => 'i',
39738                                                                                                         'ldelim' => '/'
39739                                                                                                       }, 'Parse::RecDescent::Token' )
39740                                                                                              ],
39741                                                                                   'line' => 397
39742                                                                                 }, 'Parse::RecDescent::Production' ),
39743                                                                          bless( {
39744                                                                                   'number' => '66',
39745                                                                                   'strcount' => 0,
39746                                                                                   'dircount' => 0,
39747                                                                                   'uncommit' => undef,
39748                                                                                   'error' => undef,
39749                                                                                   'patcount' => 1,
39750                                                                                   'actcount' => 0,
39751                                                                                   'items' => [
39752                                                                                                bless( {
39753                                                                                                         'pattern' => 'REGR_SXY',
39754                                                                                                         'hashname' => '__PATTERN1__',
39755                                                                                                         'description' => '/REGR_SXY/i',
39756                                                                                                         'lookahead' => 0,
39757                                                                                                         'rdelim' => '/',
39758                                                                                                         'line' => 398,
39759                                                                                                         'mod' => 'i',
39760                                                                                                         'ldelim' => '/'
39761                                                                                                       }, 'Parse::RecDescent::Token' )
39762                                                                                              ],
39763                                                                                   'line' => 398
39764                                                                                 }, 'Parse::RecDescent::Production' ),
39765                                                                          bless( {
39766                                                                                   'number' => '67',
39767                                                                                   'strcount' => 0,
39768                                                                                   'dircount' => 0,
39769                                                                                   'uncommit' => undef,
39770                                                                                   'error' => undef,
39771                                                                                   'patcount' => 1,
39772                                                                                   'actcount' => 0,
39773                                                                                   'items' => [
39774                                                                                                bless( {
39775                                                                                                         'pattern' => 'REGR_SYY',
39776                                                                                                         'hashname' => '__PATTERN1__',
39777                                                                                                         'description' => '/REGR_SYY/i',
39778                                                                                                         'lookahead' => 0,
39779                                                                                                         'rdelim' => '/',
39780                                                                                                         'line' => 399,
39781                                                                                                         'mod' => 'i',
39782                                                                                                         'ldelim' => '/'
39783                                                                                                       }, 'Parse::RecDescent::Token' )
39784                                                                                              ],
39785                                                                                   'line' => 399
39786                                                                                 }, 'Parse::RecDescent::Production' ),
39787                                                                          bless( {
39788                                                                                   'number' => '68',
39789                                                                                   'strcount' => 0,
39790                                                                                   'dircount' => 0,
39791                                                                                   'uncommit' => undef,
39792                                                                                   'error' => undef,
39793                                                                                   'patcount' => 1,
39794                                                                                   'actcount' => 0,
39795                                                                                   'items' => [
39796                                                                                                bless( {
39797                                                                                                         'pattern' => 'RTRIM',
39798                                                                                                         'hashname' => '__PATTERN1__',
39799                                                                                                         'description' => '/RTRIM/i',
39800                                                                                                         'lookahead' => 0,
39801                                                                                                         'rdelim' => '/',
39802                                                                                                         'line' => 400,
39803                                                                                                         'mod' => 'i',
39804                                                                                                         'ldelim' => '/'
39805                                                                                                       }, 'Parse::RecDescent::Token' )
39806                                                                                              ],
39807                                                                                   'line' => 400
39808                                                                                 }, 'Parse::RecDescent::Production' ),
39809                                                                          bless( {
39810                                                                                   'number' => '69',
39811                                                                                   'strcount' => 0,
39812                                                                                   'dircount' => 0,
39813                                                                                   'uncommit' => undef,
39814                                                                                   'error' => undef,
39815                                                                                   'patcount' => 1,
39816                                                                                   'actcount' => 0,
39817                                                                                   'items' => [
39818                                                                                                bless( {
39819                                                                                                         'pattern' => 'SECOND',
39820                                                                                                         'hashname' => '__PATTERN1__',
39821                                                                                                         'description' => '/SECOND/i',
39822                                                                                                         'lookahead' => 0,
39823                                                                                                         'rdelim' => '/',
39824                                                                                                         'line' => 401,
39825                                                                                                         'mod' => 'i',
39826                                                                                                         'ldelim' => '/'
39827                                                                                                       }, 'Parse::RecDescent::Token' )
39828                                                                                              ],
39829                                                                                   'line' => 401
39830                                                                                 }, 'Parse::RecDescent::Production' ),
39831                                                                          bless( {
39832                                                                                   'number' => '70',
39833                                                                                   'strcount' => 0,
39834                                                                                   'dircount' => 0,
39835                                                                                   'uncommit' => undef,
39836                                                                                   'error' => undef,
39837                                                                                   'patcount' => 1,
39838                                                                                   'actcount' => 0,
39839                                                                                   'items' => [
39840                                                                                                bless( {
39841                                                                                                         'pattern' => 'SMALLINT',
39842                                                                                                         'hashname' => '__PATTERN1__',
39843                                                                                                         'description' => '/SMALLINT/i',
39844                                                                                                         'lookahead' => 0,
39845                                                                                                         'rdelim' => '/',
39846                                                                                                         'line' => 402,
39847                                                                                                         'mod' => 'i',
39848                                                                                                         'ldelim' => '/'
39849                                                                                                       }, 'Parse::RecDescent::Token' )
39850                                                                                              ],
39851                                                                                   'line' => 402
39852                                                                                 }, 'Parse::RecDescent::Production' ),
39853                                                                          bless( {
39854                                                                                   'number' => '71',
39855                                                                                   'strcount' => 0,
39856                                                                                   'dircount' => 0,
39857                                                                                   'uncommit' => undef,
39858                                                                                   'error' => undef,
39859                                                                                   'patcount' => 1,
39860                                                                                   'actcount' => 0,
39861                                                                                   'items' => [
39862                                                                                                bless( {
39863                                                                                                         'pattern' => 'STDDEV',
39864                                                                                                         'hashname' => '__PATTERN1__',
39865                                                                                                         'description' => '/STDDEV/i',
39866                                                                                                         'lookahead' => 0,
39867                                                                                                         'rdelim' => '/',
39868                                                                                                         'line' => 403,
39869                                                                                                         'mod' => 'i',
39870                                                                                                         'ldelim' => '/'
39871                                                                                                       }, 'Parse::RecDescent::Token' )
39872                                                                                              ],
39873                                                                                   'line' => 403
39874                                                                                 }, 'Parse::RecDescent::Production' ),
39875                                                                          bless( {
39876                                                                                   'number' => '72',
39877                                                                                   'strcount' => 0,
39878                                                                                   'dircount' => 0,
39879                                                                                   'uncommit' => undef,
39880                                                                                   'error' => undef,
39881                                                                                   'patcount' => 1,
39882                                                                                   'actcount' => 0,
39883                                                                                   'items' => [
39884                                                                                                bless( {
39885                                                                                                         'pattern' => 'SUBSTR',
39886                                                                                                         'hashname' => '__PATTERN1__',
39887                                                                                                         'description' => '/SUBSTR/i',
39888                                                                                                         'lookahead' => 0,
39889                                                                                                         'rdelim' => '/',
39890                                                                                                         'line' => 404,
39891                                                                                                         'mod' => 'i',
39892                                                                                                         'ldelim' => '/'
39893                                                                                                       }, 'Parse::RecDescent::Token' )
39894                                                                                              ],
39895                                                                                   'line' => 404
39896                                                                                 }, 'Parse::RecDescent::Production' ),
39897                                                                          bless( {
39898                                                                                   'number' => '73',
39899                                                                                   'strcount' => 0,
39900                                                                                   'dircount' => 0,
39901                                                                                   'uncommit' => undef,
39902                                                                                   'error' => undef,
39903                                                                                   'patcount' => 1,
39904                                                                                   'actcount' => 0,
39905                                                                                   'items' => [
39906                                                                                                bless( {
39907                                                                                                         'pattern' => 'SUM',
39908                                                                                                         'hashname' => '__PATTERN1__',
39909                                                                                                         'description' => '/SUM/i',
39910                                                                                                         'lookahead' => 0,
39911                                                                                                         'rdelim' => '/',
39912                                                                                                         'line' => 405,
39913                                                                                                         'mod' => 'i',
39914                                                                                                         'ldelim' => '/'
39915                                                                                                       }, 'Parse::RecDescent::Token' )
39916                                                                                              ],
39917                                                                                   'line' => 405
39918                                                                                 }, 'Parse::RecDescent::Production' ),
39919                                                                          bless( {
39920                                                                                   'number' => '74',
39921                                                                                   'strcount' => 0,
39922                                                                                   'dircount' => 0,
39923                                                                                   'uncommit' => undef,
39924                                                                                   'error' => undef,
39925                                                                                   'patcount' => 1,
39926                                                                                   'actcount' => 0,
39927                                                                                   'items' => [
39928                                                                                                bless( {
39929                                                                                                         'pattern' => 'TABLE_NAME',
39930                                                                                                         'hashname' => '__PATTERN1__',
39931                                                                                                         'description' => '/TABLE_NAME/i',
39932                                                                                                         'lookahead' => 0,
39933                                                                                                         'rdelim' => '/',
39934                                                                                                         'line' => 406,
39935                                                                                                         'mod' => 'i',
39936                                                                                                         'ldelim' => '/'
39937                                                                                                       }, 'Parse::RecDescent::Token' )
39938                                                                                              ],
39939                                                                                   'line' => 406
39940                                                                                 }, 'Parse::RecDescent::Production' ),
39941                                                                          bless( {
39942                                                                                   'number' => '75',
39943                                                                                   'strcount' => 0,
39944                                                                                   'dircount' => 0,
39945                                                                                   'uncommit' => undef,
39946                                                                                   'error' => undef,
39947                                                                                   'patcount' => 1,
39948                                                                                   'actcount' => 0,
39949                                                                                   'items' => [
39950                                                                                                bless( {
39951                                                                                                         'pattern' => 'TABLE_SCHEMA',
39952                                                                                                         'hashname' => '__PATTERN1__',
39953                                                                                                         'description' => '/TABLE_SCHEMA/i',
39954                                                                                                         'lookahead' => 0,
39955                                                                                                         'rdelim' => '/',
39956                                                                                                         'line' => 407,
39957                                                                                                         'mod' => 'i',
39958                                                                                                         'ldelim' => '/'
39959                                                                                                       }, 'Parse::RecDescent::Token' )
39960                                                                                              ],
39961                                                                                   'line' => 407
39962                                                                                 }, 'Parse::RecDescent::Production' ),
39963                                                                          bless( {
39964                                                                                   'number' => '76',
39965                                                                                   'strcount' => 0,
39966                                                                                   'dircount' => 0,
39967                                                                                   'uncommit' => undef,
39968                                                                                   'error' => undef,
39969                                                                                   'patcount' => 1,
39970                                                                                   'actcount' => 0,
39971                                                                                   'items' => [
39972                                                                                                bless( {
39973                                                                                                         'pattern' => 'TIME',
39974                                                                                                         'hashname' => '__PATTERN1__',
39975                                                                                                         'description' => '/TIME/i',
39976                                                                                                         'lookahead' => 0,
39977                                                                                                         'rdelim' => '/',
39978                                                                                                         'line' => 408,
39979                                                                                                         'mod' => 'i',
39980                                                                                                         'ldelim' => '/'
39981                                                                                                       }, 'Parse::RecDescent::Token' )
39982                                                                                              ],
39983                                                                                   'line' => 408
39984                                                                                 }, 'Parse::RecDescent::Production' ),
39985                                                                          bless( {
39986                                                                                   'number' => '77',
39987                                                                                   'strcount' => 0,
39988                                                                                   'dircount' => 0,
39989                                                                                   'uncommit' => undef,
39990                                                                                   'error' => undef,
39991                                                                                   'patcount' => 1,
39992                                                                                   'actcount' => 0,
39993                                                                                   'items' => [
39994                                                                                                bless( {
39995                                                                                                         'pattern' => 'TIMESTAMP',
39996                                                                                                         'hashname' => '__PATTERN1__',
39997                                                                                                         'description' => '/TIMESTAMP/i',
39998                                                                                                         'lookahead' => 0,
39999                                                                                                         'rdelim' => '/',
40000                                                                                                         'line' => 409,
40001                                                                                                         'mod' => 'i',
40002                                                                                                         'ldelim' => '/'
40003                                                                                                       }, 'Parse::RecDescent::Token' )
40004                                                                                              ],
40005                                                                                   'line' => 409
40006                                                                                 }, 'Parse::RecDescent::Production' ),
40007                                                                          bless( {
40008                                                                                   'number' => '78',
40009                                                                                   'strcount' => 0,
40010                                                                                   'dircount' => 0,
40011                                                                                   'uncommit' => undef,
40012                                                                                   'error' => undef,
40013                                                                                   'patcount' => 1,
40014                                                                                   'actcount' => 0,
40015                                                                                   'items' => [
40016                                                                                                bless( {
40017                                                                                                         'pattern' => 'TRANSLATE',
40018                                                                                                         'hashname' => '__PATTERN1__',
40019                                                                                                         'description' => '/TRANSLATE/i',
40020                                                                                                         'lookahead' => 0,
40021                                                                                                         'rdelim' => '/',
40022                                                                                                         'line' => 410,
40023                                                                                                         'mod' => 'i',
40024                                                                                                         'ldelim' => '/'
40025                                                                                                       }, 'Parse::RecDescent::Token' )
40026                                                                                              ],
40027                                                                                   'line' => 410
40028                                                                                 }, 'Parse::RecDescent::Production' ),
40029                                                                          bless( {
40030                                                                                   'number' => '79',
40031                                                                                   'strcount' => 0,
40032                                                                                   'dircount' => 0,
40033                                                                                   'uncommit' => undef,
40034                                                                                   'error' => undef,
40035                                                                                   'patcount' => 1,
40036                                                                                   'actcount' => 0,
40037                                                                                   'items' => [
40038                                                                                                bless( {
40039                                                                                                         'pattern' => 'TYPE_ID',
40040                                                                                                         'hashname' => '__PATTERN1__',
40041                                                                                                         'description' => '/TYPE_ID/i',
40042                                                                                                         'lookahead' => 0,
40043                                                                                                         'rdelim' => '/',
40044                                                                                                         'line' => 411,
40045                                                                                                         'mod' => 'i',
40046                                                                                                         'ldelim' => '/'
40047                                                                                                       }, 'Parse::RecDescent::Token' )
40048                                                                                              ],
40049                                                                                   'line' => 411
40050                                                                                 }, 'Parse::RecDescent::Production' ),
40051                                                                          bless( {
40052                                                                                   'number' => '80',
40053                                                                                   'strcount' => 0,
40054                                                                                   'dircount' => 0,
40055                                                                                   'uncommit' => undef,
40056                                                                                   'error' => undef,
40057                                                                                   'patcount' => 1,
40058                                                                                   'actcount' => 0,
40059                                                                                   'items' => [
40060                                                                                                bless( {
40061                                                                                                         'pattern' => 'TYPE_NAME',
40062                                                                                                         'hashname' => '__PATTERN1__',
40063                                                                                                         'description' => '/TYPE_NAME/i',
40064                                                                                                         'lookahead' => 0,
40065                                                                                                         'rdelim' => '/',
40066                                                                                                         'line' => 412,
40067                                                                                                         'mod' => 'i',
40068                                                                                                         'ldelim' => '/'
40069                                                                                                       }, 'Parse::RecDescent::Token' )
40070                                                                                              ],
40071                                                                                   'line' => 412
40072                                                                                 }, 'Parse::RecDescent::Production' ),
40073                                                                          bless( {
40074                                                                                   'number' => '81',
40075                                                                                   'strcount' => 0,
40076                                                                                   'dircount' => 0,
40077                                                                                   'uncommit' => undef,
40078                                                                                   'error' => undef,
40079                                                                                   'patcount' => 1,
40080                                                                                   'actcount' => 0,
40081                                                                                   'items' => [
40082                                                                                                bless( {
40083                                                                                                         'pattern' => 'TYPE_SCHEMA',
40084                                                                                                         'hashname' => '__PATTERN1__',
40085                                                                                                         'description' => '/TYPE_SCHEMA/i',
40086                                                                                                         'lookahead' => 0,
40087                                                                                                         'rdelim' => '/',
40088                                                                                                         'line' => 413,
40089                                                                                                         'mod' => 'i',
40090                                                                                                         'ldelim' => '/'
40091                                                                                                       }, 'Parse::RecDescent::Token' )
40092                                                                                              ],
40093                                                                                   'line' => 413
40094                                                                                 }, 'Parse::RecDescent::Production' ),
40095                                                                          bless( {
40096                                                                                   'number' => '82',
40097                                                                                   'strcount' => 0,
40098                                                                                   'dircount' => 0,
40099                                                                                   'uncommit' => undef,
40100                                                                                   'error' => undef,
40101                                                                                   'patcount' => 0,
40102                                                                                   'actcount' => 0,
40103                                                                                   'items' => [
40104                                                                                                bless( {
40105                                                                                                         'subrule' => '_alternation_1_of_production_83_of_rule_sysibm_function',
40106                                                                                                         'matchrule' => 0,
40107                                                                                                         'implicit' => '/UCASE/i, or /UPPER/i',
40108                                                                                                         'argcode' => undef,
40109                                                                                                         'lookahead' => 0,
40110                                                                                                         'line' => 414
40111                                                                                                       }, 'Parse::RecDescent::Subrule' )
40112                                                                                              ],
40113                                                                                   'line' => 414
40114                                                                                 }, 'Parse::RecDescent::Production' ),
40115                                                                          bless( {
40116                                                                                   'number' => '83',
40117                                                                                   'strcount' => 0,
40118                                                                                   'dircount' => 0,
40119                                                                                   'uncommit' => undef,
40120                                                                                   'error' => undef,
40121                                                                                   'patcount' => 1,
40122                                                                                   'actcount' => 0,
40123                                                                                   'items' => [
40124                                                                                                bless( {
40125                                                                                                         'pattern' => 'VALUE',
40126                                                                                                         'hashname' => '__PATTERN1__',
40127                                                                                                         'description' => '/VALUE/i',
40128                                                                                                         'lookahead' => 0,
40129                                                                                                         'rdelim' => '/',
40130                                                                                                         'line' => 415,
40131                                                                                                         'mod' => 'i',
40132                                                                                                         'ldelim' => '/'
40133                                                                                                       }, 'Parse::RecDescent::Token' )
40134                                                                                              ],
40135                                                                                   'line' => 415
40136                                                                                 }, 'Parse::RecDescent::Production' ),
40137                                                                          bless( {
40138                                                                                   'number' => '84',
40139                                                                                   'strcount' => 0,
40140                                                                                   'dircount' => 0,
40141                                                                                   'uncommit' => undef,
40142                                                                                   'error' => undef,
40143                                                                                   'patcount' => 1,
40144                                                                                   'actcount' => 0,
40145                                                                                   'items' => [
40146                                                                                                bless( {
40147                                                                                                         'pattern' => 'VARCHAR',
40148                                                                                                         'hashname' => '__PATTERN1__',
40149                                                                                                         'description' => '/VARCHAR/i',
40150                                                                                                         'lookahead' => 0,
40151                                                                                                         'rdelim' => '/',
40152                                                                                                         'line' => 416,
40153                                                                                                         'mod' => 'i',
40154                                                                                                         'ldelim' => '/'
40155                                                                                                       }, 'Parse::RecDescent::Token' )
40156                                                                                              ],
40157                                                                                   'line' => 416
40158                                                                                 }, 'Parse::RecDescent::Production' ),
40159                                                                          bless( {
40160                                                                                   'number' => '85',
40161                                                                                   'strcount' => 0,
40162                                                                                   'dircount' => 0,
40163                                                                                   'uncommit' => undef,
40164                                                                                   'error' => undef,
40165                                                                                   'patcount' => 1,
40166                                                                                   'actcount' => 0,
40167                                                                                   'items' => [
40168                                                                                                bless( {
40169                                                                                                         'pattern' => 'VARGRAPHIC',
40170                                                                                                         'hashname' => '__PATTERN1__',
40171                                                                                                         'description' => '/VARGRAPHIC/i',
40172                                                                                                         'lookahead' => 0,
40173                                                                                                         'rdelim' => '/',
40174                                                                                                         'line' => 417,
40175                                                                                                         'mod' => 'i',
40176                                                                                                         'ldelim' => '/'
40177                                                                                                       }, 'Parse::RecDescent::Token' )
40178                                                                                              ],
40179                                                                                   'line' => 417
40180                                                                                 }, 'Parse::RecDescent::Production' ),
40181                                                                          bless( {
40182                                                                                   'number' => '86',
40183                                                                                   'strcount' => 0,
40184                                                                                   'dircount' => 0,
40185                                                                                   'uncommit' => undef,
40186                                                                                   'error' => undef,
40187                                                                                   'patcount' => 0,
40188                                                                                   'actcount' => 0,
40189                                                                                   'items' => [
40190                                                                                                bless( {
40191                                                                                                         'subrule' => '_alternation_1_of_production_87_of_rule_sysibm_function',
40192                                                                                                         'matchrule' => 0,
40193                                                                                                         'implicit' => '/VARIANCE/i, or /VAR/i',
40194                                                                                                         'argcode' => undef,
40195                                                                                                         'lookahead' => 0,
40196                                                                                                         'line' => 418
40197                                                                                                       }, 'Parse::RecDescent::Subrule' )
40198                                                                                              ],
40199                                                                                   'line' => 418
40200                                                                                 }, 'Parse::RecDescent::Production' ),
40201                                                                          bless( {
40202                                                                                   'number' => '87',
40203                                                                                   'strcount' => 0,
40204                                                                                   'dircount' => 0,
40205                                                                                   'uncommit' => undef,
40206                                                                                   'error' => undef,
40207                                                                                   'patcount' => 1,
40208                                                                                   'actcount' => 0,
40209                                                                                   'items' => [
40210                                                                                                bless( {
40211                                                                                                         'pattern' => 'YEAR',
40212                                                                                                         'hashname' => '__PATTERN1__',
40213                                                                                                         'description' => '/YEAR/i',
40214                                                                                                         'lookahead' => 0,
40215                                                                                                         'rdelim' => '/',
40216                                                                                                         'line' => 419,
40217                                                                                                         'mod' => 'i',
40218                                                                                                         'ldelim' => '/'
40219                                                                                                       }, 'Parse::RecDescent::Token' )
40220                                                                                              ],
40221                                                                                   'line' => 419
40222                                                                                 }, 'Parse::RecDescent::Production' )
40223                                                                        ],
40224                                                             'name' => 'sysibm_function',
40225                                                             'vars' => '',
40226                                                             'line' => 332
40227                                                           }, 'Parse::RecDescent::Rule' ),
40228                               'window_partition_clause' => bless( {
40229                                                                     'impcount' => 0,
40230                                                                     'calls' => [
40231                                                                                  'partitioning_expression'
40232                                                                                ],
40233                                                                     'changed' => 0,
40234                                                                     'opcount' => 0,
40235                                                                     'prods' => [
40236                                                                                  bless( {
40237                                                                                           'number' => '0',
40238                                                                                           'strcount' => 0,
40239                                                                                           'dircount' => 1,
40240                                                                                           'uncommit' => undef,
40241                                                                                           'error' => undef,
40242                                                                                           'patcount' => 2,
40243                                                                                           'actcount' => 0,
40244                                                                                           'op' => [],
40245                                                                                           'items' => [
40246                                                                                                        bless( {
40247                                                                                                                 'pattern' => 'PARTITION\\s+BY',
40248                                                                                                                 'hashname' => '__PATTERN1__',
40249                                                                                                                 'description' => '/PARTITION\\\\s+BY/i',
40250                                                                                                                 'lookahead' => 0,
40251                                                                                                                 'rdelim' => '/',
40252                                                                                                                 'line' => 553,
40253                                                                                                                 'mod' => 'i',
40254                                                                                                                 'ldelim' => '/'
40255                                                                                                               }, 'Parse::RecDescent::Token' ),
40256                                                                                                        bless( {
40257                                                                                                                 'expected' => '<leftop: partitioning_expression /,/ partitioning_expression>',
40258                                                                                                                 'min' => 1,
40259                                                                                                                 'name' => '\'partitioning_expression(s)\'',
40260                                                                                                                 'max' => 100000000,
40261                                                                                                                 'leftarg' => bless( {
40262                                                                                                                                       'subrule' => 'partitioning_expression',
40263                                                                                                                                       'matchrule' => 0,
40264                                                                                                                                       'implicit' => undef,
40265                                                                                                                                       'argcode' => undef,
40266                                                                                                                                       'lookahead' => 0,
40267                                                                                                                                       'line' => 553
40268                                                                                                                                     }, 'Parse::RecDescent::Subrule' ),
40269                                                                                                                 'rightarg' => bless( {
40270                                                                                                                                        'subrule' => 'partitioning_expression',
40271                                                                                                                                        'matchrule' => 0,
40272                                                                                                                                        'implicit' => undef,
40273                                                                                                                                        'argcode' => undef,
40274                                                                                                                                        'lookahead' => 0,
40275                                                                                                                                        'line' => 553
40276                                                                                                                                      }, 'Parse::RecDescent::Subrule' ),
40277                                                                                                                 'hashname' => '__DIRECTIVE1__',
40278                                                                                                                 'type' => 'leftop',
40279                                                                                                                 'op' => bless( {
40280                                                                                                                                  'pattern' => ',',
40281                                                                                                                                  'hashname' => '__PATTERN2__',
40282                                                                                                                                  'description' => '/,/',
40283                                                                                                                                  'lookahead' => 0,
40284                                                                                                                                  'rdelim' => '/',
40285                                                                                                                                  'line' => 553,
40286                                                                                                                                  'mod' => '',
40287                                                                                                                                  'ldelim' => '/'
40288                                                                                                                                }, 'Parse::RecDescent::Token' )
40289                                                                                                               }, 'Parse::RecDescent::Operator' )
40290                                                                                                      ],
40291                                                                                           'line' => undef
40292                                                                                         }, 'Parse::RecDescent::Production' )
40293                                                                                ],
40294                                                                     'name' => 'window_partition_clause',
40295                                                                     'vars' => '',
40296                                                                     'line' => 553
40297                                                                   }, 'Parse::RecDescent::Rule' ),
40298                               'WHERE' => bless( {
40299                                                   'impcount' => 0,
40300                                                   'calls' => [],
40301                                                   'changed' => 0,
40302                                                   'opcount' => 0,
40303                                                   'prods' => [
40304                                                                bless( {
40305                                                                         'number' => '0',
40306                                                                         'strcount' => 0,
40307                                                                         'dircount' => 0,
40308                                                                         'uncommit' => undef,
40309                                                                         'error' => undef,
40310                                                                         'patcount' => 1,
40311                                                                         'actcount' => 0,
40312                                                                         'items' => [
40313                                                                                      bless( {
40314                                                                                               'pattern' => 'where',
40315                                                                                               'hashname' => '__PATTERN1__',
40316                                                                                               'description' => '/where/i',
40317                                                                                               'lookahead' => 0,
40318                                                                                               'rdelim' => '/',
40319                                                                                               'line' => 117,
40320                                                                                               'mod' => 'i',
40321                                                                                               'ldelim' => '/'
40322                                                                                             }, 'Parse::RecDescent::Token' )
40323                                                                                    ],
40324                                                                         'line' => undef
40325                                                                       }, 'Parse::RecDescent::Production' )
40326                                                              ],
40327                                                   'name' => 'WHERE',
40328                                                   'vars' => '',
40329                                                   'line' => 117
40330                                                 }, 'Parse::RecDescent::Rule' ),
40331                               'CREATE' => bless( {
40332                                                    'impcount' => 0,
40333                                                    'calls' => [],
40334                                                    'changed' => 0,
40335                                                    'opcount' => 0,
40336                                                    'prods' => [
40337                                                                 bless( {
40338                                                                          'number' => '0',
40339                                                                          'strcount' => 0,
40340                                                                          'dircount' => 0,
40341                                                                          'uncommit' => undef,
40342                                                                          'error' => undef,
40343                                                                          'patcount' => 1,
40344                                                                          'actcount' => 0,
40345                                                                          'items' => [
40346                                                                                       bless( {
40347                                                                                                'pattern' => 'create',
40348                                                                                                'hashname' => '__PATTERN1__',
40349                                                                                                'description' => '/create/i',
40350                                                                                                'lookahead' => 0,
40351                                                                                                'rdelim' => '/',
40352                                                                                                'line' => 101,
40353                                                                                                'mod' => 'i',
40354                                                                                                'ldelim' => '/'
40355                                                                                              }, 'Parse::RecDescent::Token' )
40356                                                                                     ],
40357                                                                          'line' => undef
40358                                                                        }, 'Parse::RecDescent::Production' )
40359                                                               ],
40360                                                    'name' => 'CREATE',
40361                                                    'vars' => '',
40362                                                    'line' => 101
40363                                                  }, 'Parse::RecDescent::Rule' ),
40364                               '_alternation_1_of_production_1_of_rule_sysfun' => bless( {
40365                                                                                           'impcount' => 0,
40366                                                                                           'calls' => [],
40367                                                                                           'changed' => 0,
40368                                                                                           'opcount' => 0,
40369                                                                                           'prods' => [
40370                                                                                                        bless( {
40371                                                                                                                 'number' => '0',
40372                                                                                                                 'strcount' => 0,
40373                                                                                                                 'dircount' => 0,
40374                                                                                                                 'uncommit' => undef,
40375                                                                                                                 'error' => undef,
40376                                                                                                                 'patcount' => 1,
40377                                                                                                                 'actcount' => 0,
40378                                                                                                                 'items' => [
40379                                                                                                                              bless( {
40380                                                                                                                                       'pattern' => 'ABS',
40381                                                                                                                                       'hashname' => '__PATTERN1__',
40382                                                                                                                                       'description' => '/ABS/i',
40383                                                                                                                                       'lookahead' => 0,
40384                                                                                                                                       'rdelim' => '/',
40385                                                                                                                                       'line' => 628,
40386                                                                                                                                       'mod' => 'i',
40387                                                                                                                                       'ldelim' => '/'
40388                                                                                                                                     }, 'Parse::RecDescent::Token' )
40389                                                                                                                            ],
40390                                                                                                                 'line' => undef
40391                                                                                                               }, 'Parse::RecDescent::Production' ),
40392                                                                                                        bless( {
40393                                                                                                                 'number' => '1',
40394                                                                                                                 'strcount' => 0,
40395                                                                                                                 'dircount' => 0,
40396                                                                                                                 'uncommit' => undef,
40397                                                                                                                 'error' => undef,
40398                                                                                                                 'patcount' => 1,
40399                                                                                                                 'actcount' => 0,
40400                                                                                                                 'items' => [
40401                                                                                                                              bless( {
40402                                                                                                                                       'pattern' => 'ABSVAL',
40403                                                                                                                                       'hashname' => '__PATTERN1__',
40404                                                                                                                                       'description' => '/ABSVAL/i',
40405                                                                                                                                       'lookahead' => 0,
40406                                                                                                                                       'rdelim' => '/',
40407                                                                                                                                       'line' => 628,
40408                                                                                                                                       'mod' => 'i',
40409                                                                                                                                       'ldelim' => '/'
40410                                                                                                                                     }, 'Parse::RecDescent::Token' )
40411                                                                                                                            ],
40412                                                                                                                 'line' => 628
40413                                                                                                               }, 'Parse::RecDescent::Production' )
40414                                                                                                      ],
40415                                                                                           'name' => '_alternation_1_of_production_1_of_rule_sysfun',
40416                                                                                           'vars' => '',
40417                                                                                           'line' => 628
40418                                                                                         }, 'Parse::RecDescent::Rule' ),
40419                               '_alternation_1_of_production_1_of_rule_function' => bless( {
40420                                                                                             'impcount' => 0,
40421                                                                                             'calls' => [
40422                                                                                                          'sysibm_function',
40423                                                                                                          'sysfun_function',
40424                                                                                                          'userdefined_function'
40425                                                                                                        ],
40426                                                                                             'changed' => 0,
40427                                                                                             'opcount' => 0,
40428                                                                                             'prods' => [
40429                                                                                                          bless( {
40430                                                                                                                   'number' => '0',
40431                                                                                                                   'strcount' => 0,
40432                                                                                                                   'dircount' => 0,
40433                                                                                                                   'uncommit' => undef,
40434                                                                                                                   'error' => undef,
40435                                                                                                                   'patcount' => 1,
40436                                                                                                                   'actcount' => 0,
40437                                                                                                                   'items' => [
40438                                                                                                                                bless( {
40439                                                                                                                                         'pattern' => 'SYSIBM\\.|',
40440                                                                                                                                         'hashname' => '__PATTERN1__',
40441                                                                                                                                         'description' => '/SYSIBM\\\\.|/i',
40442                                                                                                                                         'lookahead' => 0,
40443                                                                                                                                         'rdelim' => '/',
40444                                                                                                                                         'line' => 625,
40445                                                                                                                                         'mod' => 'i',
40446                                                                                                                                         'ldelim' => '/'
40447                                                                                                                                       }, 'Parse::RecDescent::Token' ),
40448                                                                                                                                bless( {
40449                                                                                                                                         'subrule' => 'sysibm_function',
40450                                                                                                                                         'matchrule' => 0,
40451                                                                                                                                         'implicit' => undef,
40452                                                                                                                                         'argcode' => undef,
40453                                                                                                                                         'lookahead' => 0,
40454                                                                                                                                         'line' => 625
40455                                                                                                                                       }, 'Parse::RecDescent::Subrule' )
40456                                                                                                                              ],
40457                                                                                                                   'line' => undef
40458                                                                                                                 }, 'Parse::RecDescent::Production' ),
40459                                                                                                          bless( {
40460                                                                                                                   'number' => '1',
40461                                                                                                                   'strcount' => 0,
40462                                                                                                                   'dircount' => 0,
40463                                                                                                                   'uncommit' => undef,
40464                                                                                                                   'error' => undef,
40465                                                                                                                   'patcount' => 1,
40466                                                                                                                   'actcount' => 0,
40467                                                                                                                   'items' => [
40468                                                                                                                                bless( {
40469                                                                                                                                         'pattern' => 'SYSFUN\\.|',
40470                                                                                                                                         'hashname' => '__PATTERN1__',
40471                                                                                                                                         'description' => '/SYSFUN\\\\.|/i',
40472                                                                                                                                         'lookahead' => 0,
40473                                                                                                                                         'rdelim' => '/',
40474                                                                                                                                         'line' => 626,
40475                                                                                                                                         'mod' => 'i',
40476                                                                                                                                         'ldelim' => '/'
40477                                                                                                                                       }, 'Parse::RecDescent::Token' ),
40478                                                                                                                                bless( {
40479                                                                                                                                         'subrule' => 'sysfun_function',
40480                                                                                                                                         'matchrule' => 0,
40481                                                                                                                                         'implicit' => undef,
40482                                                                                                                                         'argcode' => undef,
40483                                                                                                                                         'lookahead' => 0,
40484                                                                                                                                         'line' => 626
40485                                                                                                                                       }, 'Parse::RecDescent::Subrule' )
40486                                                                                                                              ],
40487                                                                                                                   'line' => 626
40488                                                                                                                 }, 'Parse::RecDescent::Production' ),
40489                                                                                                          bless( {
40490                                                                                                                   'number' => '2',
40491                                                                                                                   'strcount' => 0,
40492                                                                                                                   'dircount' => 0,
40493                                                                                                                   'uncommit' => undef,
40494                                                                                                                   'error' => undef,
40495                                                                                                                   'patcount' => 0,
40496                                                                                                                   'actcount' => 0,
40497                                                                                                                   'items' => [
40498                                                                                                                                bless( {
40499                                                                                                                                         'subrule' => 'userdefined_function',
40500                                                                                                                                         'matchrule' => 0,
40501                                                                                                                                         'implicit' => undef,
40502                                                                                                                                         'argcode' => undef,
40503                                                                                                                                         'lookahead' => 0,
40504                                                                                                                                         'line' => 627
40505                                                                                                                                       }, 'Parse::RecDescent::Subrule' )
40506                                                                                                                              ],
40507                                                                                                                   'line' => 627
40508                                                                                                                 }, 'Parse::RecDescent::Production' )
40509                                                                                                        ],
40510                                                                                             'name' => '_alternation_1_of_production_1_of_rule_function',
40511                                                                                             'vars' => '',
40512                                                                                             'line' => 625
40513                                                                                           }, 'Parse::RecDescent::Rule' ),
40514                               'identifier' => bless( {
40515                                                        'impcount' => 0,
40516                                                        'calls' => [
40517                                                                     'NAME'
40518                                                                   ],
40519                                                        'changed' => 0,
40520                                                        'opcount' => 0,
40521                                                        'prods' => [
40522                                                                     bless( {
40523                                                                              'number' => '0',
40524                                                                              'strcount' => 0,
40525                                                                              'dircount' => 0,
40526                                                                              'uncommit' => undef,
40527                                                                              'error' => undef,
40528                                                                              'patcount' => 0,
40529                                                                              'actcount' => 0,
40530                                                                              'items' => [
40531                                                                                           bless( {
40532                                                                                                    'subrule' => 'NAME',
40533                                                                                                    'matchrule' => 0,
40534                                                                                                    'implicit' => undef,
40535                                                                                                    'argcode' => undef,
40536                                                                                                    'lookahead' => 0,
40537                                                                                                    'line' => 136
40538                                                                                                  }, 'Parse::RecDescent::Subrule' )
40539                                                                                         ],
40540                                                                              'line' => undef
40541                                                                            }, 'Parse::RecDescent::Production' )
40542                                                                   ],
40543                                                        'name' => 'identifier',
40544                                                        'vars' => '',
40545                                                        'line' => 136
40546                                                      }, 'Parse::RecDescent::Rule' ),
40547                               '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause' => bless( {
40548                                                                                                                                               'impcount' => 0,
40549                                                                                                                                               'calls' => [
40550                                                                                                                                                            'asc_option',
40551                                                                                                                                                            'desc_option'
40552                                                                                                                                                          ],
40553                                                                                                                                               'changed' => 0,
40554                                                                                                                                               'opcount' => 0,
40555                                                                                                                                               'prods' => [
40556                                                                                                                                                            bless( {
40557                                                                                                                                                                     'number' => '0',
40558                                                                                                                                                                     'strcount' => 0,
40559                                                                                                                                                                     'dircount' => 0,
40560                                                                                                                                                                     'uncommit' => undef,
40561                                                                                                                                                                     'error' => undef,
40562                                                                                                                                                                     'patcount' => 0,
40563                                                                                                                                                                     'actcount' => 0,
40564                                                                                                                                                                     'items' => [
40565                                                                                                                                                                                  bless( {
40566                                                                                                                                                                                           'subrule' => 'asc_option',
40567                                                                                                                                                                                           'matchrule' => 0,
40568                                                                                                                                                                                           'implicit' => undef,
40569                                                                                                                                                                                           'argcode' => undef,
40570                                                                                                                                                                                           'lookahead' => 0,
40571                                                                                                                                                                                           'line' => 626
40572                                                                                                                                                                                         }, 'Parse::RecDescent::Subrule' )
40573                                                                                                                                                                                ],
40574                                                                                                                                                                     'line' => undef
40575                                                                                                                                                                   }, 'Parse::RecDescent::Production' ),
40576                                                                                                                                                            bless( {
40577                                                                                                                                                                     'number' => '1',
40578                                                                                                                                                                     'strcount' => 0,
40579                                                                                                                                                                     'dircount' => 0,
40580                                                                                                                                                                     'uncommit' => undef,
40581                                                                                                                                                                     'error' => undef,
40582                                                                                                                                                                     'patcount' => 0,
40583                                                                                                                                                                     'actcount' => 0,
40584                                                                                                                                                                     'items' => [
40585                                                                                                                                                                                  bless( {
40586                                                                                                                                                                                           'subrule' => 'desc_option',
40587                                                                                                                                                                                           'matchrule' => 0,
40588                                                                                                                                                                                           'implicit' => undef,
40589                                                                                                                                                                                           'argcode' => undef,
40590                                                                                                                                                                                           'lookahead' => 0,
40591                                                                                                                                                                                           'line' => 627
40592                                                                                                                                                                                         }, 'Parse::RecDescent::Subrule' )
40593                                                                                                                                                                                ],
40594                                                                                                                                                                     'line' => 627
40595                                                                                                                                                                   }, 'Parse::RecDescent::Production' )
40596                                                                                                                                                          ],
40597                                                                                                                                               'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause',
40598                                                                                                                                               'vars' => '',
40599                                                                                                                                               'line' => 626
40600                                                                                                                                             }, 'Parse::RecDescent::Rule' ),
40601                               'result_expression' => bless( {
40602                                                               'impcount' => 0,
40603                                                               'calls' => [
40604                                                                            'expression'
40605                                                                          ],
40606                                                               'changed' => 0,
40607                                                               'opcount' => 0,
40608                                                               'prods' => [
40609                                                                            bless( {
40610                                                                                     'number' => '0',
40611                                                                                     'strcount' => 0,
40612                                                                                     'dircount' => 0,
40613                                                                                     'uncommit' => undef,
40614                                                                                     'error' => undef,
40615                                                                                     'patcount' => 0,
40616                                                                                     'actcount' => 0,
40617                                                                                     'items' => [
40618                                                                                                  bless( {
40619                                                                                                           'subrule' => 'expression',
40620                                                                                                           'matchrule' => 0,
40621                                                                                                           'implicit' => undef,
40622                                                                                                           'argcode' => undef,
40623                                                                                                           'lookahead' => 0,
40624                                                                                                           'line' => 515
40625                                                                                                         }, 'Parse::RecDescent::Subrule' )
40626                                                                                                ],
40627                                                                                     'line' => undef
40628                                                                                   }, 'Parse::RecDescent::Production' )
40629                                                                          ],
40630                                                               'name' => 'result_expression',
40631                                                               'vars' => '',
40632                                                               'line' => 515
40633                                                             }, 'Parse::RecDescent::Rule' ),
40634                               'scoped_reference_expression' => bless( {
40635                                                                         'impcount' => 0,
40636                                                                         'calls' => [
40637                                                                                      'expression'
40638                                                                                    ],
40639                                                                         'changed' => 0,
40640                                                                         'opcount' => 0,
40641                                                                         'prods' => [
40642                                                                                      bless( {
40643                                                                                               'number' => '0',
40644                                                                                               'strcount' => 0,
40645                                                                                               'dircount' => 0,
40646                                                                                               'uncommit' => undef,
40647                                                                                               'error' => undef,
40648                                                                                               'patcount' => 0,
40649                                                                                               'actcount' => 1,
40650                                                                                               'items' => [
40651                                                                                                            bless( {
40652                                                                                                                     'subrule' => 'expression',
40653                                                                                                                     'matchrule' => 0,
40654                                                                                                                     'implicit' => undef,
40655                                                                                                                     'argcode' => undef,
40656                                                                                                                     'lookahead' => 0,
40657                                                                                                                     'line' => 532
40658                                                                                                                   }, 'Parse::RecDescent::Subrule' ),
40659                                                                                                            bless( {
40660                                                                                                                     'hashname' => '__ACTION1__',
40661                                                                                                                     'lookahead' => 0,
40662                                                                                                                     'line' => 533,
40663                                                                                                                     'code' => '{ # scoped, reference 
40664 }'
40665                                                                                                                   }, 'Parse::RecDescent::Action' )
40666                                                                                                          ],
40667                                                                                               'line' => undef
40668                                                                                             }, 'Parse::RecDescent::Production' )
40669                                                                                    ],
40670                                                                         'name' => 'scoped_reference_expression',
40671                                                                         'vars' => '',
40672                                                                         'line' => 528
40673                                                                       }, 'Parse::RecDescent::Rule' ),
40674                               '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification' => bless( {
40675                                                                                                                                              'impcount' => 0,
40676                                                                                                                                              'calls' => [
40677                                                                                                                                                           'typed_table_name',
40678                                                                                                                                                           'typed_view_name'
40679                                                                                                                                                         ],
40680                                                                                                                                              'changed' => 0,
40681                                                                                                                                              'opcount' => 0,
40682                                                                                                                                              'prods' => [
40683                                                                                                                                                           bless( {
40684                                                                                                                                                                    'number' => '0',
40685                                                                                                                                                                    'strcount' => 0,
40686                                                                                                                                                                    'dircount' => 0,
40687                                                                                                                                                                    'uncommit' => undef,
40688                                                                                                                                                                    'error' => undef,
40689                                                                                                                                                                    'patcount' => 0,
40690                                                                                                                                                                    'actcount' => 0,
40691                                                                                                                                                                    'items' => [
40692                                                                                                                                                                                 bless( {
40693                                                                                                                                                                                          'subrule' => 'typed_table_name',
40694                                                                                                                                                                                          'matchrule' => 0,
40695                                                                                                                                                                                          'implicit' => undef,
40696                                                                                                                                                                                          'argcode' => undef,
40697                                                                                                                                                                                          'lookahead' => 0,
40698                                                                                                                                                                                          'line' => 626
40699                                                                                                                                                                                        }, 'Parse::RecDescent::Subrule' )
40700                                                                                                                                                                               ],
40701                                                                                                                                                                    'line' => undef
40702                                                                                                                                                                  }, 'Parse::RecDescent::Production' ),
40703                                                                                                                                                           bless( {
40704                                                                                                                                                                    'number' => '1',
40705                                                                                                                                                                    'strcount' => 0,
40706                                                                                                                                                                    'dircount' => 0,
40707                                                                                                                                                                    'uncommit' => undef,
40708                                                                                                                                                                    'error' => undef,
40709                                                                                                                                                                    'patcount' => 0,
40710                                                                                                                                                                    'actcount' => 0,
40711                                                                                                                                                                    'items' => [
40712                                                                                                                                                                                 bless( {
40713                                                                                                                                                                                          'subrule' => 'typed_view_name',
40714                                                                                                                                                                                          'matchrule' => 0,
40715                                                                                                                                                                                          'implicit' => undef,
40716                                                                                                                                                                                          'argcode' => undef,
40717                                                                                                                                                                                          'lookahead' => 0,
40718                                                                                                                                                                                          'line' => 627
40719                                                                                                                                                                                        }, 'Parse::RecDescent::Subrule' )
40720                                                                                                                                                                               ],
40721                                                                                                                                                                    'line' => 627
40722                                                                                                                                                                  }, 'Parse::RecDescent::Production' )
40723                                                                                                                                                         ],
40724                                                                                                                                              'name' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification',
40725                                                                                                                                              'vars' => '',
40726                                                                                                                                              'line' => 626
40727                                                                                                                                            }, 'Parse::RecDescent::Rule' ),
40728                               'when_clause' => bless( {
40729                                                         'impcount' => 0,
40730                                                         'calls' => [
40731                                                                      'search_condition'
40732                                                                    ],
40733                                                         'changed' => 0,
40734                                                         'opcount' => 0,
40735                                                         'prods' => [
40736                                                                      bless( {
40737                                                                               'number' => '0',
40738                                                                               'strcount' => 2,
40739                                                                               'dircount' => 0,
40740                                                                               'uncommit' => undef,
40741                                                                               'error' => undef,
40742                                                                               'patcount' => 1,
40743                                                                               'actcount' => 1,
40744                                                                               'items' => [
40745                                                                                            bless( {
40746                                                                                                     'pattern' => 'WHEN',
40747                                                                                                     'hashname' => '__PATTERN1__',
40748                                                                                                     'description' => '/WHEN/i',
40749                                                                                                     'lookahead' => 0,
40750                                                                                                     'rdelim' => '/',
40751                                                                                                     'line' => 261,
40752                                                                                                     'mod' => 'i',
40753                                                                                                     'ldelim' => '/'
40754                                                                                                   }, 'Parse::RecDescent::Token' ),
40755                                                                                            bless( {
40756                                                                                                     'pattern' => '(',
40757                                                                                                     'hashname' => '__STRING1__',
40758                                                                                                     'description' => '\'(\'',
40759                                                                                                     'lookahead' => 0,
40760                                                                                                     'line' => 261
40761                                                                                                   }, 'Parse::RecDescent::Literal' ),
40762                                                                                            bless( {
40763                                                                                                     'subrule' => 'search_condition',
40764                                                                                                     'matchrule' => 0,
40765                                                                                                     'implicit' => undef,
40766                                                                                                     'argcode' => undef,
40767                                                                                                     'lookahead' => 0,
40768                                                                                                     'line' => 261
40769                                                                                                   }, 'Parse::RecDescent::Subrule' ),
40770                                                                                            bless( {
40771                                                                                                     'pattern' => ')',
40772                                                                                                     'hashname' => '__STRING2__',
40773                                                                                                     'description' => '\')\'',
40774                                                                                                     'lookahead' => 0,
40775                                                                                                     'line' => 261
40776                                                                                                   }, 'Parse::RecDescent::Literal' ),
40777                                                                                            bless( {
40778                                                                                                     'hashname' => '__ACTION1__',
40779                                                                                                     'lookahead' => 0,
40780                                                                                                     'line' => 261,
40781                                                                                                     'code' => '{$return = $item[3]}'
40782                                                                                                   }, 'Parse::RecDescent::Action' )
40783                                                                                          ],
40784                                                                               'line' => undef
40785                                                                             }, 'Parse::RecDescent::Production' )
40786                                                                    ],
40787                                                         'name' => 'when_clause',
40788                                                         'vars' => '',
40789                                                         'line' => 259
40790                                                       }, 'Parse::RecDescent::Rule' ),
40791                               '_alternation_1_of_production_1_of_rule_asc_option' => bless( {
40792                                                                                               'impcount' => 0,
40793                                                                                               'calls' => [],
40794                                                                                               'changed' => 0,
40795                                                                                               'opcount' => 0,
40796                                                                                               'prods' => [
40797                                                                                                            bless( {
40798                                                                                                                     'number' => '0',
40799                                                                                                                     'strcount' => 0,
40800                                                                                                                     'dircount' => 0,
40801                                                                                                                     'uncommit' => undef,
40802                                                                                                                     'error' => undef,
40803                                                                                                                     'patcount' => 1,
40804                                                                                                                     'actcount' => 0,
40805                                                                                                                     'items' => [
40806                                                                                                                                  bless( {
40807                                                                                                                                           'pattern' => 'NULLS\\s+FIRST',
40808                                                                                                                                           'hashname' => '__PATTERN1__',
40809                                                                                                                                           'description' => '/NULLS\\\\s+FIRST/i',
40810                                                                                                                                           'lookahead' => 0,
40811                                                                                                                                           'rdelim' => '/',
40812                                                                                                                                           'line' => 628,
40813                                                                                                                                           'mod' => 'i',
40814                                                                                                                                           'ldelim' => '/'
40815                                                                                                                                         }, 'Parse::RecDescent::Token' )
40816                                                                                                                                ],
40817                                                                                                                     'line' => undef
40818                                                                                                                   }, 'Parse::RecDescent::Production' ),
40819                                                                                                            bless( {
40820                                                                                                                     'number' => '1',
40821                                                                                                                     'strcount' => 0,
40822                                                                                                                     'dircount' => 0,
40823                                                                                                                     'uncommit' => undef,
40824                                                                                                                     'error' => undef,
40825                                                                                                                     'patcount' => 1,
40826                                                                                                                     'actcount' => 0,
40827                                                                                                                     'items' => [
40828                                                                                                                                  bless( {
40829                                                                                                                                           'pattern' => 'NULLS\\s+LAST',
40830                                                                                                                                           'hashname' => '__PATTERN1__',
40831                                                                                                                                           'description' => '/NULLS\\\\s+LAST/i',
40832                                                                                                                                           'lookahead' => 0,
40833                                                                                                                                           'rdelim' => '/',
40834                                                                                                                                           'line' => 628,
40835                                                                                                                                           'mod' => 'i',
40836                                                                                                                                           'ldelim' => '/'
40837                                                                                                                                         }, 'Parse::RecDescent::Token' )
40838                                                                                                                                ],
40839                                                                                                                     'line' => 628
40840                                                                                                                   }, 'Parse::RecDescent::Production' )
40841                                                                                                          ],
40842                                                                                               'name' => '_alternation_1_of_production_1_of_rule_asc_option',
40843                                                                                               'vars' => '',
40844                                                                                               'line' => 628
40845                                                                                             }, 'Parse::RecDescent::Rule' ),
40846                               'sequence_name' => bless( {
40847                                                           'impcount' => 0,
40848                                                           'calls' => [
40849                                                                        'NAME'
40850                                                                      ],
40851                                                           'changed' => 0,
40852                                                           'opcount' => 0,
40853                                                           'prods' => [
40854                                                                        bless( {
40855                                                                                 'number' => '0',
40856                                                                                 'strcount' => 0,
40857                                                                                 'dircount' => 0,
40858                                                                                 'uncommit' => undef,
40859                                                                                 'error' => undef,
40860                                                                                 'patcount' => 0,
40861                                                                                 'actcount' => 0,
40862                                                                                 'items' => [
40863                                                                                              bless( {
40864                                                                                                       'subrule' => 'NAME',
40865                                                                                                       'matchrule' => 0,
40866                                                                                                       'implicit' => undef,
40867                                                                                                       'argcode' => undef,
40868                                                                                                       'lookahead' => 0,
40869                                                                                                       'line' => 615
40870                                                                                                     }, 'Parse::RecDescent::Subrule' )
40871                                                                                            ],
40872                                                                                 'line' => undef
40873                                                                               }, 'Parse::RecDescent::Production' )
40874                                                                      ],
40875                                                           'name' => 'sequence_name',
40876                                                           'vars' => '',
40877                                                           'line' => 615
40878                                                         }, 'Parse::RecDescent::Rule' ),
40879                               'ld_duration' => bless( {
40880                                                         'impcount' => 0,
40881                                                         'calls' => [],
40882                                                         'changed' => 0,
40883                                                         'opcount' => 0,
40884                                                         'prods' => [
40885                                                                      bless( {
40886                                                                               'number' => '0',
40887                                                                               'strcount' => 0,
40888                                                                               'dircount' => 0,
40889                                                                               'uncommit' => undef,
40890                                                                               'error' => undef,
40891                                                                               'patcount' => 1,
40892                                                                               'actcount' => 0,
40893                                                                               'items' => [
40894                                                                                            bless( {
40895                                                                                                     'pattern' => 'YEARS?',
40896                                                                                                     'hashname' => '__PATTERN1__',
40897                                                                                                     'description' => '/YEARS?/i',
40898                                                                                                     'lookahead' => 0,
40899                                                                                                     'rdelim' => '/',
40900                                                                                                     'line' => 488,
40901                                                                                                     'mod' => 'i',
40902                                                                                                     'ldelim' => '/'
40903                                                                                                   }, 'Parse::RecDescent::Token' )
40904                                                                                          ],
40905                                                                               'line' => undef
40906                                                                             }, 'Parse::RecDescent::Production' ),
40907                                                                      bless( {
40908                                                                               'number' => '1',
40909                                                                               'strcount' => 0,
40910                                                                               'dircount' => 0,
40911                                                                               'uncommit' => undef,
40912                                                                               'error' => undef,
40913                                                                               'patcount' => 1,
40914                                                                               'actcount' => 0,
40915                                                                               'items' => [
40916                                                                                            bless( {
40917                                                                                                     'pattern' => 'MONTHS?',
40918                                                                                                     'hashname' => '__PATTERN1__',
40919                                                                                                     'description' => '/MONTHS?/i',
40920                                                                                                     'lookahead' => 0,
40921                                                                                                     'rdelim' => '/',
40922                                                                                                     'line' => 489,
40923                                                                                                     'mod' => 'i',
40924                                                                                                     'ldelim' => '/'
40925                                                                                                   }, 'Parse::RecDescent::Token' )
40926                                                                                          ],
40927                                                                               'line' => 489
40928                                                                             }, 'Parse::RecDescent::Production' ),
40929                                                                      bless( {
40930                                                                               'number' => '2',
40931                                                                               'strcount' => 0,
40932                                                                               'dircount' => 0,
40933                                                                               'uncommit' => undef,
40934                                                                               'error' => undef,
40935                                                                               'patcount' => 1,
40936                                                                               'actcount' => 0,
40937                                                                               'items' => [
40938                                                                                            bless( {
40939                                                                                                     'pattern' => 'DAYS?',
40940                                                                                                     'hashname' => '__PATTERN1__',
40941                                                                                                     'description' => '/DAYS?/i',
40942                                                                                                     'lookahead' => 0,
40943                                                                                                     'rdelim' => '/',
40944                                                                                                     'line' => 490,
40945                                                                                                     'mod' => 'i',
40946                                                                                                     'ldelim' => '/'
40947                                                                                                   }, 'Parse::RecDescent::Token' )
40948                                                                                          ],
40949                                                                               'line' => 490
40950                                                                             }, 'Parse::RecDescent::Production' ),
40951                                                                      bless( {
40952                                                                               'number' => '3',
40953                                                                               'strcount' => 0,
40954                                                                               'dircount' => 0,
40955                                                                               'uncommit' => undef,
40956                                                                               'error' => undef,
40957                                                                               'patcount' => 1,
40958                                                                               'actcount' => 0,
40959                                                                               'items' => [
40960                                                                                            bless( {
40961                                                                                                     'pattern' => 'HOURS?',
40962                                                                                                     'hashname' => '__PATTERN1__',
40963                                                                                                     'description' => '/HOURS?/i',
40964                                                                                                     'lookahead' => 0,
40965                                                                                                     'rdelim' => '/',
40966                                                                                                     'line' => 491,
40967                                                                                                     'mod' => 'i',
40968                                                                                                     'ldelim' => '/'
40969                                                                                                   }, 'Parse::RecDescent::Token' )
40970                                                                                          ],
40971                                                                               'line' => 491
40972                                                                             }, 'Parse::RecDescent::Production' ),
40973                                                                      bless( {
40974                                                                               'number' => '4',
40975                                                                               'strcount' => 0,
40976                                                                               'dircount' => 0,
40977                                                                               'uncommit' => undef,
40978                                                                               'error' => undef,
40979                                                                               'patcount' => 1,
40980                                                                               'actcount' => 0,
40981                                                                               'items' => [
40982                                                                                            bless( {
40983                                                                                                     'pattern' => 'MINUTES?',
40984                                                                                                     'hashname' => '__PATTERN1__',
40985                                                                                                     'description' => '/MINUTES?/i',
40986                                                                                                     'lookahead' => 0,
40987                                                                                                     'rdelim' => '/',
40988                                                                                                     'line' => 492,
40989                                                                                                     'mod' => 'i',
40990                                                                                                     'ldelim' => '/'
40991                                                                                                   }, 'Parse::RecDescent::Token' )
40992                                                                                          ],
40993                                                                               'line' => 492
40994                                                                             }, 'Parse::RecDescent::Production' ),
40995                                                                      bless( {
40996                                                                               'number' => '5',
40997                                                                               'strcount' => 0,
40998                                                                               'dircount' => 0,
40999                                                                               'uncommit' => undef,
41000                                                                               'error' => undef,
41001                                                                               'patcount' => 1,
41002                                                                               'actcount' => 0,
41003                                                                               'items' => [
41004                                                                                            bless( {
41005                                                                                                     'pattern' => 'SECONDS?',
41006                                                                                                     'hashname' => '__PATTERN1__',
41007                                                                                                     'description' => '/SECONDS?/i',
41008                                                                                                     'lookahead' => 0,
41009                                                                                                     'rdelim' => '/',
41010                                                                                                     'line' => 493,
41011                                                                                                     'mod' => 'i',
41012                                                                                                     'ldelim' => '/'
41013                                                                                                   }, 'Parse::RecDescent::Token' )
41014                                                                                          ],
41015                                                                               'line' => 493
41016                                                                             }, 'Parse::RecDescent::Production' ),
41017                                                                      bless( {
41018                                                                               'number' => '6',
41019                                                                               'strcount' => 0,
41020                                                                               'dircount' => 0,
41021                                                                               'uncommit' => undef,
41022                                                                               'error' => undef,
41023                                                                               'patcount' => 1,
41024                                                                               'actcount' => 0,
41025                                                                               'items' => [
41026                                                                                            bless( {
41027                                                                                                     'pattern' => 'MICROSECONDS?',
41028                                                                                                     'hashname' => '__PATTERN1__',
41029                                                                                                     'description' => '/MICROSECONDS?/i',
41030                                                                                                     'lookahead' => 0,
41031                                                                                                     'rdelim' => '/',
41032                                                                                                     'line' => 494,
41033                                                                                                     'mod' => 'i',
41034                                                                                                     'ldelim' => '/'
41035                                                                                                   }, 'Parse::RecDescent::Token' )
41036                                                                                          ],
41037                                                                               'line' => 494
41038                                                                             }, 'Parse::RecDescent::Production' )
41039                                                                    ],
41040                                                         'name' => 'ld_duration',
41041                                                         'vars' => '',
41042                                                         'line' => 488
41043                                                       }, 'Parse::RecDescent::Rule' ),
41044                               'reference_a' => bless( {
41045                                                         'impcount' => 0,
41046                                                         'calls' => [
41047                                                                      'old_new_corr',
41048                                                                      'old_new_table'
41049                                                                    ],
41050                                                         'changed' => 0,
41051                                                         'opcount' => 0,
41052                                                         'prods' => [
41053                                                                      bless( {
41054                                                                               'number' => '0',
41055                                                                               'strcount' => 0,
41056                                                                               'dircount' => 0,
41057                                                                               'uncommit' => undef,
41058                                                                               'error' => undef,
41059                                                                               'patcount' => 1,
41060                                                                               'actcount' => 1,
41061                                                                               'items' => [
41062                                                                                            bless( {
41063                                                                                                     'pattern' => 'REFERENCING',
41064                                                                                                     'hashname' => '__PATTERN1__',
41065                                                                                                     'description' => '/REFERENCING/i',
41066                                                                                                     'lookahead' => 0,
41067                                                                                                     'rdelim' => '/',
41068                                                                                                     'line' => 283,
41069                                                                                                     'mod' => 'i',
41070                                                                                                     'ldelim' => '/'
41071                                                                                                   }, 'Parse::RecDescent::Token' ),
41072                                                                                            bless( {
41073                                                                                                     'subrule' => 'old_new_corr',
41074                                                                                                     'expected' => undef,
41075                                                                                                     'min' => 0,
41076                                                                                                     'argcode' => undef,
41077                                                                                                     'max' => 2,
41078                                                                                                     'matchrule' => 0,
41079                                                                                                     'repspec' => '0..2',
41080                                                                                                     'lookahead' => 0,
41081                                                                                                     'line' => 283
41082                                                                                                   }, 'Parse::RecDescent::Repetition' ),
41083                                                                                            bless( {
41084                                                                                                     'subrule' => 'old_new_table',
41085                                                                                                     'expected' => undef,
41086                                                                                                     'min' => 0,
41087                                                                                                     'argcode' => undef,
41088                                                                                                     'max' => 2,
41089                                                                                                     'matchrule' => 0,
41090                                                                                                     'repspec' => '0..2',
41091                                                                                                     'lookahead' => 0,
41092                                                                                                     'line' => 283
41093                                                                                                   }, 'Parse::RecDescent::Repetition' ),
41094                                                                                            bless( {
41095                                                                                                     'hashname' => '__ACTION1__',
41096                                                                                                     'lookahead' => 0,
41097                                                                                                     'line' => 284,
41098                                                                                                     'code' => '{ $return = join(\' \', $item[1], join(\' \', @{$item[2]}), join(\' \', @{$item[3]})  ) }'
41099                                                                                                   }, 'Parse::RecDescent::Action' )
41100                                                                                          ],
41101                                                                               'line' => undef
41102                                                                             }, 'Parse::RecDescent::Production' )
41103                                                                    ],
41104                                                         'name' => 'reference_a',
41105                                                         'vars' => '',
41106                                                         'line' => 283
41107                                                       }, 'Parse::RecDescent::Rule' ),
41108                               'cast_specification' => bless( {
41109                                                                'impcount' => 2,
41110                                                                'calls' => [
41111                                                                             '_alternation_1_of_production_1_of_rule_cast_specification',
41112                                                                             'data_type',
41113                                                                             '_alternation_2_of_production_1_of_rule_cast_specification'
41114                                                                           ],
41115                                                                'changed' => 0,
41116                                                                'opcount' => 0,
41117                                                                'prods' => [
41118                                                                             bless( {
41119                                                                                      'number' => '0',
41120                                                                                      'strcount' => 2,
41121                                                                                      'dircount' => 0,
41122                                                                                      'uncommit' => undef,
41123                                                                                      'error' => undef,
41124                                                                                      'patcount' => 2,
41125                                                                                      'actcount' => 0,
41126                                                                                      'items' => [
41127                                                                                                   bless( {
41128                                                                                                            'pattern' => 'CAST',
41129                                                                                                            'hashname' => '__PATTERN1__',
41130                                                                                                            'description' => '/CAST/i',
41131                                                                                                            'lookahead' => 0,
41132                                                                                                            'rdelim' => '/',
41133                                                                                                            'line' => 517,
41134                                                                                                            'mod' => 'i',
41135                                                                                                            'ldelim' => '/'
41136                                                                                                          }, 'Parse::RecDescent::Token' ),
41137                                                                                                   bless( {
41138                                                                                                            'pattern' => '(',
41139                                                                                                            'hashname' => '__STRING1__',
41140                                                                                                            'description' => '\'(\'',
41141                                                                                                            'lookahead' => 0,
41142                                                                                                            'line' => 517
41143                                                                                                          }, 'Parse::RecDescent::Literal' ),
41144                                                                                                   bless( {
41145                                                                                                            'subrule' => '_alternation_1_of_production_1_of_rule_cast_specification',
41146                                                                                                            'matchrule' => 0,
41147                                                                                                            'implicit' => 'expression, or /NULL/i, or parameter_marker',
41148                                                                                                            'argcode' => undef,
41149                                                                                                            'lookahead' => 0,
41150                                                                                                            'line' => 520
41151                                                                                                          }, 'Parse::RecDescent::Subrule' ),
41152                                                                                                   bless( {
41153                                                                                                            'pattern' => 'AS',
41154                                                                                                            'hashname' => '__PATTERN2__',
41155                                                                                                            'description' => '/AS/i',
41156                                                                                                            'lookahead' => 0,
41157                                                                                                            'rdelim' => '/',
41158                                                                                                            'line' => 520,
41159                                                                                                            'mod' => 'i',
41160                                                                                                            'ldelim' => '/'
41161                                                                                                          }, 'Parse::RecDescent::Token' ),
41162                                                                                                   bless( {
41163                                                                                                            'subrule' => 'data_type',
41164                                                                                                            'matchrule' => 0,
41165                                                                                                            'implicit' => undef,
41166                                                                                                            'argcode' => undef,
41167                                                                                                            'lookahead' => 0,
41168                                                                                                            'line' => 520
41169                                                                                                          }, 'Parse::RecDescent::Subrule' ),
41170                                                                                                   bless( {
41171                                                                                                            'subrule' => '_alternation_2_of_production_1_of_rule_cast_specification',
41172                                                                                                            'expected' => '/SCOPE/',
41173                                                                                                            'min' => 0,
41174                                                                                                            'argcode' => undef,
41175                                                                                                            'max' => 1,
41176                                                                                                            'matchrule' => 0,
41177                                                                                                            'repspec' => '?',
41178                                                                                                            'lookahead' => 0,
41179                                                                                                            'line' => 524
41180                                                                                                          }, 'Parse::RecDescent::Repetition' ),
41181                                                                                                   bless( {
41182                                                                                                            'pattern' => ')',
41183                                                                                                            'hashname' => '__STRING2__',
41184                                                                                                            'description' => '\')\'',
41185                                                                                                            'lookahead' => 0,
41186                                                                                                            'line' => 524
41187                                                                                                          }, 'Parse::RecDescent::Literal' )
41188                                                                                                 ],
41189                                                                                      'line' => undef
41190                                                                                    }, 'Parse::RecDescent::Production' )
41191                                                                           ],
41192                                                                'name' => 'cast_specification',
41193                                                                'vars' => '',
41194                                                                'line' => 517
41195                                                              }, 'Parse::RecDescent::Rule' ),
41196                               'type' => bless( {
41197                                                  'impcount' => 1,
41198                                                  'calls' => [
41199                                                               'column_name',
41200                                                               '_alternation_1_of_production_2_of_rule_type'
41201                                                             ],
41202                                                  'changed' => 0,
41203                                                  'opcount' => 0,
41204                                                  'prods' => [
41205                                                               bless( {
41206                                                                        'number' => '0',
41207                                                                        'strcount' => 0,
41208                                                                        'dircount' => 1,
41209                                                                        'uncommit' => undef,
41210                                                                        'error' => undef,
41211                                                                        'patcount' => 3,
41212                                                                        'actcount' => 1,
41213                                                                        'op' => [],
41214                                                                        'items' => [
41215                                                                                     bless( {
41216                                                                                              'pattern' => 'UPDATE',
41217                                                                                              'hashname' => '__PATTERN1__',
41218                                                                                              'description' => '/UPDATE/i',
41219                                                                                              'lookahead' => 0,
41220                                                                                              'rdelim' => '/',
41221                                                                                              'line' => 272,
41222                                                                                              'mod' => 'i',
41223                                                                                              'ldelim' => '/'
41224                                                                                            }, 'Parse::RecDescent::Token' ),
41225                                                                                     bless( {
41226                                                                                              'pattern' => 'OF',
41227                                                                                              'hashname' => '__PATTERN2__',
41228                                                                                              'description' => '/OF/i',
41229                                                                                              'lookahead' => 0,
41230                                                                                              'rdelim' => '/',
41231                                                                                              'line' => 272,
41232                                                                                              'mod' => 'i',
41233                                                                                              'ldelim' => '/'
41234                                                                                            }, 'Parse::RecDescent::Token' ),
41235                                                                                     bless( {
41236                                                                                              'expected' => '<leftop: column_name /,/ column_name>',
41237                                                                                              'min' => 1,
41238                                                                                              'name' => '\'column_name(s)\'',
41239                                                                                              'max' => 100000000,
41240                                                                                              'leftarg' => bless( {
41241                                                                                                                    'subrule' => 'column_name',
41242                                                                                                                    'matchrule' => 0,
41243                                                                                                                    'implicit' => undef,
41244                                                                                                                    'argcode' => undef,
41245                                                                                                                    'lookahead' => 0,
41246                                                                                                                    'line' => 272
41247                                                                                                                  }, 'Parse::RecDescent::Subrule' ),
41248                                                                                              'rightarg' => bless( {
41249                                                                                                                     'subrule' => 'column_name',
41250                                                                                                                     'matchrule' => 0,
41251                                                                                                                     'implicit' => undef,
41252                                                                                                                     'argcode' => undef,
41253                                                                                                                     'lookahead' => 0,
41254                                                                                                                     'line' => 272
41255                                                                                                                   }, 'Parse::RecDescent::Subrule' ),
41256                                                                                              'hashname' => '__DIRECTIVE1__',
41257                                                                                              'type' => 'leftop',
41258                                                                                              'op' => bless( {
41259                                                                                                               'pattern' => ',',
41260                                                                                                               'hashname' => '__PATTERN3__',
41261                                                                                                               'description' => '/,/',
41262                                                                                                               'lookahead' => 0,
41263                                                                                                               'rdelim' => '/',
41264                                                                                                               'line' => 272,
41265                                                                                                               'mod' => '',
41266                                                                                                               'ldelim' => '/'
41267                                                                                                             }, 'Parse::RecDescent::Token' )
41268                                                                                            }, 'Parse::RecDescent::Operator' ),
41269                                                                                     bless( {
41270                                                                                              'hashname' => '__ACTION1__',
41271                                                                                              'lookahead' => 0,
41272                                                                                              'line' => 273,
41273                                                                                              'code' => '{ $return = { event  => \'update_on\',
41274               fields => $item[3] }
41275 }'
41276                                                                                            }, 'Parse::RecDescent::Action' )
41277                                                                                   ],
41278                                                                        'line' => undef
41279                                                                      }, 'Parse::RecDescent::Production' ),
41280                                                               bless( {
41281                                                                        'number' => '1',
41282                                                                        'strcount' => 0,
41283                                                                        'dircount' => 0,
41284                                                                        'uncommit' => undef,
41285                                                                        'error' => undef,
41286                                                                        'patcount' => 0,
41287                                                                        'actcount' => 1,
41288                                                                        'items' => [
41289                                                                                     bless( {
41290                                                                                              'subrule' => '_alternation_1_of_production_2_of_rule_type',
41291                                                                                              'matchrule' => 0,
41292                                                                                              'implicit' => '/INSERT/i, or /DELETE/i, or /UPDATE/i',
41293                                                                                              'argcode' => undef,
41294                                                                                              'lookahead' => 0,
41295                                                                                              'line' => 277
41296                                                                                            }, 'Parse::RecDescent::Subrule' ),
41297                                                                                     bless( {
41298                                                                                              'hashname' => '__ACTION1__',
41299                                                                                              'lookahead' => 0,
41300                                                                                              'line' => 278,
41301                                                                                              'code' => '{ $return = { event => $item[1] } }'
41302                                                                                            }, 'Parse::RecDescent::Action' )
41303                                                                                   ],
41304                                                                        'line' => undef
41305                                                                      }, 'Parse::RecDescent::Production' )
41306                                                             ],
41307                                                  'name' => 'type',
41308                                                  'vars' => '',
41309                                                  'line' => 272
41310                                                }, 'Parse::RecDescent::Rule' ),
41311                               '_alternation_1_of_production_12_of_rule_sysibm_function' => bless( {
41312                                                                                                     'impcount' => 0,
41313                                                                                                     'calls' => [],
41314                                                                                                     'changed' => 0,
41315                                                                                                     'opcount' => 0,
41316                                                                                                     'prods' => [
41317                                                                                                                  bless( {
41318                                                                                                                           'number' => '0',
41319                                                                                                                           'strcount' => 0,
41320                                                                                                                           'dircount' => 0,
41321                                                                                                                           'uncommit' => undef,
41322                                                                                                                           'error' => undef,
41323                                                                                                                           'patcount' => 1,
41324                                                                                                                           'actcount' => 0,
41325                                                                                                                           'items' => [
41326                                                                                                                                        bless( {
41327                                                                                                                                                 'pattern' => 'COVARIANCE',
41328                                                                                                                                                 'hashname' => '__PATTERN1__',
41329                                                                                                                                                 'description' => '/COVARIANCE/i',
41330                                                                                                                                                 'lookahead' => 0,
41331                                                                                                                                                 'rdelim' => '/',
41332                                                                                                                                                 'line' => 628,
41333                                                                                                                                                 'mod' => 'i',
41334                                                                                                                                                 'ldelim' => '/'
41335                                                                                                                                               }, 'Parse::RecDescent::Token' )
41336                                                                                                                                      ],
41337                                                                                                                           'line' => undef
41338                                                                                                                         }, 'Parse::RecDescent::Production' ),
41339                                                                                                                  bless( {
41340                                                                                                                           'number' => '1',
41341                                                                                                                           'strcount' => 0,
41342                                                                                                                           'dircount' => 0,
41343                                                                                                                           'uncommit' => undef,
41344                                                                                                                           'error' => undef,
41345                                                                                                                           'patcount' => 1,
41346                                                                                                                           'actcount' => 0,
41347                                                                                                                           'items' => [
41348                                                                                                                                        bless( {
41349                                                                                                                                                 'pattern' => 'COVAR',
41350                                                                                                                                                 'hashname' => '__PATTERN1__',
41351                                                                                                                                                 'description' => '/COVAR/i',
41352                                                                                                                                                 'lookahead' => 0,
41353                                                                                                                                                 'rdelim' => '/',
41354                                                                                                                                                 'line' => 628,
41355                                                                                                                                                 'mod' => 'i',
41356                                                                                                                                                 'ldelim' => '/'
41357                                                                                                                                               }, 'Parse::RecDescent::Token' )
41358                                                                                                                                      ],
41359                                                                                                                           'line' => 628
41360                                                                                                                         }, 'Parse::RecDescent::Production' )
41361                                                                                                                ],
41362                                                                                                     'name' => '_alternation_1_of_production_12_of_rule_sysibm_function',
41363                                                                                                     'vars' => '',
41364                                                                                                     'line' => 628
41365                                                                                                   }, 'Parse::RecDescent::Rule' ),
41366                               'scalar_fullselect' => bless( {
41367                                                               'impcount' => 0,
41368                                                               'calls' => [
41369                                                                            'fullselect'
41370                                                                          ],
41371                                                               'changed' => 0,
41372                                                               'opcount' => 0,
41373                                                               'prods' => [
41374                                                                            bless( {
41375                                                                                     'number' => '0',
41376                                                                                     'strcount' => 2,
41377                                                                                     'dircount' => 0,
41378                                                                                     'uncommit' => undef,
41379                                                                                     'error' => undef,
41380                                                                                     'patcount' => 0,
41381                                                                                     'actcount' => 0,
41382                                                                                     'items' => [
41383                                                                                                  bless( {
41384                                                                                                           'pattern' => '(',
41385                                                                                                           'hashname' => '__STRING1__',
41386                                                                                                           'description' => '\'(\'',
41387                                                                                                           'lookahead' => 0,
41388                                                                                                           'line' => 478
41389                                                                                                         }, 'Parse::RecDescent::Literal' ),
41390                                                                                                  bless( {
41391                                                                                                           'subrule' => 'fullselect',
41392                                                                                                           'matchrule' => 0,
41393                                                                                                           'implicit' => undef,
41394                                                                                                           'argcode' => undef,
41395                                                                                                           'lookahead' => 0,
41396                                                                                                           'line' => 478
41397                                                                                                         }, 'Parse::RecDescent::Subrule' ),
41398                                                                                                  bless( {
41399                                                                                                           'pattern' => ')',
41400                                                                                                           'hashname' => '__STRING2__',
41401                                                                                                           'description' => '\')\'',
41402                                                                                                           'lookahead' => 0,
41403                                                                                                           'line' => 478
41404                                                                                                         }, 'Parse::RecDescent::Literal' )
41405                                                                                                ],
41406                                                                                     'line' => undef
41407                                                                                   }, 'Parse::RecDescent::Production' )
41408                                                                          ],
41409                                                               'name' => 'scalar_fullselect',
41410                                                               'vars' => '',
41411                                                               'line' => 478
41412                                                             }, 'Parse::RecDescent::Rule' ),
41413                               '_alternation_1_of_production_1_of_rule_options' => bless( {
41414                                                                                            'impcount' => 0,
41415                                                                                            'calls' => [],
41416                                                                                            'changed' => 0,
41417                                                                                            'opcount' => 0,
41418                                                                                            'prods' => [
41419                                                                                                         bless( {
41420                                                                                                                  'number' => '0',
41421                                                                                                                  'strcount' => 0,
41422                                                                                                                  'dircount' => 0,
41423                                                                                                                  'uncommit' => undef,
41424                                                                                                                  'error' => undef,
41425                                                                                                                  'patcount' => 1,
41426                                                                                                                  'actcount' => 0,
41427                                                                                                                  'items' => [
41428                                                                                                                               bless( {
41429                                                                                                                                        'pattern' => 'CASCADED',
41430                                                                                                                                        'hashname' => '__PATTERN1__',
41431                                                                                                                                        'description' => '/CASCADED/i',
41432                                                                                                                                        'lookahead' => 0,
41433                                                                                                                                        'rdelim' => '/',
41434                                                                                                                                        'line' => 628,
41435                                                                                                                                        'mod' => 'i',
41436                                                                                                                                        'ldelim' => '/'
41437                                                                                                                                      }, 'Parse::RecDescent::Token' )
41438                                                                                                                             ],
41439                                                                                                                  'line' => undef
41440                                                                                                                }, 'Parse::RecDescent::Production' ),
41441                                                                                                         bless( {
41442                                                                                                                  'number' => '1',
41443                                                                                                                  'strcount' => 0,
41444                                                                                                                  'dircount' => 0,
41445                                                                                                                  'uncommit' => undef,
41446                                                                                                                  'error' => undef,
41447                                                                                                                  'patcount' => 1,
41448                                                                                                                  'actcount' => 0,
41449                                                                                                                  'items' => [
41450                                                                                                                               bless( {
41451                                                                                                                                        'pattern' => 'LOCAL',
41452                                                                                                                                        'hashname' => '__PATTERN1__',
41453                                                                                                                                        'description' => '/LOCAL/i',
41454                                                                                                                                        'lookahead' => 0,
41455                                                                                                                                        'rdelim' => '/',
41456                                                                                                                                        'line' => 628,
41457                                                                                                                                        'mod' => 'i',
41458                                                                                                                                        'ldelim' => '/'
41459                                                                                                                                      }, 'Parse::RecDescent::Token' )
41460                                                                                                                             ],
41461                                                                                                                  'line' => 628
41462                                                                                                                }, 'Parse::RecDescent::Production' )
41463                                                                                                       ],
41464                                                                                            'name' => '_alternation_1_of_production_1_of_rule_options',
41465                                                                                            'vars' => '',
41466                                                                                            'line' => 628
41467                                                                                          }, 'Parse::RecDescent::Rule' ),
41468                               'func_args' => bless( {
41469                                                       'impcount' => 0,
41470                                                       'calls' => [
41471                                                                    'expression'
41472                                                                  ],
41473                                                       'changed' => 0,
41474                                                       'opcount' => 0,
41475                                                       'prods' => [
41476                                                                    bless( {
41477                                                                             'number' => '0',
41478                                                                             'strcount' => 0,
41479                                                                             'dircount' => 0,
41480                                                                             'uncommit' => undef,
41481                                                                             'error' => undef,
41482                                                                             'patcount' => 0,
41483                                                                             'actcount' => 0,
41484                                                                             'items' => [
41485                                                                                          bless( {
41486                                                                                                   'subrule' => 'expression',
41487                                                                                                   'matchrule' => 0,
41488                                                                                                   'implicit' => undef,
41489                                                                                                   'argcode' => undef,
41490                                                                                                   'lookahead' => 0,
41491                                                                                                   'line' => 330
41492                                                                                                 }, 'Parse::RecDescent::Subrule' )
41493                                                                                        ],
41494                                                                             'line' => undef
41495                                                                           }, 'Parse::RecDescent::Production' )
41496                                                                  ],
41497                                                       'name' => 'func_args',
41498                                                       'vars' => '',
41499                                                       'line' => 330
41500                                                     }, 'Parse::RecDescent::Rule' ),
41501                               'trigger_name' => bless( {
41502                                                          'impcount' => 0,
41503                                                          'calls' => [
41504                                                                       'SCHEMA',
41505                                                                       'NAME'
41506                                                                     ],
41507                                                          'changed' => 0,
41508                                                          'opcount' => 0,
41509                                                          'prods' => [
41510                                                                       bless( {
41511                                                                                'number' => '0',
41512                                                                                'strcount' => 1,
41513                                                                                'dircount' => 0,
41514                                                                                'uncommit' => undef,
41515                                                                                'error' => undef,
41516                                                                                'patcount' => 0,
41517                                                                                'actcount' => 1,
41518                                                                                'items' => [
41519                                                                                             bless( {
41520                                                                                                      'subrule' => 'SCHEMA',
41521                                                                                                      'matchrule' => 0,
41522                                                                                                      'implicit' => undef,
41523                                                                                                      'argcode' => undef,
41524                                                                                                      'lookahead' => 0,
41525                                                                                                      'line' => 119
41526                                                                                                    }, 'Parse::RecDescent::Subrule' ),
41527                                                                                             bless( {
41528                                                                                                      'pattern' => '.',
41529                                                                                                      'hashname' => '__STRING1__',
41530                                                                                                      'description' => '\'.\'',
41531                                                                                                      'lookahead' => 0,
41532                                                                                                      'line' => 119
41533                                                                                                    }, 'Parse::RecDescent::Literal' ),
41534                                                                                             bless( {
41535                                                                                                      'subrule' => 'NAME',
41536                                                                                                      'matchrule' => 0,
41537                                                                                                      'implicit' => undef,
41538                                                                                                      'argcode' => undef,
41539                                                                                                      'lookahead' => 0,
41540                                                                                                      'line' => 119
41541                                                                                                    }, 'Parse::RecDescent::Subrule' ),
41542                                                                                             bless( {
41543                                                                                                      'hashname' => '__ACTION1__',
41544                                                                                                      'lookahead' => 0,
41545                                                                                                      'line' => 120,
41546                                                                                                      'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
41547                                                                                                    }, 'Parse::RecDescent::Action' )
41548                                                                                           ],
41549                                                                                'line' => undef
41550                                                                              }, 'Parse::RecDescent::Production' ),
41551                                                                       bless( {
41552                                                                                'number' => '1',
41553                                                                                'strcount' => 0,
41554                                                                                'dircount' => 0,
41555                                                                                'uncommit' => undef,
41556                                                                                'error' => undef,
41557                                                                                'patcount' => 0,
41558                                                                                'actcount' => 1,
41559                                                                                'items' => [
41560                                                                                             bless( {
41561                                                                                                      'subrule' => 'NAME',
41562                                                                                                      'matchrule' => 0,
41563                                                                                                      'implicit' => undef,
41564                                                                                                      'argcode' => undef,
41565                                                                                                      'lookahead' => 0,
41566                                                                                                      'line' => 121
41567                                                                                                    }, 'Parse::RecDescent::Subrule' ),
41568                                                                                             bless( {
41569                                                                                                      'hashname' => '__ACTION1__',
41570                                                                                                      'lookahead' => 0,
41571                                                                                                      'line' => 122,
41572                                                                                                      'code' => '{ $return = { name => $item[1] } }'
41573                                                                                                    }, 'Parse::RecDescent::Action' )
41574                                                                                           ],
41575                                                                                'line' => 121
41576                                                                              }, 'Parse::RecDescent::Production' )
41577                                                                     ],
41578                                                          'name' => 'trigger_name',
41579                                                          'vars' => '',
41580                                                          'line' => 119
41581                                                        }, 'Parse::RecDescent::Rule' ),
41582                               '_alternation_2_of_production_1_of_rule_numbering_function' => bless( {
41583                                                                                                       'impcount' => 0,
41584                                                                                                       'calls' => [
41585                                                                                                                    'window_aggregation_group_clause'
41586                                                                                                                  ],
41587                                                                                                       'changed' => 0,
41588                                                                                                       'opcount' => 0,
41589                                                                                                       'prods' => [
41590                                                                                                                    bless( {
41591                                                                                                                             'number' => '0',
41592                                                                                                                             'strcount' => 0,
41593                                                                                                                             'dircount' => 0,
41594                                                                                                                             'uncommit' => undef,
41595                                                                                                                             'error' => undef,
41596                                                                                                                             'patcount' => 1,
41597                                                                                                                             'actcount' => 0,
41598                                                                                                                             'items' => [
41599                                                                                                                                          bless( {
41600                                                                                                                                                   'pattern' => 'RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING',
41601                                                                                                                                                   'hashname' => '__PATTERN1__',
41602                                                                                                                                                   'description' => '/RANGE\\\\s+BETWEEN\\\\s+UNBOUNDED\\\\s+PRECEDING\\\\s+AND\\\\s+UNBBOUNDED\\\\s+FOLLOWING/i',
41603                                                                                                                                                   'lookahead' => 0,
41604                                                                                                                                                   'rdelim' => '/',
41605                                                                                                                                                   'line' => 626,
41606                                                                                                                                                   'mod' => 'i',
41607                                                                                                                                                   'ldelim' => '/'
41608                                                                                                                                                 }, 'Parse::RecDescent::Token' )
41609                                                                                                                                        ],
41610                                                                                                                             'line' => undef
41611                                                                                                                           }, 'Parse::RecDescent::Production' ),
41612                                                                                                                    bless( {
41613                                                                                                                             'number' => '1',
41614                                                                                                                             'strcount' => 0,
41615                                                                                                                             'dircount' => 0,
41616                                                                                                                             'uncommit' => undef,
41617                                                                                                                             'error' => undef,
41618                                                                                                                             'patcount' => 0,
41619                                                                                                                             'actcount' => 0,
41620                                                                                                                             'items' => [
41621                                                                                                                                          bless( {
41622                                                                                                                                                   'subrule' => 'window_aggregation_group_clause',
41623                                                                                                                                                   'matchrule' => 0,
41624                                                                                                                                                   'implicit' => undef,
41625                                                                                                                                                   'argcode' => undef,
41626                                                                                                                                                   'lookahead' => 0,
41627                                                                                                                                                   'line' => 627
41628                                                                                                                                                 }, 'Parse::RecDescent::Subrule' )
41629                                                                                                                                        ],
41630                                                                                                                             'line' => 627
41631                                                                                                                           }, 'Parse::RecDescent::Production' )
41632                                                                                                                  ],
41633                                                                                                       'name' => '_alternation_2_of_production_1_of_rule_numbering_function',
41634                                                                                                       'vars' => '',
41635                                                                                                       'line' => 626
41636                                                                                                     }, 'Parse::RecDescent::Rule' ),
41637                               'method_name' => bless( {
41638                                                         'impcount' => 0,
41639                                                         'calls' => [
41640                                                                      'NAME'
41641                                                                    ],
41642                                                         'changed' => 0,
41643                                                         'opcount' => 0,
41644                                                         'prods' => [
41645                                                                      bless( {
41646                                                                               'number' => '0',
41647                                                                               'strcount' => 0,
41648                                                                               'dircount' => 0,
41649                                                                               'uncommit' => undef,
41650                                                                               'error' => undef,
41651                                                                               'patcount' => 0,
41652                                                                               'actcount' => 1,
41653                                                                               'items' => [
41654                                                                                            bless( {
41655                                                                                                     'subrule' => 'NAME',
41656                                                                                                     'matchrule' => 0,
41657                                                                                                     'implicit' => undef,
41658                                                                                                     'argcode' => undef,
41659                                                                                                     'lookahead' => 0,
41660                                                                                                     'line' => 602
41661                                                                                                   }, 'Parse::RecDescent::Subrule' ),
41662                                                                                            bless( {
41663                                                                                                     'hashname' => '__ACTION1__',
41664                                                                                                     'lookahead' => 0,
41665                                                                                                     'line' => 603,
41666                                                                                                     'code' => '{ # must be a method of subject_expression 
41667 }'
41668                                                                                                   }, 'Parse::RecDescent::Action' )
41669                                                                                          ],
41670                                                                               'line' => undef
41671                                                                             }, 'Parse::RecDescent::Production' )
41672                                                                    ],
41673                                                         'name' => 'method_name',
41674                                                         'vars' => '',
41675                                                         'line' => 602
41676                                                       }, 'Parse::RecDescent::Rule' ),
41677                               'quantified_p' => bless( {
41678                                                          'impcount' => 0,
41679                                                          'calls' => [
41680                                                                       'expression1',
41681                                                                       'fullselect'
41682                                                                     ],
41683                                                          'changed' => 0,
41684                                                          'opcount' => 0,
41685                                                          'prods' => [
41686                                                                       bless( {
41687                                                                                'number' => '0',
41688                                                                                'strcount' => 2,
41689                                                                                'dircount' => 0,
41690                                                                                'uncommit' => undef,
41691                                                                                'error' => undef,
41692                                                                                'patcount' => 2,
41693                                                                                'actcount' => 0,
41694                                                                                'items' => [
41695                                                                                             bless( {
41696                                                                                                      'subrule' => 'expression1',
41697                                                                                                      'matchrule' => 0,
41698                                                                                                      'implicit' => undef,
41699                                                                                                      'argcode' => undef,
41700                                                                                                      'lookahead' => 0,
41701                                                                                                      'line' => 626
41702                                                                                                    }, 'Parse::RecDescent::Subrule' ),
41703                                                                                             bless( {
41704                                                                                                      'pattern' => '(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)',
41705                                                                                                      'hashname' => '__PATTERN1__',
41706                                                                                                      'description' => '/(=|<>|<|>|<=|=>|\\\\^=|\\\\^<|\\\\^>|\\\\!=)/',
41707                                                                                                      'lookahead' => 0,
41708                                                                                                      'rdelim' => '/',
41709                                                                                                      'line' => 626,
41710                                                                                                      'mod' => '',
41711                                                                                                      'ldelim' => '/'
41712                                                                                                    }, 'Parse::RecDescent::Token' ),
41713                                                                                             bless( {
41714                                                                                                      'pattern' => 'SOME|ANY|ALL',
41715                                                                                                      'hashname' => '__PATTERN2__',
41716                                                                                                      'description' => '/SOME|ANY|ALL/i',
41717                                                                                                      'lookahead' => 0,
41718                                                                                                      'rdelim' => '/',
41719                                                                                                      'line' => 626,
41720                                                                                                      'mod' => 'i',
41721                                                                                                      'ldelim' => '/'
41722                                                                                                    }, 'Parse::RecDescent::Token' ),
41723                                                                                             bless( {
41724                                                                                                      'pattern' => '(',
41725                                                                                                      'hashname' => '__STRING1__',
41726                                                                                                      'description' => '\'(\'',
41727                                                                                                      'lookahead' => 0,
41728                                                                                                      'line' => 626
41729                                                                                                    }, 'Parse::RecDescent::Literal' ),
41730                                                                                             bless( {
41731                                                                                                      'subrule' => 'fullselect',
41732                                                                                                      'matchrule' => 0,
41733                                                                                                      'implicit' => undef,
41734                                                                                                      'argcode' => undef,
41735                                                                                                      'lookahead' => 0,
41736                                                                                                      'line' => 626
41737                                                                                                    }, 'Parse::RecDescent::Subrule' ),
41738                                                                                             bless( {
41739                                                                                                      'pattern' => ')',
41740                                                                                                      'hashname' => '__STRING2__',
41741                                                                                                      'description' => '\')\'',
41742                                                                                                      'lookahead' => 0,
41743                                                                                                      'line' => 626
41744                                                                                                    }, 'Parse::RecDescent::Literal' )
41745                                                                                           ],
41746                                                                                'line' => undef
41747                                                                              }, 'Parse::RecDescent::Production' )
41748                                                                     ],
41749                                                          'name' => 'quantified_p',
41750                                                          'vars' => '',
41751                                                          'line' => 626
41752                                                        }, 'Parse::RecDescent::Rule' ),
41753                               'common_table_expression' => bless( {
41754                                                                     'impcount' => 0,
41755                                                                     'calls' => [
41756                                                                                  'table_name',
41757                                                                                  'column_list',
41758                                                                                  'get_bracketed',
41759                                                                                  'fullselect'
41760                                                                                ],
41761                                                                     'changed' => 0,
41762                                                                     'opcount' => 0,
41763                                                                     'prods' => [
41764                                                                                  bless( {
41765                                                                                           'number' => '0',
41766                                                                                           'strcount' => 0,
41767                                                                                           'dircount' => 0,
41768                                                                                           'uncommit' => undef,
41769                                                                                           'error' => undef,
41770                                                                                           'patcount' => 1,
41771                                                                                           'actcount' => 1,
41772                                                                                           'items' => [
41773                                                                                                        bless( {
41774                                                                                                                 'subrule' => 'table_name',
41775                                                                                                                 'matchrule' => 0,
41776                                                                                                                 'implicit' => undef,
41777                                                                                                                 'argcode' => undef,
41778                                                                                                                 'lookahead' => 0,
41779                                                                                                                 'line' => 162
41780                                                                                                               }, 'Parse::RecDescent::Subrule' ),
41781                                                                                                        bless( {
41782                                                                                                                 'subrule' => 'column_list',
41783                                                                                                                 'matchrule' => 0,
41784                                                                                                                 'implicit' => undef,
41785                                                                                                                 'argcode' => undef,
41786                                                                                                                 'lookahead' => 0,
41787                                                                                                                 'line' => 162
41788                                                                                                               }, 'Parse::RecDescent::Subrule' ),
41789                                                                                                        bless( {
41790                                                                                                                 'pattern' => 'AS',
41791                                                                                                                 'hashname' => '__PATTERN1__',
41792                                                                                                                 'description' => '/AS/i',
41793                                                                                                                 'lookahead' => 0,
41794                                                                                                                 'rdelim' => '/',
41795                                                                                                                 'line' => 162,
41796                                                                                                                 'mod' => 'i',
41797                                                                                                                 'ldelim' => '/'
41798                                                                                                               }, 'Parse::RecDescent::Token' ),
41799                                                                                                        bless( {
41800                                                                                                                 'subrule' => 'get_bracketed',
41801                                                                                                                 'matchrule' => 0,
41802                                                                                                                 'implicit' => undef,
41803                                                                                                                 'argcode' => undef,
41804                                                                                                                 'lookahead' => 0,
41805                                                                                                                 'line' => 162
41806                                                                                                               }, 'Parse::RecDescent::Subrule' ),
41807                                                                                                        bless( {
41808                                                                                                                 'hashname' => '__ACTION1__',
41809                                                                                                                 'lookahead' => 0,
41810                                                                                                                 'line' => 163,
41811                                                                                                                 'code' => '{
41812     $return = { name  => $item{table_name}{name}, 
41813                 query => $item[4]
41814                 };
41815 }'
41816                                                                                                               }, 'Parse::RecDescent::Action' )
41817                                                                                                      ],
41818                                                                                           'line' => undef
41819                                                                                         }, 'Parse::RecDescent::Production' ),
41820                                                                                  bless( {
41821                                                                                           'number' => '1',
41822                                                                                           'strcount' => 2,
41823                                                                                           'dircount' => 0,
41824                                                                                           'uncommit' => undef,
41825                                                                                           'error' => undef,
41826                                                                                           'patcount' => 1,
41827                                                                                           'actcount' => 0,
41828                                                                                           'items' => [
41829                                                                                                        bless( {
41830                                                                                                                 'subrule' => 'table_name',
41831                                                                                                                 'matchrule' => 0,
41832                                                                                                                 'implicit' => undef,
41833                                                                                                                 'argcode' => undef,
41834                                                                                                                 'lookahead' => 0,
41835                                                                                                                 'line' => 174
41836                                                                                                               }, 'Parse::RecDescent::Subrule' ),
41837                                                                                                        bless( {
41838                                                                                                                 'subrule' => 'column_list',
41839                                                                                                                 'matchrule' => 0,
41840                                                                                                                 'implicit' => undef,
41841                                                                                                                 'argcode' => undef,
41842                                                                                                                 'lookahead' => 0,
41843                                                                                                                 'line' => 174
41844                                                                                                               }, 'Parse::RecDescent::Subrule' ),
41845                                                                                                        bless( {
41846                                                                                                                 'pattern' => 'AS',
41847                                                                                                                 'hashname' => '__PATTERN1__',
41848                                                                                                                 'description' => '/AS/i',
41849                                                                                                                 'lookahead' => 0,
41850                                                                                                                 'rdelim' => '/',
41851                                                                                                                 'line' => 174,
41852                                                                                                                 'mod' => 'i',
41853                                                                                                                 'ldelim' => '/'
41854                                                                                                               }, 'Parse::RecDescent::Token' ),
41855                                                                                                        bless( {
41856                                                                                                                 'pattern' => '(',
41857                                                                                                                 'hashname' => '__STRING1__',
41858                                                                                                                 'description' => '\'(\'',
41859                                                                                                                 'lookahead' => 0,
41860                                                                                                                 'line' => 174
41861                                                                                                               }, 'Parse::RecDescent::Literal' ),
41862                                                                                                        bless( {
41863                                                                                                                 'subrule' => 'fullselect',
41864                                                                                                                 'matchrule' => 0,
41865                                                                                                                 'implicit' => undef,
41866                                                                                                                 'argcode' => undef,
41867                                                                                                                 'lookahead' => 0,
41868                                                                                                                 'line' => 174
41869                                                                                                               }, 'Parse::RecDescent::Subrule' ),
41870                                                                                                        bless( {
41871                                                                                                                 'pattern' => ')',
41872                                                                                                                 'hashname' => '__STRING2__',
41873                                                                                                                 'description' => '\')\'',
41874                                                                                                                 'lookahead' => 0,
41875                                                                                                                 'line' => 174
41876                                                                                                               }, 'Parse::RecDescent::Literal' )
41877                                                                                                      ],
41878                                                                                           'line' => undef
41879                                                                                         }, 'Parse::RecDescent::Production' )
41880                                                                                ],
41881                                                                     'name' => 'common_table_expression',
41882                                                                     'vars' => '',
41883                                                                     'line' => 160
41884                                                                   }, 'Parse::RecDescent::Rule' ),
41885                               'after' => bless( {
41886                                                   'impcount' => 0,
41887                                                   'calls' => [],
41888                                                   'changed' => 0,
41889                                                   'opcount' => 0,
41890                                                   'prods' => [
41891                                                                bless( {
41892                                                                         'number' => '0',
41893                                                                         'strcount' => 0,
41894                                                                         'dircount' => 0,
41895                                                                         'uncommit' => undef,
41896                                                                         'error' => undef,
41897                                                                         'patcount' => 1,
41898                                                                         'actcount' => 0,
41899                                                                         'items' => [
41900                                                                                      bless( {
41901                                                                                               'pattern' => 'AFTER',
41902                                                                                               'hashname' => '__PATTERN1__',
41903                                                                                               'description' => '/AFTER/i',
41904                                                                                               'lookahead' => 0,
41905                                                                                               'rdelim' => '/',
41906                                                                                               'line' => 270,
41907                                                                                               'mod' => 'i',
41908                                                                                               'ldelim' => '/'
41909                                                                                             }, 'Parse::RecDescent::Token' )
41910                                                                                    ],
41911                                                                         'line' => undef
41912                                                                       }, 'Parse::RecDescent::Production' )
41913                                                              ],
41914                                                   'name' => 'after',
41915                                                   'vars' => '',
41916                                                   'line' => 270
41917                                                 }, 'Parse::RecDescent::Rule' ),
41918                               'predicate' => bless( {
41919                                                       'impcount' => 0,
41920                                                       'calls' => [
41921                                                                    'basic_p',
41922                                                                    'quantified_p',
41923                                                                    'between_p',
41924                                                                    'exists_p',
41925                                                                    'in_p',
41926                                                                    'like_p',
41927                                                                    'null_p',
41928                                                                    'type_p'
41929                                                                  ],
41930                                                       'changed' => 0,
41931                                                       'opcount' => 0,
41932                                                       'prods' => [
41933                                                                    bless( {
41934                                                                             'number' => '0',
41935                                                                             'strcount' => 0,
41936                                                                             'dircount' => 0,
41937                                                                             'uncommit' => undef,
41938                                                                             'error' => undef,
41939                                                                             'patcount' => 0,
41940                                                                             'actcount' => 0,
41941                                                                             'items' => [
41942                                                                                          bless( {
41943                                                                                                   'subrule' => 'basic_p',
41944                                                                                                   'matchrule' => 0,
41945                                                                                                   'implicit' => undef,
41946                                                                                                   'argcode' => undef,
41947                                                                                                   'lookahead' => 0,
41948                                                                                                   'line' => 622
41949                                                                                                 }, 'Parse::RecDescent::Subrule' )
41950                                                                                        ],
41951                                                                             'line' => undef
41952                                                                           }, 'Parse::RecDescent::Production' ),
41953                                                                    bless( {
41954                                                                             'number' => '1',
41955                                                                             'strcount' => 0,
41956                                                                             'dircount' => 0,
41957                                                                             'uncommit' => undef,
41958                                                                             'error' => undef,
41959                                                                             'patcount' => 0,
41960                                                                             'actcount' => 0,
41961                                                                             'items' => [
41962                                                                                          bless( {
41963                                                                                                   'subrule' => 'quantified_p',
41964                                                                                                   'matchrule' => 0,
41965                                                                                                   'implicit' => undef,
41966                                                                                                   'argcode' => undef,
41967                                                                                                   'lookahead' => 0,
41968                                                                                                   'line' => 622
41969                                                                                                 }, 'Parse::RecDescent::Subrule' )
41970                                                                                        ],
41971                                                                             'line' => 622
41972                                                                           }, 'Parse::RecDescent::Production' ),
41973                                                                    bless( {
41974                                                                             'number' => '2',
41975                                                                             'strcount' => 0,
41976                                                                             'dircount' => 0,
41977                                                                             'uncommit' => undef,
41978                                                                             'error' => undef,
41979                                                                             'patcount' => 0,
41980                                                                             'actcount' => 0,
41981                                                                             'items' => [
41982                                                                                          bless( {
41983                                                                                                   'subrule' => 'between_p',
41984                                                                                                   'matchrule' => 0,
41985                                                                                                   'implicit' => undef,
41986                                                                                                   'argcode' => undef,
41987                                                                                                   'lookahead' => 0,
41988                                                                                                   'line' => 622
41989                                                                                                 }, 'Parse::RecDescent::Subrule' )
41990                                                                                        ],
41991                                                                             'line' => 622
41992                                                                           }, 'Parse::RecDescent::Production' ),
41993                                                                    bless( {
41994                                                                             'number' => '3',
41995                                                                             'strcount' => 0,
41996                                                                             'dircount' => 0,
41997                                                                             'uncommit' => undef,
41998                                                                             'error' => undef,
41999                                                                             'patcount' => 0,
42000                                                                             'actcount' => 0,
42001                                                                             'items' => [
42002                                                                                          bless( {
42003                                                                                                   'subrule' => 'exists_p',
42004                                                                                                   'matchrule' => 0,
42005                                                                                                   'implicit' => undef,
42006                                                                                                   'argcode' => undef,
42007                                                                                                   'lookahead' => 0,
42008                                                                                                   'line' => 622
42009                                                                                                 }, 'Parse::RecDescent::Subrule' )
42010                                                                                        ],
42011                                                                             'line' => 622
42012                                                                           }, 'Parse::RecDescent::Production' ),
42013                                                                    bless( {
42014                                                                             'number' => '4',
42015                                                                             'strcount' => 0,
42016                                                                             'dircount' => 0,
42017                                                                             'uncommit' => undef,
42018                                                                             'error' => undef,
42019                                                                             'patcount' => 0,
42020                                                                             'actcount' => 0,
42021                                                                             'items' => [
42022                                                                                          bless( {
42023                                                                                                   'subrule' => 'in_p',
42024                                                                                                   'matchrule' => 0,
42025                                                                                                   'implicit' => undef,
42026                                                                                                   'argcode' => undef,
42027                                                                                                   'lookahead' => 0,
42028                                                                                                   'line' => 622
42029                                                                                                 }, 'Parse::RecDescent::Subrule' )
42030                                                                                        ],
42031                                                                             'line' => 622
42032                                                                           }, 'Parse::RecDescent::Production' ),
42033                                                                    bless( {
42034                                                                             'number' => '5',
42035                                                                             'strcount' => 0,
42036                                                                             'dircount' => 0,
42037                                                                             'uncommit' => undef,
42038                                                                             'error' => undef,
42039                                                                             'patcount' => 0,
42040                                                                             'actcount' => 0,
42041                                                                             'items' => [
42042                                                                                          bless( {
42043                                                                                                   'subrule' => 'like_p',
42044                                                                                                   'matchrule' => 0,
42045                                                                                                   'implicit' => undef,
42046                                                                                                   'argcode' => undef,
42047                                                                                                   'lookahead' => 0,
42048                                                                                                   'line' => 622
42049                                                                                                 }, 'Parse::RecDescent::Subrule' )
42050                                                                                        ],
42051                                                                             'line' => 622
42052                                                                           }, 'Parse::RecDescent::Production' ),
42053                                                                    bless( {
42054                                                                             'number' => '6',
42055                                                                             'strcount' => 0,
42056                                                                             'dircount' => 0,
42057                                                                             'uncommit' => undef,
42058                                                                             'error' => undef,
42059                                                                             'patcount' => 0,
42060                                                                             'actcount' => 0,
42061                                                                             'items' => [
42062                                                                                          bless( {
42063                                                                                                   'subrule' => 'null_p',
42064                                                                                                   'matchrule' => 0,
42065                                                                                                   'implicit' => undef,
42066                                                                                                   'argcode' => undef,
42067                                                                                                   'lookahead' => 0,
42068                                                                                                   'line' => 622
42069                                                                                                 }, 'Parse::RecDescent::Subrule' )
42070                                                                                        ],
42071                                                                             'line' => 622
42072                                                                           }, 'Parse::RecDescent::Production' ),
42073                                                                    bless( {
42074                                                                             'number' => '7',
42075                                                                             'strcount' => 0,
42076                                                                             'dircount' => 0,
42077                                                                             'uncommit' => undef,
42078                                                                             'error' => undef,
42079                                                                             'patcount' => 0,
42080                                                                             'actcount' => 0,
42081                                                                             'items' => [
42082                                                                                          bless( {
42083                                                                                                   'subrule' => 'type_p',
42084                                                                                                   'matchrule' => 0,
42085                                                                                                   'implicit' => undef,
42086                                                                                                   'argcode' => undef,
42087                                                                                                   'lookahead' => 0,
42088                                                                                                   'line' => 622
42089                                                                                                 }, 'Parse::RecDescent::Subrule' )
42090                                                                                        ],
42091                                                                             'line' => 622
42092                                                                           }, 'Parse::RecDescent::Production' )
42093                                                                  ],
42094                                                       'name' => 'predicate',
42095                                                       'vars' => '',
42096                                                       'line' => 622
42097                                                     }, 'Parse::RecDescent::Rule' ),
42098                               'column_name' => bless( {
42099                                                         'impcount' => 0,
42100                                                         'calls' => [
42101                                                                      'NAME'
42102                                                                    ],
42103                                                         'changed' => 0,
42104                                                         'opcount' => 0,
42105                                                         'prods' => [
42106                                                                      bless( {
42107                                                                               'number' => '0',
42108                                                                               'strcount' => 0,
42109                                                                               'dircount' => 0,
42110                                                                               'uncommit' => undef,
42111                                                                               'error' => undef,
42112                                                                               'patcount' => 0,
42113                                                                               'actcount' => 0,
42114                                                                               'items' => [
42115                                                                                            bless( {
42116                                                                                                     'subrule' => 'NAME',
42117                                                                                                     'matchrule' => 0,
42118                                                                                                     'implicit' => undef,
42119                                                                                                     'argcode' => undef,
42120                                                                                                     'lookahead' => 0,
42121                                                                                                     'line' => 134
42122                                                                                                   }, 'Parse::RecDescent::Subrule' )
42123                                                                                          ],
42124                                                                               'line' => undef
42125                                                                             }, 'Parse::RecDescent::Production' )
42126                                                                    ],
42127                                                         'name' => 'column_name',
42128                                                         'vars' => '',
42129                                                         'line' => 134
42130                                                       }, 'Parse::RecDescent::Rule' ),
42131                               'method_invocation' => bless( {
42132                                                               'impcount' => 1,
42133                                                               'calls' => [
42134                                                                            'subject_expression',
42135                                                                            'method_name',
42136                                                                            '_alternation_1_of_production_1_of_rule_method_invocation'
42137                                                                          ],
42138                                                               'changed' => 0,
42139                                                               'opcount' => 0,
42140                                                               'prods' => [
42141                                                                            bless( {
42142                                                                                     'number' => '0',
42143                                                                                     'strcount' => 1,
42144                                                                                     'dircount' => 0,
42145                                                                                     'uncommit' => undef,
42146                                                                                     'error' => undef,
42147                                                                                     'patcount' => 0,
42148                                                                                     'actcount' => 0,
42149                                                                                     'items' => [
42150                                                                                                  bless( {
42151                                                                                                           'subrule' => 'subject_expression',
42152                                                                                                           'matchrule' => 0,
42153                                                                                                           'implicit' => undef,
42154                                                                                                           'argcode' => undef,
42155                                                                                                           'lookahead' => 0,
42156                                                                                                           'line' => 593
42157                                                                                                         }, 'Parse::RecDescent::Subrule' ),
42158                                                                                                  bless( {
42159                                                                                                           'pattern' => '..',
42160                                                                                                           'hashname' => '__STRING1__',
42161                                                                                                           'description' => '\'..\'',
42162                                                                                                           'lookahead' => 0,
42163                                                                                                           'line' => 593
42164                                                                                                         }, 'Parse::RecDescent::Literal' ),
42165                                                                                                  bless( {
42166                                                                                                           'subrule' => 'method_name',
42167                                                                                                           'matchrule' => 0,
42168                                                                                                           'implicit' => undef,
42169                                                                                                           'argcode' => undef,
42170                                                                                                           'lookahead' => 0,
42171                                                                                                           'line' => 593
42172                                                                                                         }, 'Parse::RecDescent::Subrule' ),
42173                                                                                                  bless( {
42174                                                                                                           'subrule' => '_alternation_1_of_production_1_of_rule_method_invocation',
42175                                                                                                           'expected' => '\'(\'',
42176                                                                                                           'min' => 0,
42177                                                                                                           'argcode' => undef,
42178                                                                                                           'max' => 1,
42179                                                                                                           'matchrule' => 0,
42180                                                                                                           'repspec' => '?',
42181                                                                                                           'lookahead' => 0,
42182                                                                                                           'line' => 596
42183                                                                                                         }, 'Parse::RecDescent::Repetition' )
42184                                                                                                ],
42185                                                                                     'line' => undef
42186                                                                                   }, 'Parse::RecDescent::Production' )
42187                                                                          ],
42188                                                               'name' => 'method_invocation',
42189                                                               'vars' => '',
42190                                                               'line' => 593
42191                                                             }, 'Parse::RecDescent::Rule' ),
42192                               '_alternation_1_of_production_1_of_rule_dereference_operation' => bless( {
42193                                                                                                          'impcount' => 0,
42194                                                                                                          'calls' => [
42195                                                                                                                       'expression'
42196                                                                                                                     ],
42197                                                                                                          'changed' => 0,
42198                                                                                                          'opcount' => 0,
42199                                                                                                          'prods' => [
42200                                                                                                                       bless( {
42201                                                                                                                                'number' => '0',
42202                                                                                                                                'strcount' => 2,
42203                                                                                                                                'dircount' => 0,
42204                                                                                                                                'uncommit' => undef,
42205                                                                                                                                'error' => undef,
42206                                                                                                                                'patcount' => 0,
42207                                                                                                                                'actcount' => 0,
42208                                                                                                                                'items' => [
42209                                                                                                                                             bless( {
42210                                                                                                                                                      'pattern' => '(',
42211                                                                                                                                                      'hashname' => '__STRING1__',
42212                                                                                                                                                      'description' => '\'(\'',
42213                                                                                                                                                      'lookahead' => 0,
42214                                                                                                                                                      'line' => 628
42215                                                                                                                                                    }, 'Parse::RecDescent::Literal' ),
42216                                                                                                                                             bless( {
42217                                                                                                                                                      'subrule' => 'expression',
42218                                                                                                                                                      'expected' => undef,
42219                                                                                                                                                      'min' => 1,
42220                                                                                                                                                      'argcode' => undef,
42221                                                                                                                                                      'max' => 100000000,
42222                                                                                                                                                      'matchrule' => 0,
42223                                                                                                                                                      'repspec' => 's',
42224                                                                                                                                                      'lookahead' => 0,
42225                                                                                                                                                      'line' => 628
42226                                                                                                                                                    }, 'Parse::RecDescent::Repetition' ),
42227                                                                                                                                             bless( {
42228                                                                                                                                                      'pattern' => ')',
42229                                                                                                                                                      'hashname' => '__STRING2__',
42230                                                                                                                                                      'description' => '\')\'',
42231                                                                                                                                                      'lookahead' => 0,
42232                                                                                                                                                      'line' => 628
42233                                                                                                                                                    }, 'Parse::RecDescent::Literal' )
42234                                                                                                                                           ],
42235                                                                                                                                'line' => undef
42236                                                                                                                              }, 'Parse::RecDescent::Production' )
42237                                                                                                                     ],
42238                                                                                                          'name' => '_alternation_1_of_production_1_of_rule_dereference_operation',
42239                                                                                                          'vars' => '',
42240                                                                                                          'line' => 628
42241                                                                                                        }, 'Parse::RecDescent::Rule' ),
42242                               '_alternation_1_of_production_1_of_rule_searched_when_clause' => bless( {
42243                                                                                                         'impcount' => 1,
42244                                                                                                         'calls' => [
42245                                                                                                                      'search_condition',
42246                                                                                                                      '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause'
42247                                                                                                                    ],
42248                                                                                                         'changed' => 0,
42249                                                                                                         'opcount' => 0,
42250                                                                                                         'prods' => [
42251                                                                                                                      bless( {
42252                                                                                                                               'number' => '0',
42253                                                                                                                               'strcount' => 0,
42254                                                                                                                               'dircount' => 0,
42255                                                                                                                               'uncommit' => undef,
42256                                                                                                                               'error' => undef,
42257                                                                                                                               'patcount' => 2,
42258                                                                                                                               'actcount' => 0,
42259                                                                                                                               'items' => [
42260                                                                                                                                            bless( {
42261                                                                                                                                                     'pattern' => 'WHEN',
42262                                                                                                                                                     'hashname' => '__PATTERN1__',
42263                                                                                                                                                     'description' => '/WHEN/i',
42264                                                                                                                                                     'lookahead' => 0,
42265                                                                                                                                                     'rdelim' => '/',
42266                                                                                                                                                     'line' => 624,
42267                                                                                                                                                     'mod' => 'i',
42268                                                                                                                                                     'ldelim' => '/'
42269                                                                                                                                                   }, 'Parse::RecDescent::Token' ),
42270                                                                                                                                            bless( {
42271                                                                                                                                                     'subrule' => 'search_condition',
42272                                                                                                                                                     'matchrule' => 0,
42273                                                                                                                                                     'implicit' => undef,
42274                                                                                                                                                     'argcode' => undef,
42275                                                                                                                                                     'lookahead' => 0,
42276                                                                                                                                                     'line' => 624
42277                                                                                                                                                   }, 'Parse::RecDescent::Subrule' ),
42278                                                                                                                                            bless( {
42279                                                                                                                                                     'pattern' => 'THEN',
42280                                                                                                                                                     'hashname' => '__PATTERN2__',
42281                                                                                                                                                     'description' => '/THEN/i',
42282                                                                                                                                                     'lookahead' => 0,
42283                                                                                                                                                     'rdelim' => '/',
42284                                                                                                                                                     'line' => 624,
42285                                                                                                                                                     'mod' => 'i',
42286                                                                                                                                                     'ldelim' => '/'
42287                                                                                                                                                   }, 'Parse::RecDescent::Token' ),
42288                                                                                                                                            bless( {
42289                                                                                                                                                     'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause',
42290                                                                                                                                                     'matchrule' => 0,
42291                                                                                                                                                     'implicit' => 'result_expression, or /NULL/i',
42292                                                                                                                                                     'argcode' => undef,
42293                                                                                                                                                     'lookahead' => 0,
42294                                                                                                                                                     'line' => 627
42295                                                                                                                                                   }, 'Parse::RecDescent::Subrule' )
42296                                                                                                                                          ],
42297                                                                                                                               'line' => undef
42298                                                                                                                             }, 'Parse::RecDescent::Production' )
42299                                                                                                                    ],
42300                                                                                                         'name' => '_alternation_1_of_production_1_of_rule_searched_when_clause',
42301                                                                                                         'vars' => '',
42302                                                                                                         'line' => 624
42303                                                                                                       }, 'Parse::RecDescent::Rule' ),
42304                               'group_bound2' => bless( {
42305                                                          'impcount' => 0,
42306                                                          'calls' => [
42307                                                                       'unsigned_constant'
42308                                                                     ],
42309                                                          'changed' => 0,
42310                                                          'opcount' => 0,
42311                                                          'prods' => [
42312                                                                       bless( {
42313                                                                                'number' => '0',
42314                                                                                'strcount' => 0,
42315                                                                                'dircount' => 0,
42316                                                                                'uncommit' => undef,
42317                                                                                'error' => undef,
42318                                                                                'patcount' => 1,
42319                                                                                'actcount' => 0,
42320                                                                                'items' => [
42321                                                                                             bless( {
42322                                                                                                      'pattern' => 'UNBOUNDED\\s+PRECEDING',
42323                                                                                                      'hashname' => '__PATTERN1__',
42324                                                                                                      'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
42325                                                                                                      'lookahead' => 0,
42326                                                                                                      'rdelim' => '/',
42327                                                                                                      'line' => 585,
42328                                                                                                      'mod' => 'i',
42329                                                                                                      'ldelim' => '/'
42330                                                                                                    }, 'Parse::RecDescent::Token' )
42331                                                                                           ],
42332                                                                                'line' => undef
42333                                                                              }, 'Parse::RecDescent::Production' ),
42334                                                                       bless( {
42335                                                                                'number' => '1',
42336                                                                                'strcount' => 0,
42337                                                                                'dircount' => 0,
42338                                                                                'uncommit' => undef,
42339                                                                                'error' => undef,
42340                                                                                'patcount' => 1,
42341                                                                                'actcount' => 0,
42342                                                                                'items' => [
42343                                                                                             bless( {
42344                                                                                                      'subrule' => 'unsigned_constant',
42345                                                                                                      'matchrule' => 0,
42346                                                                                                      'implicit' => undef,
42347                                                                                                      'argcode' => undef,
42348                                                                                                      'lookahead' => 0,
42349                                                                                                      'line' => 586
42350                                                                                                    }, 'Parse::RecDescent::Subrule' ),
42351                                                                                             bless( {
42352                                                                                                      'pattern' => 'PRECEDING',
42353                                                                                                      'hashname' => '__PATTERN1__',
42354                                                                                                      'description' => '/PRECEDING/i',
42355                                                                                                      'lookahead' => 0,
42356                                                                                                      'rdelim' => '/',
42357                                                                                                      'line' => 586,
42358                                                                                                      'mod' => 'i',
42359                                                                                                      'ldelim' => '/'
42360                                                                                                    }, 'Parse::RecDescent::Token' )
42361                                                                                           ],
42362                                                                                'line' => 586
42363                                                                              }, 'Parse::RecDescent::Production' ),
42364                                                                       bless( {
42365                                                                                'number' => '2',
42366                                                                                'strcount' => 0,
42367                                                                                'dircount' => 0,
42368                                                                                'uncommit' => undef,
42369                                                                                'error' => undef,
42370                                                                                'patcount' => 1,
42371                                                                                'actcount' => 0,
42372                                                                                'items' => [
42373                                                                                             bless( {
42374                                                                                                      'subrule' => 'unsigned_constant',
42375                                                                                                      'matchrule' => 0,
42376                                                                                                      'implicit' => undef,
42377                                                                                                      'argcode' => undef,
42378                                                                                                      'lookahead' => 0,
42379                                                                                                      'line' => 587
42380                                                                                                    }, 'Parse::RecDescent::Subrule' ),
42381                                                                                             bless( {
42382                                                                                                      'pattern' => 'FOLLOWING',
42383                                                                                                      'hashname' => '__PATTERN1__',
42384                                                                                                      'description' => '/FOLLOWING/i',
42385                                                                                                      'lookahead' => 0,
42386                                                                                                      'rdelim' => '/',
42387                                                                                                      'line' => 587,
42388                                                                                                      'mod' => 'i',
42389                                                                                                      'ldelim' => '/'
42390                                                                                                    }, 'Parse::RecDescent::Token' )
42391                                                                                           ],
42392                                                                                'line' => 587
42393                                                                              }, 'Parse::RecDescent::Production' ),
42394                                                                       bless( {
42395                                                                                'number' => '3',
42396                                                                                'strcount' => 0,
42397                                                                                'dircount' => 0,
42398                                                                                'uncommit' => undef,
42399                                                                                'error' => undef,
42400                                                                                'patcount' => 1,
42401                                                                                'actcount' => 0,
42402                                                                                'items' => [
42403                                                                                             bless( {
42404                                                                                                      'pattern' => 'CURRENT\\s+ROW',
42405                                                                                                      'hashname' => '__PATTERN1__',
42406                                                                                                      'description' => '/CURRENT\\\\s+ROW/i',
42407                                                                                                      'lookahead' => 0,
42408                                                                                                      'rdelim' => '/',
42409                                                                                                      'line' => 588,
42410                                                                                                      'mod' => 'i',
42411                                                                                                      'ldelim' => '/'
42412                                                                                                    }, 'Parse::RecDescent::Token' )
42413                                                                                           ],
42414                                                                                'line' => 588
42415                                                                              }, 'Parse::RecDescent::Production' )
42416                                                                     ],
42417                                                          'name' => 'group_bound2',
42418                                                          'vars' => '',
42419                                                          'line' => 585
42420                                                        }, 'Parse::RecDescent::Rule' ),
42421                               'searched_when_clause' => bless( {
42422                                                                  'impcount' => 1,
42423                                                                  'calls' => [
42424                                                                               '_alternation_1_of_production_1_of_rule_searched_when_clause'
42425                                                                             ],
42426                                                                  'changed' => 0,
42427                                                                  'opcount' => 0,
42428                                                                  'prods' => [
42429                                                                               bless( {
42430                                                                                        'number' => '0',
42431                                                                                        'strcount' => 0,
42432                                                                                        'dircount' => 0,
42433                                                                                        'uncommit' => undef,
42434                                                                                        'error' => undef,
42435                                                                                        'patcount' => 0,
42436                                                                                        'actcount' => 0,
42437                                                                                        'items' => [
42438                                                                                                     bless( {
42439                                                                                                              'subrule' => '_alternation_1_of_production_1_of_rule_searched_when_clause',
42440                                                                                                              'expected' => '/WHEN/i',
42441                                                                                                              'min' => 1,
42442                                                                                                              'argcode' => undef,
42443                                                                                                              'max' => 100000000,
42444                                                                                                              'matchrule' => 0,
42445                                                                                                              'repspec' => 's',
42446                                                                                                              'lookahead' => 0,
42447                                                                                                              'line' => 507
42448                                                                                                            }, 'Parse::RecDescent::Repetition' )
42449                                                                                                   ],
42450                                                                                        'line' => undef
42451                                                                                      }, 'Parse::RecDescent::Production' )
42452                                                                             ],
42453                                                                  'name' => 'searched_when_clause',
42454                                                                  'vars' => '',
42455                                                                  'line' => 503
42456                                                                }, 'Parse::RecDescent::Rule' ),
42457                               'basic_p' => bless( {
42458                                                     'impcount' => 0,
42459                                                     'calls' => [
42460                                                                  'expression'
42461                                                                ],
42462                                                     'changed' => 0,
42463                                                     'opcount' => 0,
42464                                                     'prods' => [
42465                                                                  bless( {
42466                                                                           'number' => '0',
42467                                                                           'strcount' => 0,
42468                                                                           'dircount' => 0,
42469                                                                           'uncommit' => undef,
42470                                                                           'error' => undef,
42471                                                                           'patcount' => 1,
42472                                                                           'actcount' => 0,
42473                                                                           'items' => [
42474                                                                                        bless( {
42475                                                                                                 'subrule' => 'expression',
42476                                                                                                 'matchrule' => 0,
42477                                                                                                 'implicit' => undef,
42478                                                                                                 'argcode' => undef,
42479                                                                                                 'lookahead' => 0,
42480                                                                                                 'line' => 624
42481                                                                                               }, 'Parse::RecDescent::Subrule' ),
42482                                                                                        bless( {
42483                                                                                                 'pattern' => '(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)',
42484                                                                                                 'hashname' => '__PATTERN1__',
42485                                                                                                 'description' => '/(=|<>|<|>|<=|=>|\\\\^=|\\\\^<|\\\\^>|\\\\!=)/',
42486                                                                                                 'lookahead' => 0,
42487                                                                                                 'rdelim' => '/',
42488                                                                                                 'line' => 624,
42489                                                                                                 'mod' => '',
42490                                                                                                 'ldelim' => '/'
42491                                                                                               }, 'Parse::RecDescent::Token' ),
42492                                                                                        bless( {
42493                                                                                                 'subrule' => 'expression',
42494                                                                                                 'matchrule' => 0,
42495                                                                                                 'implicit' => undef,
42496                                                                                                 'argcode' => undef,
42497                                                                                                 'lookahead' => 0,
42498                                                                                                 'line' => 624
42499                                                                                               }, 'Parse::RecDescent::Subrule' )
42500                                                                                      ],
42501                                                                           'line' => undef
42502                                                                         }, 'Parse::RecDescent::Production' )
42503                                                                ],
42504                                                     'name' => 'basic_p',
42505                                                     'vars' => '',
42506                                                     'line' => 624
42507                                                   }, 'Parse::RecDescent::Rule' ),
42508                               'asc_option' => bless( {
42509                                                        'impcount' => 1,
42510                                                        'calls' => [
42511                                                                     '_alternation_1_of_production_1_of_rule_asc_option'
42512                                                                   ],
42513                                                        'changed' => 0,
42514                                                        'opcount' => 0,
42515                                                        'prods' => [
42516                                                                     bless( {
42517                                                                              'number' => '0',
42518                                                                              'strcount' => 0,
42519                                                                              'dircount' => 0,
42520                                                                              'uncommit' => undef,
42521                                                                              'error' => undef,
42522                                                                              'patcount' => 1,
42523                                                                              'actcount' => 0,
42524                                                                              'items' => [
42525                                                                                           bless( {
42526                                                                                                    'pattern' => 'ASC',
42527                                                                                                    'hashname' => '__PATTERN1__',
42528                                                                                                    'description' => '/ASC/i',
42529                                                                                                    'lookahead' => 0,
42530                                                                                                    'rdelim' => '/',
42531                                                                                                    'line' => 562,
42532                                                                                                    'mod' => 'i',
42533                                                                                                    'ldelim' => '/'
42534                                                                                                  }, 'Parse::RecDescent::Token' ),
42535                                                                                           bless( {
42536                                                                                                    'subrule' => '_alternation_1_of_production_1_of_rule_asc_option',
42537                                                                                                    'expected' => '/NULLS\\\\s+FIRST/i, or /NULLS\\\\s+LAST/i',
42538                                                                                                    'min' => 0,
42539                                                                                                    'argcode' => undef,
42540                                                                                                    'max' => 1,
42541                                                                                                    'matchrule' => 0,
42542                                                                                                    'repspec' => '?',
42543                                                                                                    'lookahead' => 0,
42544                                                                                                    'line' => 562
42545                                                                                                  }, 'Parse::RecDescent::Repetition' )
42546                                                                                         ],
42547                                                                              'line' => undef
42548                                                                            }, 'Parse::RecDescent::Production' )
42549                                                                   ],
42550                                                        'name' => 'asc_option',
42551                                                        'vars' => '',
42552                                                        'line' => 562
42553                                                      }, 'Parse::RecDescent::Rule' ),
42554                               'search_condition' => bless( {
42555                                                              'impcount' => 1,
42556                                                              'calls' => [
42557                                                                           '_alternation_1_of_production_2_of_rule_search_condition',
42558                                                                           'cond'
42559                                                                         ],
42560                                                              'changed' => 0,
42561                                                              'opcount' => 0,
42562                                                              'prods' => [
42563                                                                           bless( {
42564                                                                                    'number' => '0',
42565                                                                                    'strcount' => 0,
42566                                                                                    'dircount' => 0,
42567                                                                                    'uncommit' => undef,
42568                                                                                    'error' => undef,
42569                                                                                    'patcount' => 1,
42570                                                                                    'actcount' => 0,
42571                                                                                    'items' => [
42572                                                                                                 bless( {
42573                                                                                                          'pattern' => '[^)]+',
42574                                                                                                          'hashname' => '__PATTERN1__',
42575                                                                                                          'description' => '/[^)]+/',
42576                                                                                                          'lookahead' => 0,
42577                                                                                                          'rdelim' => '/',
42578                                                                                                          'line' => 297,
42579                                                                                                          'mod' => '',
42580                                                                                                          'ldelim' => '/'
42581                                                                                                        }, 'Parse::RecDescent::Token' )
42582                                                                                               ],
42583                                                                                    'line' => undef
42584                                                                                  }, 'Parse::RecDescent::Production' ),
42585                                                                           bless( {
42586                                                                                    'number' => '1',
42587                                                                                    'strcount' => 0,
42588                                                                                    'dircount' => 0,
42589                                                                                    'uncommit' => undef,
42590                                                                                    'error' => undef,
42591                                                                                    'patcount' => 1,
42592                                                                                    'actcount' => 0,
42593                                                                                    'items' => [
42594                                                                                                 bless( {
42595                                                                                                          'pattern' => 'NOT|',
42596                                                                                                          'hashname' => '__PATTERN1__',
42597                                                                                                          'description' => '/NOT|/i',
42598                                                                                                          'lookahead' => 0,
42599                                                                                                          'rdelim' => '/',
42600                                                                                                          'line' => 618,
42601                                                                                                          'mod' => 'i',
42602                                                                                                          'ldelim' => '/'
42603                                                                                                        }, 'Parse::RecDescent::Token' ),
42604                                                                                                 bless( {
42605                                                                                                          'subrule' => '_alternation_1_of_production_2_of_rule_search_condition',
42606                                                                                                          'matchrule' => 0,
42607                                                                                                          'implicit' => 'predicate, or \'(\'',
42608                                                                                                          'argcode' => undef,
42609                                                                                                          'lookahead' => 0,
42610                                                                                                          'line' => 618
42611                                                                                                        }, 'Parse::RecDescent::Subrule' ),
42612                                                                                                 bless( {
42613                                                                                                          'subrule' => 'cond',
42614                                                                                                          'expected' => undef,
42615                                                                                                          'min' => 0,
42616                                                                                                          'argcode' => undef,
42617                                                                                                          'max' => 100000000,
42618                                                                                                          'matchrule' => 0,
42619                                                                                                          'repspec' => 's?',
42620                                                                                                          'lookahead' => 0,
42621                                                                                                          'line' => 618
42622                                                                                                        }, 'Parse::RecDescent::Repetition' )
42623                                                                                               ],
42624                                                                                    'line' => undef
42625                                                                                  }, 'Parse::RecDescent::Production' )
42626                                                                         ],
42627                                                              'name' => 'search_condition',
42628                                                              'vars' => '',
42629                                                              'line' => 296
42630                                                            }, 'Parse::RecDescent::Rule' ),
42631                               '_alternation_1_of_production_1_of_rule_operator' => bless( {
42632                                                                                             'impcount' => 0,
42633                                                                                             'calls' => [],
42634                                                                                             'changed' => 0,
42635                                                                                             'opcount' => 0,
42636                                                                                             'prods' => [
42637                                                                                                          bless( {
42638                                                                                                                   'number' => '0',
42639                                                                                                                   'strcount' => 0,
42640                                                                                                                   'dircount' => 0,
42641                                                                                                                   'uncommit' => undef,
42642                                                                                                                   'error' => undef,
42643                                                                                                                   'patcount' => 1,
42644                                                                                                                   'actcount' => 0,
42645                                                                                                                   'items' => [
42646                                                                                                                                bless( {
42647                                                                                                                                         'pattern' => 'CONCAT',
42648                                                                                                                                         'hashname' => '__PATTERN1__',
42649                                                                                                                                         'description' => '/CONCAT/i',
42650                                                                                                                                         'lookahead' => 0,
42651                                                                                                                                         'rdelim' => '/',
42652                                                                                                                                         'line' => 628,
42653                                                                                                                                         'mod' => 'i',
42654                                                                                                                                         'ldelim' => '/'
42655                                                                                                                                       }, 'Parse::RecDescent::Token' )
42656                                                                                                                              ],
42657                                                                                                                   'line' => undef
42658                                                                                                                 }, 'Parse::RecDescent::Production' ),
42659                                                                                                          bless( {
42660                                                                                                                   'number' => '1',
42661                                                                                                                   'strcount' => 1,
42662                                                                                                                   'dircount' => 0,
42663                                                                                                                   'uncommit' => undef,
42664                                                                                                                   'error' => undef,
42665                                                                                                                   'patcount' => 0,
42666                                                                                                                   'actcount' => 0,
42667                                                                                                                   'items' => [
42668                                                                                                                                bless( {
42669                                                                                                                                         'pattern' => '||',
42670                                                                                                                                         'hashname' => '__STRING1__',
42671                                                                                                                                         'description' => '\'||\'',
42672                                                                                                                                         'lookahead' => 0,
42673                                                                                                                                         'line' => 628
42674                                                                                                                                       }, 'Parse::RecDescent::Literal' )
42675                                                                                                                              ],
42676                                                                                                                   'line' => 628
42677                                                                                                                 }, 'Parse::RecDescent::Production' )
42678                                                                                                        ],
42679                                                                                             'name' => '_alternation_1_of_production_1_of_rule_operator',
42680                                                                                             'vars' => '',
42681                                                                                             'line' => 628
42682                                                                                           }, 'Parse::RecDescent::Rule' ),
42683                               'simple_when_clause' => bless( {
42684                                                                'impcount' => 1,
42685                                                                'calls' => [
42686                                                                             'expression',
42687                                                                             '_alternation_1_of_production_1_of_rule_simple_when_clause'
42688                                                                           ],
42689                                                                'changed' => 0,
42690                                                                'opcount' => 0,
42691                                                                'prods' => [
42692                                                                             bless( {
42693                                                                                      'number' => '0',
42694                                                                                      'strcount' => 0,
42695                                                                                      'dircount' => 0,
42696                                                                                      'uncommit' => undef,
42697                                                                                      'error' => undef,
42698                                                                                      'patcount' => 0,
42699                                                                                      'actcount' => 0,
42700                                                                                      'items' => [
42701                                                                                                   bless( {
42702                                                                                                            'subrule' => 'expression',
42703                                                                                                            'matchrule' => 0,
42704                                                                                                            'implicit' => undef,
42705                                                                                                            'argcode' => undef,
42706                                                                                                            'lookahead' => 0,
42707                                                                                                            'line' => 509
42708                                                                                                          }, 'Parse::RecDescent::Subrule' ),
42709                                                                                                   bless( {
42710                                                                                                            'subrule' => '_alternation_1_of_production_1_of_rule_simple_when_clause',
42711                                                                                                            'expected' => '/WHEN/i',
42712                                                                                                            'min' => 1,
42713                                                                                                            'argcode' => undef,
42714                                                                                                            'max' => 100000000,
42715                                                                                                            'matchrule' => 0,
42716                                                                                                            'repspec' => 's',
42717                                                                                                            'lookahead' => 0,
42718                                                                                                            'line' => 513
42719                                                                                                          }, 'Parse::RecDescent::Repetition' )
42720                                                                                                 ],
42721                                                                                      'line' => undef
42722                                                                                    }, 'Parse::RecDescent::Production' )
42723                                                                           ],
42724                                                                'name' => 'simple_when_clause',
42725                                                                'vars' => '',
42726                                                                'line' => 509
42727                                                              }, 'Parse::RecDescent::Rule' ),
42728                               'INNER' => bless( {
42729                                                   'impcount' => 0,
42730                                                   'calls' => [],
42731                                                   'changed' => 0,
42732                                                   'opcount' => 0,
42733                                                   'prods' => [
42734                                                                bless( {
42735                                                                         'number' => '0',
42736                                                                         'strcount' => 0,
42737                                                                         'dircount' => 0,
42738                                                                         'uncommit' => undef,
42739                                                                         'error' => undef,
42740                                                                         'patcount' => 1,
42741                                                                         'actcount' => 0,
42742                                                                         'items' => [
42743                                                                                      bless( {
42744                                                                                               'pattern' => 'inner',
42745                                                                                               'hashname' => '__PATTERN1__',
42746                                                                                               'description' => '/inner/i',
42747                                                                                               'lookahead' => 0,
42748                                                                                               'rdelim' => '/',
42749                                                                                               'line' => 107,
42750                                                                                               'mod' => 'i',
42751                                                                                               'ldelim' => '/'
42752                                                                                             }, 'Parse::RecDescent::Token' )
42753                                                                                    ],
42754                                                                         'line' => undef
42755                                                                       }, 'Parse::RecDescent::Production' )
42756                                                              ],
42757                                                   'name' => 'INNER',
42758                                                   'vars' => '',
42759                                                   'line' => 107
42760                                                 }, 'Parse::RecDescent::Rule' ),
42761                               'eofile' => bless( {
42762                                                    'impcount' => 0,
42763                                                    'calls' => [],
42764                                                    'changed' => 0,
42765                                                    'opcount' => 0,
42766                                                    'prods' => [
42767                                                                 bless( {
42768                                                                          'number' => '0',
42769                                                                          'strcount' => 0,
42770                                                                          'dircount' => 0,
42771                                                                          'uncommit' => undef,
42772                                                                          'error' => undef,
42773                                                                          'patcount' => 1,
42774                                                                          'actcount' => 0,
42775                                                                          'items' => [
42776                                                                                       bless( {
42777                                                                                                'pattern' => '^\\Z',
42778                                                                                                'hashname' => '__PATTERN1__',
42779                                                                                                'description' => '/^\\\\Z/',
42780                                                                                                'lookahead' => 0,
42781                                                                                                'rdelim' => '/',
42782                                                                                                'line' => 20,
42783                                                                                                'mod' => '',
42784                                                                                                'ldelim' => '/'
42785                                                                                              }, 'Parse::RecDescent::Token' )
42786                                                                                     ],
42787                                                                          'line' => undef
42788                                                                        }, 'Parse::RecDescent::Production' )
42789                                                               ],
42790                                                    'name' => 'eofile',
42791                                                    'vars' => '',
42792                                                    'line' => 20
42793                                                  }, 'Parse::RecDescent::Rule' ),
42794                               'cond' => bless( {
42795                                                  'impcount' => 2,
42796                                                  'calls' => [
42797                                                               '_alternation_1_of_production_1_of_rule_cond',
42798                                                               '_alternation_2_of_production_1_of_rule_cond'
42799                                                             ],
42800                                                  'changed' => 0,
42801                                                  'opcount' => 0,
42802                                                  'prods' => [
42803                                                               bless( {
42804                                                                        'number' => '0',
42805                                                                        'strcount' => 0,
42806                                                                        'dircount' => 0,
42807                                                                        'uncommit' => undef,
42808                                                                        'error' => undef,
42809                                                                        'patcount' => 1,
42810                                                                        'actcount' => 0,
42811                                                                        'items' => [
42812                                                                                     bless( {
42813                                                                                              'subrule' => '_alternation_1_of_production_1_of_rule_cond',
42814                                                                                              'matchrule' => 0,
42815                                                                                              'implicit' => '/AND/i, or /OR/i',
42816                                                                                              'argcode' => undef,
42817                                                                                              'lookahead' => 0,
42818                                                                                              'line' => 620
42819                                                                                            }, 'Parse::RecDescent::Subrule' ),
42820                                                                                     bless( {
42821                                                                                              'pattern' => 'NOT|',
42822                                                                                              'hashname' => '__PATTERN1__',
42823                                                                                              'description' => '/NOT|/i',
42824                                                                                              'lookahead' => 0,
42825                                                                                              'rdelim' => '/',
42826                                                                                              'line' => 620,
42827                                                                                              'mod' => 'i',
42828                                                                                              'ldelim' => '/'
42829                                                                                            }, 'Parse::RecDescent::Token' ),
42830                                                                                     bless( {
42831                                                                                              'subrule' => '_alternation_2_of_production_1_of_rule_cond',
42832                                                                                              'matchrule' => 0,
42833                                                                                              'implicit' => 'predicate, or \'(\'',
42834                                                                                              'argcode' => undef,
42835                                                                                              'lookahead' => 0,
42836                                                                                              'line' => 620
42837                                                                                            }, 'Parse::RecDescent::Subrule' )
42838                                                                                   ],
42839                                                                        'line' => undef
42840                                                                      }, 'Parse::RecDescent::Production' )
42841                                                             ],
42842                                                  'name' => 'cond',
42843                                                  'vars' => '',
42844                                                  'line' => 620
42845                                                }, 'Parse::RecDescent::Rule' ),
42846                               'ld_type' => bless( {
42847                                                     'impcount' => 0,
42848                                                     'calls' => [
42849                                                                  'function',
42850                                                                  'expression',
42851                                                                  'constant',
42852                                                                  'column_name',
42853                                                                  'host_variable'
42854                                                                ],
42855                                                     'changed' => 0,
42856                                                     'opcount' => 0,
42857                                                     'prods' => [
42858                                                                  bless( {
42859                                                                           'number' => '0',
42860                                                                           'strcount' => 0,
42861                                                                           'dircount' => 0,
42862                                                                           'uncommit' => undef,
42863                                                                           'error' => undef,
42864                                                                           'patcount' => 0,
42865                                                                           'actcount' => 0,
42866                                                                           'items' => [
42867                                                                                        bless( {
42868                                                                                                 'subrule' => 'function',
42869                                                                                                 'matchrule' => 0,
42870                                                                                                 'implicit' => undef,
42871                                                                                                 'argcode' => undef,
42872                                                                                                 'lookahead' => 0,
42873                                                                                                 'line' => 482
42874                                                                                               }, 'Parse::RecDescent::Subrule' )
42875                                                                                      ],
42876                                                                           'line' => undef
42877                                                                         }, 'Parse::RecDescent::Production' ),
42878                                                                  bless( {
42879                                                                           'number' => '1',
42880                                                                           'strcount' => 2,
42881                                                                           'dircount' => 0,
42882                                                                           'uncommit' => undef,
42883                                                                           'error' => undef,
42884                                                                           'patcount' => 0,
42885                                                                           'actcount' => 0,
42886                                                                           'items' => [
42887                                                                                        bless( {
42888                                                                                                 'pattern' => '(',
42889                                                                                                 'hashname' => '__STRING1__',
42890                                                                                                 'description' => '\'(\'',
42891                                                                                                 'lookahead' => 0,
42892                                                                                                 'line' => 483
42893                                                                                               }, 'Parse::RecDescent::Literal' ),
42894                                                                                        bless( {
42895                                                                                                 'subrule' => 'expression',
42896                                                                                                 'matchrule' => 0,
42897                                                                                                 'implicit' => undef,
42898                                                                                                 'argcode' => undef,
42899                                                                                                 'lookahead' => 0,
42900                                                                                                 'line' => 483
42901                                                                                               }, 'Parse::RecDescent::Subrule' ),
42902                                                                                        bless( {
42903                                                                                                 'pattern' => ')',
42904                                                                                                 'hashname' => '__STRING2__',
42905                                                                                                 'description' => '\')\'',
42906                                                                                                 'lookahead' => 0,
42907                                                                                                 'line' => 483
42908                                                                                               }, 'Parse::RecDescent::Literal' )
42909                                                                                      ],
42910                                                                           'line' => 483
42911                                                                         }, 'Parse::RecDescent::Production' ),
42912                                                                  bless( {
42913                                                                           'number' => '2',
42914                                                                           'strcount' => 0,
42915                                                                           'dircount' => 0,
42916                                                                           'uncommit' => undef,
42917                                                                           'error' => undef,
42918                                                                           'patcount' => 0,
42919                                                                           'actcount' => 0,
42920                                                                           'items' => [
42921                                                                                        bless( {
42922                                                                                                 'subrule' => 'constant',
42923                                                                                                 'matchrule' => 0,
42924                                                                                                 'implicit' => undef,
42925                                                                                                 'argcode' => undef,
42926                                                                                                 'lookahead' => 0,
42927                                                                                                 'line' => 484
42928                                                                                               }, 'Parse::RecDescent::Subrule' )
42929                                                                                      ],
42930                                                                           'line' => 484
42931                                                                         }, 'Parse::RecDescent::Production' ),
42932                                                                  bless( {
42933                                                                           'number' => '3',
42934                                                                           'strcount' => 0,
42935                                                                           'dircount' => 0,
42936                                                                           'uncommit' => undef,
42937                                                                           'error' => undef,
42938                                                                           'patcount' => 0,
42939                                                                           'actcount' => 0,
42940                                                                           'items' => [
42941                                                                                        bless( {
42942                                                                                                 'subrule' => 'column_name',
42943                                                                                                 'matchrule' => 0,
42944                                                                                                 'implicit' => undef,
42945                                                                                                 'argcode' => undef,
42946                                                                                                 'lookahead' => 0,
42947                                                                                                 'line' => 485
42948                                                                                               }, 'Parse::RecDescent::Subrule' )
42949                                                                                      ],
42950                                                                           'line' => 485
42951                                                                         }, 'Parse::RecDescent::Production' ),
42952                                                                  bless( {
42953                                                                           'number' => '4',
42954                                                                           'strcount' => 0,
42955                                                                           'dircount' => 0,
42956                                                                           'uncommit' => undef,
42957                                                                           'error' => undef,
42958                                                                           'patcount' => 0,
42959                                                                           'actcount' => 0,
42960                                                                           'items' => [
42961                                                                                        bless( {
42962                                                                                                 'subrule' => 'host_variable',
42963                                                                                                 'matchrule' => 0,
42964                                                                                                 'implicit' => undef,
42965                                                                                                 'argcode' => undef,
42966                                                                                                 'lookahead' => 0,
42967                                                                                                 'line' => 486
42968                                                                                               }, 'Parse::RecDescent::Subrule' )
42969                                                                                      ],
42970                                                                           'line' => 486
42971                                                                         }, 'Parse::RecDescent::Production' )
42972                                                                ],
42973                                                     'name' => 'ld_type',
42974                                                     'vars' => '',
42975                                                     'line' => 482
42976                                                   }, 'Parse::RecDescent::Rule' ),
42977                               'RIGHT' => bless( {
42978                                                   'impcount' => 0,
42979                                                   'calls' => [],
42980                                                   'changed' => 0,
42981                                                   'opcount' => 0,
42982                                                   'prods' => [
42983                                                                bless( {
42984                                                                         'number' => '0',
42985                                                                         'strcount' => 0,
42986                                                                         'dircount' => 0,
42987                                                                         'uncommit' => undef,
42988                                                                         'error' => undef,
42989                                                                         'patcount' => 1,
42990                                                                         'actcount' => 0,
42991                                                                         'items' => [
42992                                                                                      bless( {
42993                                                                                               'pattern' => 'right',
42994                                                                                               'hashname' => '__PATTERN1__',
42995                                                                                               'description' => '/right/i',
42996                                                                                               'lookahead' => 0,
42997                                                                                               'rdelim' => '/',
42998                                                                                               'line' => 111,
42999                                                                                               'mod' => 'i',
43000                                                                                               'ldelim' => '/'
43001                                                                                             }, 'Parse::RecDescent::Token' )
43002                                                                                    ],
43003                                                                         'line' => undef
43004                                                                       }, 'Parse::RecDescent::Production' )
43005                                                              ],
43006                                                   'name' => 'RIGHT',
43007                                                   'vars' => '',
43008                                                   'line' => 111
43009                                                 }, 'Parse::RecDescent::Rule' ),
43010                               '_alternation_1_of_production_1_of_rule_method_invocation' => bless( {
43011                                                                                                      'impcount' => 0,
43012                                                                                                      'calls' => [
43013                                                                                                                   'expression'
43014                                                                                                                 ],
43015                                                                                                      'changed' => 0,
43016                                                                                                      'opcount' => 0,
43017                                                                                                      'prods' => [
43018                                                                                                                   bless( {
43019                                                                                                                            'number' => '0',
43020                                                                                                                            'strcount' => 2,
43021                                                                                                                            'dircount' => 0,
43022                                                                                                                            'uncommit' => undef,
43023                                                                                                                            'error' => undef,
43024                                                                                                                            'patcount' => 0,
43025                                                                                                                            'actcount' => 0,
43026                                                                                                                            'items' => [
43027                                                                                                                                         bless( {
43028                                                                                                                                                  'pattern' => '(',
43029                                                                                                                                                  'hashname' => '__STRING1__',
43030                                                                                                                                                  'description' => '\'(\'',
43031                                                                                                                                                  'lookahead' => 0,
43032                                                                                                                                                  'line' => 626
43033                                                                                                                                                }, 'Parse::RecDescent::Literal' ),
43034                                                                                                                                         bless( {
43035                                                                                                                                                  'subrule' => 'expression',
43036                                                                                                                                                  'expected' => undef,
43037                                                                                                                                                  'min' => 1,
43038                                                                                                                                                  'argcode' => undef,
43039                                                                                                                                                  'max' => 100000000,
43040                                                                                                                                                  'matchrule' => 0,
43041                                                                                                                                                  'repspec' => 's',
43042                                                                                                                                                  'lookahead' => 0,
43043                                                                                                                                                  'line' => 626
43044                                                                                                                                                }, 'Parse::RecDescent::Repetition' ),
43045                                                                                                                                         bless( {
43046                                                                                                                                                  'pattern' => ')',
43047                                                                                                                                                  'hashname' => '__STRING2__',
43048                                                                                                                                                  'description' => '\')\'',
43049                                                                                                                                                  'lookahead' => 0,
43050                                                                                                                                                  'line' => 626
43051                                                                                                                                                }, 'Parse::RecDescent::Literal' )
43052                                                                                                                                       ],
43053                                                                                                                            'line' => undef
43054                                                                                                                          }, 'Parse::RecDescent::Production' )
43055                                                                                                                 ],
43056                                                                                                      'name' => '_alternation_1_of_production_1_of_rule_method_invocation',
43057                                                                                                      'vars' => '',
43058                                                                                                      'line' => 626
43059                                                                                                    }, 'Parse::RecDescent::Rule' ),
43060                               'LEFT' => bless( {
43061                                                  'impcount' => 0,
43062                                                  'calls' => [],
43063                                                  'changed' => 0,
43064                                                  'opcount' => 0,
43065                                                  'prods' => [
43066                                                               bless( {
43067                                                                        'number' => '0',
43068                                                                        'strcount' => 0,
43069                                                                        'dircount' => 0,
43070                                                                        'uncommit' => undef,
43071                                                                        'error' => undef,
43072                                                                        'patcount' => 1,
43073                                                                        'actcount' => 0,
43074                                                                        'items' => [
43075                                                                                     bless( {
43076                                                                                              'pattern' => 'left',
43077                                                                                              'hashname' => '__PATTERN1__',
43078                                                                                              'description' => '/left/i',
43079                                                                                              'lookahead' => 0,
43080                                                                                              'rdelim' => '/',
43081                                                                                              'line' => 109,
43082                                                                                              'mod' => 'i',
43083                                                                                              'ldelim' => '/'
43084                                                                                            }, 'Parse::RecDescent::Token' )
43085                                                                                   ],
43086                                                                        'line' => undef
43087                                                                      }, 'Parse::RecDescent::Production' )
43088                                                             ],
43089                                                  'name' => 'LEFT',
43090                                                  'vars' => '',
43091                                                  'line' => 109
43092                                                }, 'Parse::RecDescent::Rule' ),
43093                               'table_name' => bless( {
43094                                                        'impcount' => 0,
43095                                                        'calls' => [
43096                                                                     'SCHEMA',
43097                                                                     'NAME'
43098                                                                   ],
43099                                                        'changed' => 0,
43100                                                        'opcount' => 0,
43101                                                        'prods' => [
43102                                                                     bless( {
43103                                                                              'number' => '0',
43104                                                                              'strcount' => 1,
43105                                                                              'dircount' => 0,
43106                                                                              'uncommit' => undef,
43107                                                                              'error' => undef,
43108                                                                              'patcount' => 0,
43109                                                                              'actcount' => 1,
43110                                                                              'items' => [
43111                                                                                           bless( {
43112                                                                                                    'subrule' => 'SCHEMA',
43113                                                                                                    'matchrule' => 0,
43114                                                                                                    'implicit' => undef,
43115                                                                                                    'argcode' => undef,
43116                                                                                                    'lookahead' => 0,
43117                                                                                                    'line' => 124
43118                                                                                                  }, 'Parse::RecDescent::Subrule' ),
43119                                                                                           bless( {
43120                                                                                                    'pattern' => '.',
43121                                                                                                    'hashname' => '__STRING1__',
43122                                                                                                    'description' => '\'.\'',
43123                                                                                                    'lookahead' => 0,
43124                                                                                                    'line' => 124
43125                                                                                                  }, 'Parse::RecDescent::Literal' ),
43126                                                                                           bless( {
43127                                                                                                    'subrule' => 'NAME',
43128                                                                                                    'matchrule' => 0,
43129                                                                                                    'implicit' => undef,
43130                                                                                                    'argcode' => undef,
43131                                                                                                    'lookahead' => 0,
43132                                                                                                    'line' => 124
43133                                                                                                  }, 'Parse::RecDescent::Subrule' ),
43134                                                                                           bless( {
43135                                                                                                    'hashname' => '__ACTION1__',
43136                                                                                                    'lookahead' => 0,
43137                                                                                                    'line' => 125,
43138                                                                                                    'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
43139                                                                                                  }, 'Parse::RecDescent::Action' )
43140                                                                                         ],
43141                                                                              'line' => undef
43142                                                                            }, 'Parse::RecDescent::Production' ),
43143                                                                     bless( {
43144                                                                              'number' => '1',
43145                                                                              'strcount' => 0,
43146                                                                              'dircount' => 0,
43147                                                                              'uncommit' => undef,
43148                                                                              'error' => undef,
43149                                                                              'patcount' => 0,
43150                                                                              'actcount' => 1,
43151                                                                              'items' => [
43152                                                                                           bless( {
43153                                                                                                    'subrule' => 'NAME',
43154                                                                                                    'matchrule' => 0,
43155                                                                                                    'implicit' => undef,
43156                                                                                                    'argcode' => undef,
43157                                                                                                    'lookahead' => 0,
43158                                                                                                    'line' => 126
43159                                                                                                  }, 'Parse::RecDescent::Subrule' ),
43160                                                                                           bless( {
43161                                                                                                    'hashname' => '__ACTION1__',
43162                                                                                                    'lookahead' => 0,
43163                                                                                                    'line' => 127,
43164                                                                                                    'code' => '{ $return = { name => $item[1] } }'
43165                                                                                                  }, 'Parse::RecDescent::Action' )
43166                                                                                         ],
43167                                                                              'line' => 126
43168                                                                            }, 'Parse::RecDescent::Production' )
43169                                                                   ],
43170                                                        'name' => 'table_name',
43171                                                        'vars' => '',
43172                                                        'line' => 124
43173                                                      }, 'Parse::RecDescent::Rule' ),
43174                               '_alternation_1_of_production_53_of_rule_sysfun' => bless( {
43175                                                                                            'impcount' => 0,
43176                                                                                            'calls' => [],
43177                                                                                            'changed' => 0,
43178                                                                                            'opcount' => 0,
43179                                                                                            'prods' => [
43180                                                                                                         bless( {
43181                                                                                                                  'number' => '0',
43182                                                                                                                  'strcount' => 0,
43183                                                                                                                  'dircount' => 0,
43184                                                                                                                  'uncommit' => undef,
43185                                                                                                                  'error' => undef,
43186                                                                                                                  'patcount' => 1,
43187                                                                                                                  'actcount' => 0,
43188                                                                                                                  'items' => [
43189                                                                                                                               bless( {
43190                                                                                                                                        'pattern' => 'TRUNCATE',
43191                                                                                                                                        'hashname' => '__PATTERN1__',
43192                                                                                                                                        'description' => '/TRUNCATE/i',
43193                                                                                                                                        'lookahead' => 0,
43194                                                                                                                                        'rdelim' => '/',
43195                                                                                                                                        'line' => 628,
43196                                                                                                                                        'mod' => 'i',
43197                                                                                                                                        'ldelim' => '/'
43198                                                                                                                                      }, 'Parse::RecDescent::Token' )
43199                                                                                                                             ],
43200                                                                                                                  'line' => undef
43201                                                                                                                }, 'Parse::RecDescent::Production' ),
43202                                                                                                         bless( {
43203                                                                                                                  'number' => '1',
43204                                                                                                                  'strcount' => 0,
43205                                                                                                                  'dircount' => 0,
43206                                                                                                                  'uncommit' => undef,
43207                                                                                                                  'error' => undef,
43208                                                                                                                  'patcount' => 1,
43209                                                                                                                  'actcount' => 0,
43210                                                                                                                  'items' => [
43211                                                                                                                               bless( {
43212                                                                                                                                        'pattern' => 'TRUNC',
43213                                                                                                                                        'hashname' => '__PATTERN1__',
43214                                                                                                                                        'description' => '/TRUNC/i',
43215                                                                                                                                        'lookahead' => 0,
43216                                                                                                                                        'rdelim' => '/',
43217                                                                                                                                        'line' => 628,
43218                                                                                                                                        'mod' => 'i',
43219                                                                                                                                        'ldelim' => '/'
43220                                                                                                                                      }, 'Parse::RecDescent::Token' )
43221                                                                                                                             ],
43222                                                                                                                  'line' => 628
43223                                                                                                                }, 'Parse::RecDescent::Production' )
43224                                                                                                       ],
43225                                                                                            'name' => '_alternation_1_of_production_53_of_rule_sysfun',
43226                                                                                            'vars' => '',
43227                                                                                            'line' => 628
43228                                                                                          }, 'Parse::RecDescent::Rule' ),
43229                               'options' => bless( {
43230                                                     'impcount' => 1,
43231                                                     'calls' => [
43232                                                                  '_alternation_1_of_production_1_of_rule_options'
43233                                                                ],
43234                                                     'changed' => 0,
43235                                                     'opcount' => 0,
43236                                                     'prods' => [
43237                                                                  bless( {
43238                                                                           'number' => '0',
43239                                                                           'strcount' => 0,
43240                                                                           'dircount' => 0,
43241                                                                           'uncommit' => undef,
43242                                                                           'error' => undef,
43243                                                                           'patcount' => 2,
43244                                                                           'actcount' => 0,
43245                                                                           'items' => [
43246                                                                                        bless( {
43247                                                                                                 'pattern' => 'WITH',
43248                                                                                                 'hashname' => '__PATTERN1__',
43249                                                                                                 'description' => '/WITH/i',
43250                                                                                                 'lookahead' => 0,
43251                                                                                                 'rdelim' => '/',
43252                                                                                                 'line' => 150,
43253                                                                                                 'mod' => 'i',
43254                                                                                                 'ldelim' => '/'
43255                                                                                               }, 'Parse::RecDescent::Token' ),
43256                                                                                        bless( {
43257                                                                                                 'subrule' => '_alternation_1_of_production_1_of_rule_options',
43258                                                                                                 'matchrule' => 0,
43259                                                                                                 'implicit' => '/CASCADED/i, or /LOCAL/i',
43260                                                                                                 'argcode' => undef,
43261                                                                                                 'lookahead' => 0,
43262                                                                                                 'line' => 150
43263                                                                                               }, 'Parse::RecDescent::Subrule' ),
43264                                                                                        bless( {
43265                                                                                                 'pattern' => 'CHECK\\s+OPTION',
43266                                                                                                 'hashname' => '__PATTERN2__',
43267                                                                                                 'description' => '/CHECK\\\\s+OPTION/i',
43268                                                                                                 'lookahead' => 0,
43269                                                                                                 'rdelim' => '/',
43270                                                                                                 'line' => 150,
43271                                                                                                 'mod' => 'i',
43272                                                                                                 'ldelim' => '/'
43273                                                                                               }, 'Parse::RecDescent::Token' )
43274                                                                                      ],
43275                                                                           'line' => undef
43276                                                                         }, 'Parse::RecDescent::Production' )
43277                                                                ],
43278                                                     'name' => 'options',
43279                                                     'vars' => '',
43280                                                     'line' => 150
43281                                                   }, 'Parse::RecDescent::Rule' ),
43282                               'function' => bless( {
43283                                                      'impcount' => 1,
43284                                                      'calls' => [
43285                                                                   '_alternation_1_of_production_1_of_rule_function',
43286                                                                   'func_args'
43287                                                                 ],
43288                                                      'changed' => 0,
43289                                                      'opcount' => 0,
43290                                                      'prods' => [
43291                                                                   bless( {
43292                                                                            'number' => '0',
43293                                                                            'strcount' => 2,
43294                                                                            'dircount' => 1,
43295                                                                            'uncommit' => undef,
43296                                                                            'error' => undef,
43297                                                                            'patcount' => 1,
43298                                                                            'actcount' => 0,
43299                                                                            'op' => [],
43300                                                                            'items' => [
43301                                                                                         bless( {
43302                                                                                                  'subrule' => '_alternation_1_of_production_1_of_rule_function',
43303                                                                                                  'matchrule' => 0,
43304                                                                                                  'implicit' => '/SYSIBM\\\\.|/i, or /SYSFUN\\\\.|/i, or userdefined_function',
43305                                                                                                  'argcode' => undef,
43306                                                                                                  'lookahead' => 0,
43307                                                                                                  'line' => 326
43308                                                                                                }, 'Parse::RecDescent::Subrule' ),
43309                                                                                         bless( {
43310                                                                                                  'pattern' => '(',
43311                                                                                                  'hashname' => '__STRING1__',
43312                                                                                                  'description' => '\'(\'',
43313                                                                                                  'lookahead' => 0,
43314                                                                                                  'line' => 326
43315                                                                                                }, 'Parse::RecDescent::Literal' ),
43316                                                                                         bless( {
43317                                                                                                  'expected' => '<leftop: func_args /,/ func_args>',
43318                                                                                                  'min' => 1,
43319                                                                                                  'name' => '\'func_args(s)\'',
43320                                                                                                  'max' => 100000000,
43321                                                                                                  'leftarg' => bless( {
43322                                                                                                                        'subrule' => 'func_args',
43323                                                                                                                        'matchrule' => 0,
43324                                                                                                                        'implicit' => undef,
43325                                                                                                                        'argcode' => undef,
43326                                                                                                                        'lookahead' => 0,
43327                                                                                                                        'line' => 326
43328                                                                                                                      }, 'Parse::RecDescent::Subrule' ),
43329                                                                                                  'rightarg' => bless( {
43330                                                                                                                         'subrule' => 'func_args',
43331                                                                                                                         'matchrule' => 0,
43332                                                                                                                         'implicit' => undef,
43333                                                                                                                         'argcode' => undef,
43334                                                                                                                         'lookahead' => 0,
43335                                                                                                                         'line' => 326
43336                                                                                                                       }, 'Parse::RecDescent::Subrule' ),
43337                                                                                                  'hashname' => '__DIRECTIVE1__',
43338                                                                                                  'type' => 'leftop',
43339                                                                                                  'op' => bless( {
43340                                                                                                                   'pattern' => ',',
43341                                                                                                                   'hashname' => '__PATTERN1__',
43342                                                                                                                   'description' => '/,/',
43343                                                                                                                   'lookahead' => 0,
43344                                                                                                                   'rdelim' => '/',
43345                                                                                                                   'line' => 326,
43346                                                                                                                   'mod' => '',
43347                                                                                                                   'ldelim' => '/'
43348                                                                                                                 }, 'Parse::RecDescent::Token' )
43349                                                                                                }, 'Parse::RecDescent::Operator' ),
43350                                                                                         bless( {
43351                                                                                                  'pattern' => ')',
43352                                                                                                  'hashname' => '__STRING2__',
43353                                                                                                  'description' => '\')\'',
43354                                                                                                  'lookahead' => 0,
43355                                                                                                  'line' => 326
43356                                                                                                }, 'Parse::RecDescent::Literal' )
43357                                                                                       ],
43358                                                                            'line' => undef
43359                                                                          }, 'Parse::RecDescent::Production' )
43360                                                                 ],
43361                                                      'name' => 'function',
43362                                                      'vars' => '',
43363                                                      'line' => 323
43364                                                    }, 'Parse::RecDescent::Rule' ),
43365                               '_alternation_1_of_production_41_of_rule_sysibm_function' => bless( {
43366                                                                                                     'impcount' => 0,
43367                                                                                                     'calls' => [],
43368                                                                                                     'changed' => 0,
43369                                                                                                     'opcount' => 0,
43370                                                                                                     'prods' => [
43371                                                                                                                  bless( {
43372                                                                                                                           'number' => '0',
43373                                                                                                                           'strcount' => 0,
43374                                                                                                                           'dircount' => 0,
43375                                                                                                                           'uncommit' => undef,
43376                                                                                                                           'error' => undef,
43377                                                                                                                           'patcount' => 1,
43378                                                                                                                           'actcount' => 0,
43379                                                                                                                           'items' => [
43380                                                                                                                                        bless( {
43381                                                                                                                                                 'pattern' => 'INTEGER',
43382                                                                                                                                                 'hashname' => '__PATTERN1__',
43383                                                                                                                                                 'description' => '/INTEGER/i',
43384                                                                                                                                                 'lookahead' => 0,
43385                                                                                                                                                 'rdelim' => '/',
43386                                                                                                                                                 'line' => 628,
43387                                                                                                                                                 'mod' => 'i',
43388                                                                                                                                                 'ldelim' => '/'
43389                                                                                                                                               }, 'Parse::RecDescent::Token' )
43390                                                                                                                                      ],
43391                                                                                                                           'line' => undef
43392                                                                                                                         }, 'Parse::RecDescent::Production' ),
43393                                                                                                                  bless( {
43394                                                                                                                           'number' => '1',
43395                                                                                                                           'strcount' => 0,
43396                                                                                                                           'dircount' => 0,
43397                                                                                                                           'uncommit' => undef,
43398                                                                                                                           'error' => undef,
43399                                                                                                                           'patcount' => 1,
43400                                                                                                                           'actcount' => 0,
43401                                                                                                                           'items' => [
43402                                                                                                                                        bless( {
43403                                                                                                                                                 'pattern' => 'INT',
43404                                                                                                                                                 'hashname' => '__PATTERN1__',
43405                                                                                                                                                 'description' => '/INT/',
43406                                                                                                                                                 'lookahead' => 0,
43407                                                                                                                                                 'rdelim' => '/',
43408                                                                                                                                                 'line' => 628,
43409                                                                                                                                                 'mod' => '',
43410                                                                                                                                                 'ldelim' => '/'
43411                                                                                                                                               }, 'Parse::RecDescent::Token' )
43412                                                                                                                                      ],
43413                                                                                                                           'line' => 628
43414                                                                                                                         }, 'Parse::RecDescent::Production' )
43415                                                                                                                ],
43416                                                                                                     'name' => '_alternation_1_of_production_41_of_rule_sysibm_function',
43417                                                                                                     'vars' => '',
43418                                                                                                     'line' => 628
43419                                                                                                   }, 'Parse::RecDescent::Rule' ),
43420                               '_alternation_1_of_production_1_of_rule_case_expression' => bless( {
43421                                                                                                    'impcount' => 0,
43422                                                                                                    'calls' => [
43423                                                                                                                 'searched_when_clause',
43424                                                                                                                 'simple_when_clause'
43425                                                                                                               ],
43426                                                                                                    'changed' => 0,
43427                                                                                                    'opcount' => 0,
43428                                                                                                    'prods' => [
43429                                                                                                                 bless( {
43430                                                                                                                          'number' => '0',
43431                                                                                                                          'strcount' => 0,
43432                                                                                                                          'dircount' => 0,
43433                                                                                                                          'uncommit' => undef,
43434                                                                                                                          'error' => undef,
43435                                                                                                                          'patcount' => 0,
43436                                                                                                                          'actcount' => 0,
43437                                                                                                                          'items' => [
43438                                                                                                                                       bless( {
43439                                                                                                                                                'subrule' => 'searched_when_clause',
43440                                                                                                                                                'matchrule' => 0,
43441                                                                                                                                                'implicit' => undef,
43442                                                                                                                                                'argcode' => undef,
43443                                                                                                                                                'lookahead' => 0,
43444                                                                                                                                                'line' => 626
43445                                                                                                                                              }, 'Parse::RecDescent::Subrule' )
43446                                                                                                                                     ],
43447                                                                                                                          'line' => undef
43448                                                                                                                        }, 'Parse::RecDescent::Production' ),
43449                                                                                                                 bless( {
43450                                                                                                                          'number' => '1',
43451                                                                                                                          'strcount' => 0,
43452                                                                                                                          'dircount' => 0,
43453                                                                                                                          'uncommit' => undef,
43454                                                                                                                          'error' => undef,
43455                                                                                                                          'patcount' => 0,
43456                                                                                                                          'actcount' => 0,
43457                                                                                                                          'items' => [
43458                                                                                                                                       bless( {
43459                                                                                                                                                'subrule' => 'simple_when_clause',
43460                                                                                                                                                'matchrule' => 0,
43461                                                                                                                                                'implicit' => undef,
43462                                                                                                                                                'argcode' => undef,
43463                                                                                                                                                'lookahead' => 0,
43464                                                                                                                                                'line' => 627
43465                                                                                                                                              }, 'Parse::RecDescent::Subrule' )
43466                                                                                                                                     ],
43467                                                                                                                          'line' => 627
43468                                                                                                                        }, 'Parse::RecDescent::Production' )
43469                                                                                                               ],
43470                                                                                                    'name' => '_alternation_1_of_production_1_of_rule_case_expression',
43471                                                                                                    'vars' => '',
43472                                                                                                    'line' => 626
43473                                                                                                  }, 'Parse::RecDescent::Rule' ),
43474                               '_alternation_1_of_production_1_of_rule_window_order_clause' => bless( {
43475                                                                                                        'impcount' => 1,
43476                                                                                                        'calls' => [
43477                                                                                                                     'sort_key_expression',
43478                                                                                                                     '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause'
43479                                                                                                                   ],
43480                                                                                                        'changed' => 0,
43481                                                                                                        'opcount' => 0,
43482                                                                                                        'prods' => [
43483                                                                                                                     bless( {
43484                                                                                                                              'number' => '0',
43485                                                                                                                              'strcount' => 0,
43486                                                                                                                              'dircount' => 0,
43487                                                                                                                              'uncommit' => undef,
43488                                                                                                                              'error' => undef,
43489                                                                                                                              'patcount' => 0,
43490                                                                                                                              'actcount' => 0,
43491                                                                                                                              'items' => [
43492                                                                                                                                           bless( {
43493                                                                                                                                                    'subrule' => 'sort_key_expression',
43494                                                                                                                                                    'matchrule' => 0,
43495                                                                                                                                                    'implicit' => undef,
43496                                                                                                                                                    'argcode' => undef,
43497                                                                                                                                                    'lookahead' => 0,
43498                                                                                                                                                    'line' => 624
43499                                                                                                                                                  }, 'Parse::RecDescent::Subrule' ),
43500                                                                                                                                           bless( {
43501                                                                                                                                                    'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause',
43502                                                                                                                                                    'expected' => 'asc_option, or desc_option',
43503                                                                                                                                                    'min' => 0,
43504                                                                                                                                                    'argcode' => undef,
43505                                                                                                                                                    'max' => 1,
43506                                                                                                                                                    'matchrule' => 0,
43507                                                                                                                                                    'repspec' => '?',
43508                                                                                                                                                    'lookahead' => 0,
43509                                                                                                                                                    'line' => 627
43510                                                                                                                                                  }, 'Parse::RecDescent::Repetition' )
43511                                                                                                                                         ],
43512                                                                                                                              'line' => undef
43513                                                                                                                            }, 'Parse::RecDescent::Production' )
43514                                                                                                                   ],
43515                                                                                                        'name' => '_alternation_1_of_production_1_of_rule_window_order_clause',
43516                                                                                                        'vars' => '',
43517                                                                                                        'line' => 624
43518                                                                                                      }, 'Parse::RecDescent::Rule' ),
43519                               'create' => bless( {
43520                                                    'impcount' => 0,
43521                                                    'calls' => [
43522                                                                 'CREATE',
43523                                                                 'TRIGGER',
43524                                                                 'trigger_name',
43525                                                                 'before',
43526                                                                 'type',
43527                                                                 'table_name',
43528                                                                 'reference_b',
43529                                                                 'triggered_action',
43530                                                                 'after',
43531                                                                 'reference_a',
43532                                                                 'VIEW',
43533                                                                 'view_name',
43534                                                                 'column_list',
43535                                                                 'with_expression',
43536                                                                 'SQL_procedure_statement'
43537                                                               ],
43538                                                    'changed' => 0,
43539                                                    'opcount' => 0,
43540                                                    'prods' => [
43541                                                                 bless( {
43542                                                                          'number' => '0',
43543                                                                          'strcount' => 1,
43544                                                                          'dircount' => 0,
43545                                                                          'uncommit' => undef,
43546                                                                          'error' => undef,
43547                                                                          'patcount' => 2,
43548                                                                          'actcount' => 1,
43549                                                                          'items' => [
43550                                                                                       bless( {
43551                                                                                                'subrule' => 'CREATE',
43552                                                                                                'matchrule' => 0,
43553                                                                                                'implicit' => undef,
43554                                                                                                'argcode' => undef,
43555                                                                                                'lookahead' => 0,
43556                                                                                                'line' => 36
43557                                                                                              }, 'Parse::RecDescent::Subrule' ),
43558                                                                                       bless( {
43559                                                                                                'subrule' => 'TRIGGER',
43560                                                                                                'matchrule' => 0,
43561                                                                                                'implicit' => undef,
43562                                                                                                'argcode' => undef,
43563                                                                                                'lookahead' => 0,
43564                                                                                                'line' => 36
43565                                                                                              }, 'Parse::RecDescent::Subrule' ),
43566                                                                                       bless( {
43567                                                                                                'subrule' => 'trigger_name',
43568                                                                                                'matchrule' => 0,
43569                                                                                                'implicit' => undef,
43570                                                                                                'argcode' => undef,
43571                                                                                                'lookahead' => 0,
43572                                                                                                'line' => 36
43573                                                                                              }, 'Parse::RecDescent::Subrule' ),
43574                                                                                       bless( {
43575                                                                                                'subrule' => 'before',
43576                                                                                                'matchrule' => 0,
43577                                                                                                'implicit' => undef,
43578                                                                                                'argcode' => undef,
43579                                                                                                'lookahead' => 0,
43580                                                                                                'line' => 36
43581                                                                                              }, 'Parse::RecDescent::Subrule' ),
43582                                                                                       bless( {
43583                                                                                                'subrule' => 'type',
43584                                                                                                'matchrule' => 0,
43585                                                                                                'implicit' => undef,
43586                                                                                                'argcode' => undef,
43587                                                                                                'lookahead' => 0,
43588                                                                                                'line' => 36
43589                                                                                              }, 'Parse::RecDescent::Subrule' ),
43590                                                                                       bless( {
43591                                                                                                'pattern' => 'ON',
43592                                                                                                'hashname' => '__PATTERN1__',
43593                                                                                                'description' => '/ON/i',
43594                                                                                                'lookahead' => 0,
43595                                                                                                'rdelim' => '/',
43596                                                                                                'line' => 36,
43597                                                                                                'mod' => 'i',
43598                                                                                                'ldelim' => '/'
43599                                                                                              }, 'Parse::RecDescent::Token' ),
43600                                                                                       bless( {
43601                                                                                                'subrule' => 'table_name',
43602                                                                                                'matchrule' => 0,
43603                                                                                                'implicit' => undef,
43604                                                                                                'argcode' => undef,
43605                                                                                                'lookahead' => 0,
43606                                                                                                'line' => 36
43607                                                                                              }, 'Parse::RecDescent::Subrule' ),
43608                                                                                       bless( {
43609                                                                                                'subrule' => 'reference_b',
43610                                                                                                'expected' => undef,
43611                                                                                                'min' => 0,
43612                                                                                                'argcode' => undef,
43613                                                                                                'max' => 1,
43614                                                                                                'matchrule' => 0,
43615                                                                                                'repspec' => '?',
43616                                                                                                'lookahead' => 0,
43617                                                                                                'line' => 36
43618                                                                                              }, 'Parse::RecDescent::Repetition' ),
43619                                                                                       bless( {
43620                                                                                                'pattern' => 'FOR EACH ROW',
43621                                                                                                'hashname' => '__PATTERN2__',
43622                                                                                                'description' => '/FOR EACH ROW/i',
43623                                                                                                'lookahead' => 0,
43624                                                                                                'rdelim' => '/',
43625                                                                                                'line' => 36,
43626                                                                                                'mod' => 'i',
43627                                                                                                'ldelim' => '/'
43628                                                                                              }, 'Parse::RecDescent::Token' ),
43629                                                                                       bless( {
43630                                                                                                'pattern' => 'MODE DB2SQL',
43631                                                                                                'hashname' => '__STRING1__',
43632                                                                                                'description' => '\'MODE DB2SQL\'',
43633                                                                                                'lookahead' => 0,
43634                                                                                                'line' => 36
43635                                                                                              }, 'Parse::RecDescent::Literal' ),
43636                                                                                       bless( {
43637                                                                                                'subrule' => 'triggered_action',
43638                                                                                                'matchrule' => 0,
43639                                                                                                'implicit' => undef,
43640                                                                                                'argcode' => undef,
43641                                                                                                'lookahead' => 0,
43642                                                                                                'line' => 36
43643                                                                                              }, 'Parse::RecDescent::Subrule' ),
43644                                                                                       bless( {
43645                                                                                                'hashname' => '__ACTION1__',
43646                                                                                                'lookahead' => 0,
43647                                                                                                'line' => 37,
43648                                                                                                'code' => '{
43649     my $table_name = $item{\'table_name\'}{\'name\'};
43650     $return =  {
43651         table      => $table_name,
43652         schema     => $item{\'trigger_name\'}{\'schema\'},
43653         name       => $item{\'trigger_name\'}{\'name\'},
43654         when       => \'before\',
43655         db_event   => $item{\'type\'}->{\'event\'},
43656         fields     => $item{\'type\'}{\'fields\'},
43657         condition  => $item{\'triggered_action\'}{\'condition\'},
43658         reference  => $item{\'reference_b\'},
43659         granularity => $item[9],
43660         action     => $item{\'triggered_action\'}{\'statement\'}
43661     };
43662
43663     push @triggers, $return;
43664 }'
43665                                                                                              }, 'Parse::RecDescent::Action' )
43666                                                                                     ],
43667                                                                          'line' => undef
43668                                                                        }, 'Parse::RecDescent::Production' ),
43669                                                                 bless( {
43670                                                                          'number' => '1',
43671                                                                          'strcount' => 1,
43672                                                                          'dircount' => 0,
43673                                                                          'uncommit' => undef,
43674                                                                          'error' => undef,
43675                                                                          'patcount' => 2,
43676                                                                          'actcount' => 1,
43677                                                                          'items' => [
43678                                                                                       bless( {
43679                                                                                                'subrule' => 'CREATE',
43680                                                                                                'matchrule' => 0,
43681                                                                                                'implicit' => undef,
43682                                                                                                'argcode' => undef,
43683                                                                                                'lookahead' => 0,
43684                                                                                                'line' => 55
43685                                                                                              }, 'Parse::RecDescent::Subrule' ),
43686                                                                                       bless( {
43687                                                                                                'subrule' => 'TRIGGER',
43688                                                                                                'matchrule' => 0,
43689                                                                                                'implicit' => undef,
43690                                                                                                'argcode' => undef,
43691                                                                                                'lookahead' => 0,
43692                                                                                                'line' => 55
43693                                                                                              }, 'Parse::RecDescent::Subrule' ),
43694                                                                                       bless( {
43695                                                                                                'subrule' => 'trigger_name',
43696                                                                                                'matchrule' => 0,
43697                                                                                                'implicit' => undef,
43698                                                                                                'argcode' => undef,
43699                                                                                                'lookahead' => 0,
43700                                                                                                'line' => 55
43701                                                                                              }, 'Parse::RecDescent::Subrule' ),
43702                                                                                       bless( {
43703                                                                                                'subrule' => 'after',
43704                                                                                                'matchrule' => 0,
43705                                                                                                'implicit' => undef,
43706                                                                                                'argcode' => undef,
43707                                                                                                'lookahead' => 0,
43708                                                                                                'line' => 55
43709                                                                                              }, 'Parse::RecDescent::Subrule' ),
43710                                                                                       bless( {
43711                                                                                                'subrule' => 'type',
43712                                                                                                'matchrule' => 0,
43713                                                                                                'implicit' => undef,
43714                                                                                                'argcode' => undef,
43715                                                                                                'lookahead' => 0,
43716                                                                                                'line' => 55
43717                                                                                              }, 'Parse::RecDescent::Subrule' ),
43718                                                                                       bless( {
43719                                                                                                'pattern' => 'ON',
43720                                                                                                'hashname' => '__PATTERN1__',
43721                                                                                                'description' => '/ON/i',
43722                                                                                                'lookahead' => 0,
43723                                                                                                'rdelim' => '/',
43724                                                                                                'line' => 55,
43725                                                                                                'mod' => 'i',
43726                                                                                                'ldelim' => '/'
43727                                                                                              }, 'Parse::RecDescent::Token' ),
43728                                                                                       bless( {
43729                                                                                                'subrule' => 'table_name',
43730                                                                                                'matchrule' => 0,
43731                                                                                                'implicit' => undef,
43732                                                                                                'argcode' => undef,
43733                                                                                                'lookahead' => 0,
43734                                                                                                'line' => 55
43735                                                                                              }, 'Parse::RecDescent::Subrule' ),
43736                                                                                       bless( {
43737                                                                                                'subrule' => 'reference_a',
43738                                                                                                'expected' => undef,
43739                                                                                                'min' => 0,
43740                                                                                                'argcode' => undef,
43741                                                                                                'max' => 1,
43742                                                                                                'matchrule' => 0,
43743                                                                                                'repspec' => '?',
43744                                                                                                'lookahead' => 0,
43745                                                                                                'line' => 55
43746                                                                                              }, 'Parse::RecDescent::Repetition' ),
43747                                                                                       bless( {
43748                                                                                                'pattern' => 'FOR EACH ROW|FOR EACH STATEMENT',
43749                                                                                                'hashname' => '__PATTERN2__',
43750                                                                                                'description' => '/FOR EACH ROW|FOR EACH STATEMENT/i',
43751                                                                                                'lookahead' => 0,
43752                                                                                                'rdelim' => '/',
43753                                                                                                'line' => 55,
43754                                                                                                'mod' => 'i',
43755                                                                                                'ldelim' => '/'
43756                                                                                              }, 'Parse::RecDescent::Token' ),
43757                                                                                       bless( {
43758                                                                                                'pattern' => 'MODE DB2SQL',
43759                                                                                                'hashname' => '__STRING1__',
43760                                                                                                'description' => '\'MODE DB2SQL\'',
43761                                                                                                'lookahead' => 0,
43762                                                                                                'line' => 55
43763                                                                                              }, 'Parse::RecDescent::Literal' ),
43764                                                                                       bless( {
43765                                                                                                'subrule' => 'triggered_action',
43766                                                                                                'matchrule' => 0,
43767                                                                                                'implicit' => undef,
43768                                                                                                'argcode' => undef,
43769                                                                                                'lookahead' => 0,
43770                                                                                                'line' => 55
43771                                                                                              }, 'Parse::RecDescent::Subrule' ),
43772                                                                                       bless( {
43773                                                                                                'hashname' => '__ACTION1__',
43774                                                                                                'lookahead' => 0,
43775                                                                                                'line' => 56,
43776                                                                                                'code' => '{
43777     my $table_name = $item{\'table_name\'}{\'name\'};
43778     $return = {
43779         table      => $table_name,
43780         schema     => $item{\'trigger_name\'}{\'schema\'},
43781         name       => $item{\'trigger_name\'}{\'name\'},
43782         when       => \'after\',
43783         db_event   => $item{\'type\'}{\'event\'},
43784         fields     => $item{\'type\'}{\'fields\'},
43785         condition  => $item{\'triggered_action\'}{\'condition\'},
43786         reference  => $item{\'reference_a\'},
43787         granularity => $item[9],
43788         action     => $item{\'triggered_action\'}{\'statement\'}
43789     };
43790
43791     push @triggers, $return;
43792 }'
43793                                                                                              }, 'Parse::RecDescent::Action' )
43794                                                                                     ],
43795                                                                          'line' => undef
43796                                                                        }, 'Parse::RecDescent::Production' ),
43797                                                                 bless( {
43798                                                                          'number' => '2',
43799                                                                          'strcount' => 0,
43800                                                                          'dircount' => 0,
43801                                                                          'uncommit' => undef,
43802                                                                          'error' => undef,
43803                                                                          'patcount' => 2,
43804                                                                          'actcount' => 1,
43805                                                                          'items' => [
43806                                                                                       bless( {
43807                                                                                                'subrule' => 'CREATE',
43808                                                                                                'matchrule' => 0,
43809                                                                                                'implicit' => undef,
43810                                                                                                'argcode' => undef,
43811                                                                                                'lookahead' => 0,
43812                                                                                                'line' => 74
43813                                                                                              }, 'Parse::RecDescent::Subrule' ),
43814                                                                                       bless( {
43815                                                                                                'pattern' => 'FEDERATED|',
43816                                                                                                'hashname' => '__PATTERN1__',
43817                                                                                                'description' => '/FEDERATED|/i',
43818                                                                                                'lookahead' => 0,
43819                                                                                                'rdelim' => '/',
43820                                                                                                'line' => 74,
43821                                                                                                'mod' => 'i',
43822                                                                                                'ldelim' => '/'
43823                                                                                              }, 'Parse::RecDescent::Token' ),
43824                                                                                       bless( {
43825                                                                                                'subrule' => 'VIEW',
43826                                                                                                'matchrule' => 0,
43827                                                                                                'implicit' => undef,
43828                                                                                                'argcode' => undef,
43829                                                                                                'lookahead' => 0,
43830                                                                                                'line' => 74
43831                                                                                              }, 'Parse::RecDescent::Subrule' ),
43832                                                                                       bless( {
43833                                                                                                'subrule' => 'view_name',
43834                                                                                                'matchrule' => 0,
43835                                                                                                'implicit' => undef,
43836                                                                                                'argcode' => undef,
43837                                                                                                'lookahead' => 0,
43838                                                                                                'line' => 74
43839                                                                                              }, 'Parse::RecDescent::Subrule' ),
43840                                                                                       bless( {
43841                                                                                                'subrule' => 'column_list',
43842                                                                                                'expected' => undef,
43843                                                                                                'min' => 0,
43844                                                                                                'argcode' => undef,
43845                                                                                                'max' => 1,
43846                                                                                                'matchrule' => 0,
43847                                                                                                'repspec' => '?',
43848                                                                                                'lookahead' => 0,
43849                                                                                                'line' => 74
43850                                                                                              }, 'Parse::RecDescent::Repetition' ),
43851                                                                                       bless( {
43852                                                                                                'pattern' => 'AS',
43853                                                                                                'hashname' => '__PATTERN2__',
43854                                                                                                'description' => '/AS/i',
43855                                                                                                'lookahead' => 0,
43856                                                                                                'rdelim' => '/',
43857                                                                                                'line' => 74,
43858                                                                                                'mod' => 'i',
43859                                                                                                'ldelim' => '/'
43860                                                                                              }, 'Parse::RecDescent::Token' ),
43861                                                                                       bless( {
43862                                                                                                'subrule' => 'with_expression',
43863                                                                                                'expected' => undef,
43864                                                                                                'min' => 0,
43865                                                                                                'argcode' => undef,
43866                                                                                                'max' => 1,
43867                                                                                                'matchrule' => 0,
43868                                                                                                'repspec' => '?',
43869                                                                                                'lookahead' => 0,
43870                                                                                                'line' => 74
43871                                                                                              }, 'Parse::RecDescent::Repetition' ),
43872                                                                                       bless( {
43873                                                                                                'subrule' => 'SQL_procedure_statement',
43874                                                                                                'matchrule' => 0,
43875                                                                                                'implicit' => undef,
43876                                                                                                'argcode' => undef,
43877                                                                                                'lookahead' => 0,
43878                                                                                                'line' => 74
43879                                                                                              }, 'Parse::RecDescent::Subrule' ),
43880                                                                                       bless( {
43881                                                                                                'hashname' => '__ACTION1__',
43882                                                                                                'lookahead' => 0,
43883                                                                                                'line' => 75,
43884                                                                                                'code' => '{
43885     $return = {
43886         name   => $item{view_name}{name},
43887         sql    => $item{SQL_procedure_statement},
43888         with   => $item{\'with_expression(?)\'},
43889         fields => $item{\'column_list(?)\'}
43890     };
43891     push @views, $return;
43892 }'
43893                                                                                              }, 'Parse::RecDescent::Action' )
43894                                                                                     ],
43895                                                                          'line' => undef
43896                                                                        }, 'Parse::RecDescent::Production' )
43897                                                               ],
43898                                                    'name' => 'create',
43899                                                    'vars' => '',
43900                                                    'line' => 36
43901                                                  }, 'Parse::RecDescent::Rule' ),
43902                               'sysfun' => bless( {
43903                                                    'impcount' => 0,
43904                                                    'calls' => [
43905                                                                 '_alternation_1_of_production_1_of_rule_sysfun',
43906                                                                 '_alternation_1_of_production_7_of_rule_sysfun',
43907                                                                 'I',
43908                                                                 '_alternation_1_of_production_53_of_rule_sysfun'
43909                                                               ],
43910                                                    'changed' => 0,
43911                                                    'opcount' => 0,
43912                                                    'prods' => [
43913                                                                 bless( {
43914                                                                          'number' => '0',
43915                                                                          'strcount' => 0,
43916                                                                          'dircount' => 0,
43917                                                                          'uncommit' => undef,
43918                                                                          'error' => undef,
43919                                                                          'patcount' => 0,
43920                                                                          'actcount' => 0,
43921                                                                          'items' => [
43922                                                                                       bless( {
43923                                                                                                'subrule' => '_alternation_1_of_production_1_of_rule_sysfun',
43924                                                                                                'matchrule' => 0,
43925                                                                                                'implicit' => '/ABS/i, or /ABSVAL/i',
43926                                                                                                'argcode' => undef,
43927                                                                                                'lookahead' => 0,
43928                                                                                                'line' => 421
43929                                                                                              }, 'Parse::RecDescent::Subrule' )
43930                                                                                     ],
43931                                                                          'line' => undef
43932                                                                        }, 'Parse::RecDescent::Production' ),
43933                                                                 bless( {
43934                                                                          'number' => '1',
43935                                                                          'strcount' => 0,
43936                                                                          'dircount' => 0,
43937                                                                          'uncommit' => undef,
43938                                                                          'error' => undef,
43939                                                                          'patcount' => 1,
43940                                                                          'actcount' => 0,
43941                                                                          'items' => [
43942                                                                                       bless( {
43943                                                                                                'pattern' => 'ACOS',
43944                                                                                                'hashname' => '__PATTERN1__',
43945                                                                                                'description' => '/ACOS/i',
43946                                                                                                'lookahead' => 0,
43947                                                                                                'rdelim' => '/',
43948                                                                                                'line' => 422,
43949                                                                                                'mod' => 'i',
43950                                                                                                'ldelim' => '/'
43951                                                                                              }, 'Parse::RecDescent::Token' )
43952                                                                                     ],
43953                                                                          'line' => 422
43954                                                                        }, 'Parse::RecDescent::Production' ),
43955                                                                 bless( {
43956                                                                          'number' => '2',
43957                                                                          'strcount' => 0,
43958                                                                          'dircount' => 0,
43959                                                                          'uncommit' => undef,
43960                                                                          'error' => undef,
43961                                                                          'patcount' => 1,
43962                                                                          'actcount' => 0,
43963                                                                          'items' => [
43964                                                                                       bless( {
43965                                                                                                'pattern' => 'ASCII',
43966                                                                                                'hashname' => '__PATTERN1__',
43967                                                                                                'description' => '/ASCII/i',
43968                                                                                                'lookahead' => 0,
43969                                                                                                'rdelim' => '/',
43970                                                                                                'line' => 423,
43971                                                                                                'mod' => 'i',
43972                                                                                                'ldelim' => '/'
43973                                                                                              }, 'Parse::RecDescent::Token' )
43974                                                                                     ],
43975                                                                          'line' => 423
43976                                                                        }, 'Parse::RecDescent::Production' ),
43977                                                                 bless( {
43978                                                                          'number' => '3',
43979                                                                          'strcount' => 0,
43980                                                                          'dircount' => 0,
43981                                                                          'uncommit' => undef,
43982                                                                          'error' => undef,
43983                                                                          'patcount' => 1,
43984                                                                          'actcount' => 0,
43985                                                                          'items' => [
43986                                                                                       bless( {
43987                                                                                                'pattern' => 'ASIN',
43988                                                                                                'hashname' => '__PATTERN1__',
43989                                                                                                'description' => '/ASIN/i',
43990                                                                                                'lookahead' => 0,
43991                                                                                                'rdelim' => '/',
43992                                                                                                'line' => 424,
43993                                                                                                'mod' => 'i',
43994                                                                                                'ldelim' => '/'
43995                                                                                              }, 'Parse::RecDescent::Token' )
43996                                                                                     ],
43997                                                                          'line' => 424
43998                                                                        }, 'Parse::RecDescent::Production' ),
43999                                                                 bless( {
44000                                                                          'number' => '4',
44001                                                                          'strcount' => 0,
44002                                                                          'dircount' => 0,
44003                                                                          'uncommit' => undef,
44004                                                                          'error' => undef,
44005                                                                          'patcount' => 1,
44006                                                                          'actcount' => 0,
44007                                                                          'items' => [
44008                                                                                       bless( {
44009                                                                                                'pattern' => 'ATAN',
44010                                                                                                'hashname' => '__PATTERN1__',
44011                                                                                                'description' => '/ATAN/i',
44012                                                                                                'lookahead' => 0,
44013                                                                                                'rdelim' => '/',
44014                                                                                                'line' => 425,
44015                                                                                                'mod' => 'i',
44016                                                                                                'ldelim' => '/'
44017                                                                                              }, 'Parse::RecDescent::Token' )
44018                                                                                     ],
44019                                                                          'line' => 425
44020                                                                        }, 'Parse::RecDescent::Production' ),
44021                                                                 bless( {
44022                                                                          'number' => '5',
44023                                                                          'strcount' => 0,
44024                                                                          'dircount' => 0,
44025                                                                          'uncommit' => undef,
44026                                                                          'error' => undef,
44027                                                                          'patcount' => 1,
44028                                                                          'actcount' => 0,
44029                                                                          'items' => [
44030                                                                                       bless( {
44031                                                                                                'pattern' => 'ATAN2',
44032                                                                                                'hashname' => '__PATTERN1__',
44033                                                                                                'description' => '/ATAN2/i',
44034                                                                                                'lookahead' => 0,
44035                                                                                                'rdelim' => '/',
44036                                                                                                'line' => 426,
44037                                                                                                'mod' => 'i',
44038                                                                                                'ldelim' => '/'
44039                                                                                              }, 'Parse::RecDescent::Token' )
44040                                                                                     ],
44041                                                                          'line' => 426
44042                                                                        }, 'Parse::RecDescent::Production' ),
44043                                                                 bless( {
44044                                                                          'number' => '6',
44045                                                                          'strcount' => 0,
44046                                                                          'dircount' => 0,
44047                                                                          'uncommit' => undef,
44048                                                                          'error' => undef,
44049                                                                          'patcount' => 0,
44050                                                                          'actcount' => 0,
44051                                                                          'items' => [
44052                                                                                       bless( {
44053                                                                                                'subrule' => '_alternation_1_of_production_7_of_rule_sysfun',
44054                                                                                                'matchrule' => 0,
44055                                                                                                'implicit' => '/CEIL/i, or /CEILING/i',
44056                                                                                                'argcode' => undef,
44057                                                                                                'lookahead' => 0,
44058                                                                                                'line' => 427
44059                                                                                              }, 'Parse::RecDescent::Subrule' )
44060                                                                                     ],
44061                                                                          'line' => 427
44062                                                                        }, 'Parse::RecDescent::Production' ),
44063                                                                 bless( {
44064                                                                          'number' => '7',
44065                                                                          'strcount' => 0,
44066                                                                          'dircount' => 0,
44067                                                                          'uncommit' => undef,
44068                                                                          'error' => undef,
44069                                                                          'patcount' => 1,
44070                                                                          'actcount' => 0,
44071                                                                          'items' => [
44072                                                                                       bless( {
44073                                                                                                'pattern' => 'CHAR',
44074                                                                                                'hashname' => '__PATTERN1__',
44075                                                                                                'description' => '/CHAR/i',
44076                                                                                                'lookahead' => 0,
44077                                                                                                'rdelim' => '/',
44078                                                                                                'line' => 428,
44079                                                                                                'mod' => 'i',
44080                                                                                                'ldelim' => '/'
44081                                                                                              }, 'Parse::RecDescent::Token' )
44082                                                                                     ],
44083                                                                          'line' => 428
44084                                                                        }, 'Parse::RecDescent::Production' ),
44085                                                                 bless( {
44086                                                                          'number' => '8',
44087                                                                          'strcount' => 0,
44088                                                                          'dircount' => 0,
44089                                                                          'uncommit' => undef,
44090                                                                          'error' => undef,
44091                                                                          'patcount' => 1,
44092                                                                          'actcount' => 0,
44093                                                                          'items' => [
44094                                                                                       bless( {
44095                                                                                                'pattern' => 'CHR',
44096                                                                                                'hashname' => '__PATTERN1__',
44097                                                                                                'description' => '/CHR/i',
44098                                                                                                'lookahead' => 0,
44099                                                                                                'rdelim' => '/',
44100                                                                                                'line' => 429,
44101                                                                                                'mod' => 'i',
44102                                                                                                'ldelim' => '/'
44103                                                                                              }, 'Parse::RecDescent::Token' )
44104                                                                                     ],
44105                                                                          'line' => 429
44106                                                                        }, 'Parse::RecDescent::Production' ),
44107                                                                 bless( {
44108                                                                          'number' => '9',
44109                                                                          'strcount' => 0,
44110                                                                          'dircount' => 0,
44111                                                                          'uncommit' => undef,
44112                                                                          'error' => undef,
44113                                                                          'patcount' => 1,
44114                                                                          'actcount' => 0,
44115                                                                          'items' => [
44116                                                                                       bless( {
44117                                                                                                'pattern' => 'COS',
44118                                                                                                'hashname' => '__PATTERN1__',
44119                                                                                                'description' => '/COS/i',
44120                                                                                                'lookahead' => 0,
44121                                                                                                'rdelim' => '/',
44122                                                                                                'line' => 430,
44123                                                                                                'mod' => 'i',
44124                                                                                                'ldelim' => '/'
44125                                                                                              }, 'Parse::RecDescent::Token' )
44126                                                                                     ],
44127                                                                          'line' => 430
44128                                                                        }, 'Parse::RecDescent::Production' ),
44129                                                                 bless( {
44130                                                                          'number' => '10',
44131                                                                          'strcount' => 0,
44132                                                                          'dircount' => 0,
44133                                                                          'uncommit' => undef,
44134                                                                          'error' => undef,
44135                                                                          'patcount' => 1,
44136                                                                          'actcount' => 0,
44137                                                                          'items' => [
44138                                                                                       bless( {
44139                                                                                                'pattern' => 'COT',
44140                                                                                                'hashname' => '__PATTERN1__',
44141                                                                                                'description' => '/COT/i',
44142                                                                                                'lookahead' => 0,
44143                                                                                                'rdelim' => '/',
44144                                                                                                'line' => 431,
44145                                                                                                'mod' => 'i',
44146                                                                                                'ldelim' => '/'
44147                                                                                              }, 'Parse::RecDescent::Token' )
44148                                                                                     ],
44149                                                                          'line' => 431
44150                                                                        }, 'Parse::RecDescent::Production' ),
44151                                                                 bless( {
44152                                                                          'number' => '11',
44153                                                                          'strcount' => 0,
44154                                                                          'dircount' => 0,
44155                                                                          'uncommit' => undef,
44156                                                                          'error' => undef,
44157                                                                          'patcount' => 1,
44158                                                                          'actcount' => 0,
44159                                                                          'items' => [
44160                                                                                       bless( {
44161                                                                                                'pattern' => 'DAYNAME',
44162                                                                                                'hashname' => '__PATTERN1__',
44163                                                                                                'description' => '/DAYNAME/i',
44164                                                                                                'lookahead' => 0,
44165                                                                                                'rdelim' => '/',
44166                                                                                                'line' => 432,
44167                                                                                                'mod' => 'i',
44168                                                                                                'ldelim' => '/'
44169                                                                                              }, 'Parse::RecDescent::Token' )
44170                                                                                     ],
44171                                                                          'line' => 432
44172                                                                        }, 'Parse::RecDescent::Production' ),
44173                                                                 bless( {
44174                                                                          'number' => '12',
44175                                                                          'strcount' => 0,
44176                                                                          'dircount' => 0,
44177                                                                          'uncommit' => undef,
44178                                                                          'error' => undef,
44179                                                                          'patcount' => 1,
44180                                                                          'actcount' => 0,
44181                                                                          'items' => [
44182                                                                                       bless( {
44183                                                                                                'pattern' => 'DAYOFWEEK',
44184                                                                                                'hashname' => '__PATTERN1__',
44185                                                                                                'description' => '/DAYOFWEEK/i',
44186                                                                                                'lookahead' => 0,
44187                                                                                                'rdelim' => '/',
44188                                                                                                'line' => 433,
44189                                                                                                'mod' => 'i',
44190                                                                                                'ldelim' => '/'
44191                                                                                              }, 'Parse::RecDescent::Token' )
44192                                                                                     ],
44193                                                                          'line' => 433
44194                                                                        }, 'Parse::RecDescent::Production' ),
44195                                                                 bless( {
44196                                                                          'number' => '13',
44197                                                                          'strcount' => 0,
44198                                                                          'dircount' => 0,
44199                                                                          'uncommit' => undef,
44200                                                                          'error' => undef,
44201                                                                          'patcount' => 1,
44202                                                                          'actcount' => 0,
44203                                                                          'items' => [
44204                                                                                       bless( {
44205                                                                                                'pattern' => 'DAYOFWEEK_ISO',
44206                                                                                                'hashname' => '__PATTERN1__',
44207                                                                                                'description' => '/DAYOFWEEK_ISO/i',
44208                                                                                                'lookahead' => 0,
44209                                                                                                'rdelim' => '/',
44210                                                                                                'line' => 434,
44211                                                                                                'mod' => 'i',
44212                                                                                                'ldelim' => '/'
44213                                                                                              }, 'Parse::RecDescent::Token' )
44214                                                                                     ],
44215                                                                          'line' => 434
44216                                                                        }, 'Parse::RecDescent::Production' ),
44217                                                                 bless( {
44218                                                                          'number' => '14',
44219                                                                          'strcount' => 0,
44220                                                                          'dircount' => 0,
44221                                                                          'uncommit' => undef,
44222                                                                          'error' => undef,
44223                                                                          'patcount' => 1,
44224                                                                          'actcount' => 0,
44225                                                                          'items' => [
44226                                                                                       bless( {
44227                                                                                                'pattern' => 'DAYOFYEAR',
44228                                                                                                'hashname' => '__PATTERN1__',
44229                                                                                                'description' => '/DAYOFYEAR/i',
44230                                                                                                'lookahead' => 0,
44231                                                                                                'rdelim' => '/',
44232                                                                                                'line' => 435,
44233                                                                                                'mod' => 'i',
44234                                                                                                'ldelim' => '/'
44235                                                                                              }, 'Parse::RecDescent::Token' )
44236                                                                                     ],
44237                                                                          'line' => 435
44238                                                                        }, 'Parse::RecDescent::Production' ),
44239                                                                 bless( {
44240                                                                          'number' => '15',
44241                                                                          'strcount' => 0,
44242                                                                          'dircount' => 0,
44243                                                                          'uncommit' => undef,
44244                                                                          'error' => undef,
44245                                                                          'patcount' => 1,
44246                                                                          'actcount' => 0,
44247                                                                          'items' => [
44248                                                                                       bless( {
44249                                                                                                'pattern' => 'DEGREES',
44250                                                                                                'hashname' => '__PATTERN1__',
44251                                                                                                'description' => '/DEGREES/i',
44252                                                                                                'lookahead' => 0,
44253                                                                                                'rdelim' => '/',
44254                                                                                                'line' => 436,
44255                                                                                                'mod' => 'i',
44256                                                                                                'ldelim' => '/'
44257                                                                                              }, 'Parse::RecDescent::Token' )
44258                                                                                     ],
44259                                                                          'line' => 436
44260                                                                        }, 'Parse::RecDescent::Production' ),
44261                                                                 bless( {
44262                                                                          'number' => '16',
44263                                                                          'strcount' => 0,
44264                                                                          'dircount' => 0,
44265                                                                          'uncommit' => undef,
44266                                                                          'error' => undef,
44267                                                                          'patcount' => 1,
44268                                                                          'actcount' => 0,
44269                                                                          'items' => [
44270                                                                                       bless( {
44271                                                                                                'pattern' => 'DIFFERENCE',
44272                                                                                                'hashname' => '__PATTERN1__',
44273                                                                                                'description' => '/DIFFERENCE/i',
44274                                                                                                'lookahead' => 0,
44275                                                                                                'rdelim' => '/',
44276                                                                                                'line' => 437,
44277                                                                                                'mod' => 'i',
44278                                                                                                'ldelim' => '/'
44279                                                                                              }, 'Parse::RecDescent::Token' )
44280                                                                                     ],
44281                                                                          'line' => 437
44282                                                                        }, 'Parse::RecDescent::Production' ),
44283                                                                 bless( {
44284                                                                          'number' => '17',
44285                                                                          'strcount' => 0,
44286                                                                          'dircount' => 0,
44287                                                                          'uncommit' => undef,
44288                                                                          'error' => undef,
44289                                                                          'patcount' => 1,
44290                                                                          'actcount' => 0,
44291                                                                          'items' => [
44292                                                                                       bless( {
44293                                                                                                'pattern' => 'DOUBLE',
44294                                                                                                'hashname' => '__PATTERN1__',
44295                                                                                                'description' => '/DOUBLE/i',
44296                                                                                                'lookahead' => 0,
44297                                                                                                'rdelim' => '/',
44298                                                                                                'line' => 438,
44299                                                                                                'mod' => 'i',
44300                                                                                                'ldelim' => '/'
44301                                                                                              }, 'Parse::RecDescent::Token' )
44302                                                                                     ],
44303                                                                          'line' => 438
44304                                                                        }, 'Parse::RecDescent::Production' ),
44305                                                                 bless( {
44306                                                                          'number' => '18',
44307                                                                          'strcount' => 0,
44308                                                                          'dircount' => 0,
44309                                                                          'uncommit' => undef,
44310                                                                          'error' => undef,
44311                                                                          'patcount' => 1,
44312                                                                          'actcount' => 0,
44313                                                                          'items' => [
44314                                                                                       bless( {
44315                                                                                                'pattern' => 'EXP',
44316                                                                                                'hashname' => '__PATTERN1__',
44317                                                                                                'description' => '/EXP/i',
44318                                                                                                'lookahead' => 0,
44319                                                                                                'rdelim' => '/',
44320                                                                                                'line' => 439,
44321                                                                                                'mod' => 'i',
44322                                                                                                'ldelim' => '/'
44323                                                                                              }, 'Parse::RecDescent::Token' )
44324                                                                                     ],
44325                                                                          'line' => 439
44326                                                                        }, 'Parse::RecDescent::Production' ),
44327                                                                 bless( {
44328                                                                          'number' => '19',
44329                                                                          'strcount' => 0,
44330                                                                          'dircount' => 0,
44331                                                                          'uncommit' => undef,
44332                                                                          'error' => undef,
44333                                                                          'patcount' => 1,
44334                                                                          'actcount' => 0,
44335                                                                          'items' => [
44336                                                                                       bless( {
44337                                                                                                'pattern' => 'FLOOR',
44338                                                                                                'hashname' => '__PATTERN1__',
44339                                                                                                'description' => '/FLOOR/i',
44340                                                                                                'lookahead' => 0,
44341                                                                                                'rdelim' => '/',
44342                                                                                                'line' => 440,
44343                                                                                                'mod' => 'i',
44344                                                                                                'ldelim' => '/'
44345                                                                                              }, 'Parse::RecDescent::Token' )
44346                                                                                     ],
44347                                                                          'line' => 440
44348                                                                        }, 'Parse::RecDescent::Production' ),
44349                                                                 bless( {
44350                                                                          'number' => '20',
44351                                                                          'strcount' => 0,
44352                                                                          'dircount' => 0,
44353                                                                          'uncommit' => undef,
44354                                                                          'error' => undef,
44355                                                                          'patcount' => 1,
44356                                                                          'actcount' => 0,
44357                                                                          'items' => [
44358                                                                                       bless( {
44359                                                                                                'pattern' => 'GET_ROUTINE_SAR',
44360                                                                                                'hashname' => '__PATTERN1__',
44361                                                                                                'description' => '/GET_ROUTINE_SAR/i',
44362                                                                                                'lookahead' => 0,
44363                                                                                                'rdelim' => '/',
44364                                                                                                'line' => 441,
44365                                                                                                'mod' => 'i',
44366                                                                                                'ldelim' => '/'
44367                                                                                              }, 'Parse::RecDescent::Token' )
44368                                                                                     ],
44369                                                                          'line' => 441
44370                                                                        }, 'Parse::RecDescent::Production' ),
44371                                                                 bless( {
44372                                                                          'number' => '21',
44373                                                                          'strcount' => 0,
44374                                                                          'dircount' => 0,
44375                                                                          'uncommit' => undef,
44376                                                                          'error' => undef,
44377                                                                          'patcount' => 1,
44378                                                                          'actcount' => 0,
44379                                                                          'items' => [
44380                                                                                       bless( {
44381                                                                                                'pattern' => 'INSERT',
44382                                                                                                'hashname' => '__PATTERN1__',
44383                                                                                                'description' => '/INSERT/i',
44384                                                                                                'lookahead' => 0,
44385                                                                                                'rdelim' => '/',
44386                                                                                                'line' => 442,
44387                                                                                                'mod' => 'i',
44388                                                                                                'ldelim' => '/'
44389                                                                                              }, 'Parse::RecDescent::Token' )
44390                                                                                     ],
44391                                                                          'line' => 442
44392                                                                        }, 'Parse::RecDescent::Production' ),
44393                                                                 bless( {
44394                                                                          'number' => '22',
44395                                                                          'strcount' => 0,
44396                                                                          'dircount' => 0,
44397                                                                          'uncommit' => undef,
44398                                                                          'error' => undef,
44399                                                                          'patcount' => 1,
44400                                                                          'actcount' => 0,
44401                                                                          'items' => [
44402                                                                                       bless( {
44403                                                                                                'pattern' => 'JULIAN_DAY',
44404                                                                                                'hashname' => '__PATTERN1__',
44405                                                                                                'description' => '/JULIAN_DAY/i',
44406                                                                                                'lookahead' => 0,
44407                                                                                                'rdelim' => '/',
44408                                                                                                'line' => 443,
44409                                                                                                'mod' => 'i',
44410                                                                                                'ldelim' => '/'
44411                                                                                              }, 'Parse::RecDescent::Token' )
44412                                                                                     ],
44413                                                                          'line' => 443
44414                                                                        }, 'Parse::RecDescent::Production' ),
44415                                                                 bless( {
44416                                                                          'number' => '23',
44417                                                                          'strcount' => 0,
44418                                                                          'dircount' => 0,
44419                                                                          'uncommit' => undef,
44420                                                                          'error' => undef,
44421                                                                          'patcount' => 1,
44422                                                                          'actcount' => 0,
44423                                                                          'items' => [
44424                                                                                       bless( {
44425                                                                                                'pattern' => 'LCASE',
44426                                                                                                'hashname' => '__PATTERN1__',
44427                                                                                                'description' => '/LCASE/i',
44428                                                                                                'lookahead' => 0,
44429                                                                                                'rdelim' => '/',
44430                                                                                                'line' => 444,
44431                                                                                                'mod' => 'i',
44432                                                                                                'ldelim' => '/'
44433                                                                                              }, 'Parse::RecDescent::Token' )
44434                                                                                     ],
44435                                                                          'line' => 444
44436                                                                        }, 'Parse::RecDescent::Production' ),
44437                                                                 bless( {
44438                                                                          'number' => '24',
44439                                                                          'strcount' => 0,
44440                                                                          'dircount' => 0,
44441                                                                          'uncommit' => undef,
44442                                                                          'error' => undef,
44443                                                                          'patcount' => 1,
44444                                                                          'actcount' => 0,
44445                                                                          'items' => [
44446                                                                                       bless( {
44447                                                                                                'pattern' => 'LEFT',
44448                                                                                                'hashname' => '__PATTERN1__',
44449                                                                                                'description' => '/LEFT/i',
44450                                                                                                'lookahead' => 0,
44451                                                                                                'rdelim' => '/',
44452                                                                                                'line' => 445,
44453                                                                                                'mod' => 'i',
44454                                                                                                'ldelim' => '/'
44455                                                                                              }, 'Parse::RecDescent::Token' )
44456                                                                                     ],
44457                                                                          'line' => 445
44458                                                                        }, 'Parse::RecDescent::Production' ),
44459                                                                 bless( {
44460                                                                          'number' => '25',
44461                                                                          'strcount' => 0,
44462                                                                          'dircount' => 0,
44463                                                                          'uncommit' => undef,
44464                                                                          'error' => undef,
44465                                                                          'patcount' => 1,
44466                                                                          'actcount' => 0,
44467                                                                          'items' => [
44468                                                                                       bless( {
44469                                                                                                'pattern' => 'LN',
44470                                                                                                'hashname' => '__PATTERN1__',
44471                                                                                                'description' => '/LN/i',
44472                                                                                                'lookahead' => 0,
44473                                                                                                'rdelim' => '/',
44474                                                                                                'line' => 446,
44475                                                                                                'mod' => 'i',
44476                                                                                                'ldelim' => '/'
44477                                                                                              }, 'Parse::RecDescent::Token' )
44478                                                                                     ],
44479                                                                          'line' => 446
44480                                                                        }, 'Parse::RecDescent::Production' ),
44481                                                                 bless( {
44482                                                                          'number' => '26',
44483                                                                          'strcount' => 0,
44484                                                                          'dircount' => 0,
44485                                                                          'uncommit' => undef,
44486                                                                          'error' => undef,
44487                                                                          'patcount' => 1,
44488                                                                          'actcount' => 0,
44489                                                                          'items' => [
44490                                                                                       bless( {
44491                                                                                                'pattern' => 'LOCATE',
44492                                                                                                'hashname' => '__PATTERN1__',
44493                                                                                                'description' => '/LOCATE/i',
44494                                                                                                'lookahead' => 0,
44495                                                                                                'rdelim' => '/',
44496                                                                                                'line' => 447,
44497                                                                                                'mod' => 'i',
44498                                                                                                'ldelim' => '/'
44499                                                                                              }, 'Parse::RecDescent::Token' )
44500                                                                                     ],
44501                                                                          'line' => 447
44502                                                                        }, 'Parse::RecDescent::Production' ),
44503                                                                 bless( {
44504                                                                          'number' => '27',
44505                                                                          'strcount' => 0,
44506                                                                          'dircount' => 0,
44507                                                                          'uncommit' => undef,
44508                                                                          'error' => undef,
44509                                                                          'patcount' => 1,
44510                                                                          'actcount' => 0,
44511                                                                          'items' => [
44512                                                                                       bless( {
44513                                                                                                'pattern' => 'LOG',
44514                                                                                                'hashname' => '__PATTERN1__',
44515                                                                                                'description' => '/LOG/i',
44516                                                                                                'lookahead' => 0,
44517                                                                                                'rdelim' => '/',
44518                                                                                                'line' => 448,
44519                                                                                                'mod' => 'i',
44520                                                                                                'ldelim' => '/'
44521                                                                                              }, 'Parse::RecDescent::Token' )
44522                                                                                     ],
44523                                                                          'line' => 448
44524                                                                        }, 'Parse::RecDescent::Production' ),
44525                                                                 bless( {
44526                                                                          'number' => '28',
44527                                                                          'strcount' => 0,
44528                                                                          'dircount' => 0,
44529                                                                          'uncommit' => undef,
44530                                                                          'error' => undef,
44531                                                                          'patcount' => 1,
44532                                                                          'actcount' => 0,
44533                                                                          'items' => [
44534                                                                                       bless( {
44535                                                                                                'pattern' => 'LOG10',
44536                                                                                                'hashname' => '__PATTERN1__',
44537                                                                                                'description' => '/LOG10/i',
44538                                                                                                'lookahead' => 0,
44539                                                                                                'rdelim' => '/',
44540                                                                                                'line' => 449,
44541                                                                                                'mod' => 'i',
44542                                                                                                'ldelim' => '/'
44543                                                                                              }, 'Parse::RecDescent::Token' )
44544                                                                                     ],
44545                                                                          'line' => 449
44546                                                                        }, 'Parse::RecDescent::Production' ),
44547                                                                 bless( {
44548                                                                          'number' => '29',
44549                                                                          'strcount' => 0,
44550                                                                          'dircount' => 0,
44551                                                                          'uncommit' => undef,
44552                                                                          'error' => undef,
44553                                                                          'patcount' => 1,
44554                                                                          'actcount' => 0,
44555                                                                          'items' => [
44556                                                                                       bless( {
44557                                                                                                'pattern' => 'LTRIM',
44558                                                                                                'hashname' => '__PATTERN1__',
44559                                                                                                'description' => '/LTRIM/i',
44560                                                                                                'lookahead' => 0,
44561                                                                                                'rdelim' => '/',
44562                                                                                                'line' => 450,
44563                                                                                                'mod' => 'i',
44564                                                                                                'ldelim' => '/'
44565                                                                                              }, 'Parse::RecDescent::Token' )
44566                                                                                     ],
44567                                                                          'line' => 450
44568                                                                        }, 'Parse::RecDescent::Production' ),
44569                                                                 bless( {
44570                                                                          'number' => '30',
44571                                                                          'strcount' => 0,
44572                                                                          'dircount' => 0,
44573                                                                          'uncommit' => undef,
44574                                                                          'error' => undef,
44575                                                                          'patcount' => 1,
44576                                                                          'actcount' => 0,
44577                                                                          'items' => [
44578                                                                                       bless( {
44579                                                                                                'pattern' => 'MIDNIGHT_SECONDS',
44580                                                                                                'hashname' => '__PATTERN1__',
44581                                                                                                'description' => '/MIDNIGHT_SECONDS/i',
44582                                                                                                'lookahead' => 0,
44583                                                                                                'rdelim' => '/',
44584                                                                                                'line' => 451,
44585                                                                                                'mod' => 'i',
44586                                                                                                'ldelim' => '/'
44587                                                                                              }, 'Parse::RecDescent::Token' )
44588                                                                                     ],
44589                                                                          'line' => 451
44590                                                                        }, 'Parse::RecDescent::Production' ),
44591                                                                 bless( {
44592                                                                          'number' => '31',
44593                                                                          'strcount' => 0,
44594                                                                          'dircount' => 0,
44595                                                                          'uncommit' => undef,
44596                                                                          'error' => undef,
44597                                                                          'patcount' => 1,
44598                                                                          'actcount' => 0,
44599                                                                          'items' => [
44600                                                                                       bless( {
44601                                                                                                'pattern' => 'MOD',
44602                                                                                                'hashname' => '__PATTERN1__',
44603                                                                                                'description' => '/MOD/i',
44604                                                                                                'lookahead' => 0,
44605                                                                                                'rdelim' => '/',
44606                                                                                                'line' => 452,
44607                                                                                                'mod' => 'i',
44608                                                                                                'ldelim' => '/'
44609                                                                                              }, 'Parse::RecDescent::Token' )
44610                                                                                     ],
44611                                                                          'line' => 452
44612                                                                        }, 'Parse::RecDescent::Production' ),
44613                                                                 bless( {
44614                                                                          'number' => '32',
44615                                                                          'strcount' => 0,
44616                                                                          'dircount' => 0,
44617                                                                          'uncommit' => undef,
44618                                                                          'error' => undef,
44619                                                                          'patcount' => 1,
44620                                                                          'actcount' => 0,
44621                                                                          'items' => [
44622                                                                                       bless( {
44623                                                                                                'pattern' => 'MONTHNAME',
44624                                                                                                'hashname' => '__PATTERN1__',
44625                                                                                                'description' => '/MONTHNAME/i',
44626                                                                                                'lookahead' => 0,
44627                                                                                                'rdelim' => '/',
44628                                                                                                'line' => 453,
44629                                                                                                'mod' => 'i',
44630                                                                                                'ldelim' => '/'
44631                                                                                              }, 'Parse::RecDescent::Token' )
44632                                                                                     ],
44633                                                                          'line' => 453
44634                                                                        }, 'Parse::RecDescent::Production' ),
44635                                                                 bless( {
44636                                                                          'number' => '33',
44637                                                                          'strcount' => 0,
44638                                                                          'dircount' => 0,
44639                                                                          'uncommit' => undef,
44640                                                                          'error' => undef,
44641                                                                          'patcount' => 1,
44642                                                                          'actcount' => 0,
44643                                                                          'items' => [
44644                                                                                       bless( {
44645                                                                                                'pattern' => 'POWER',
44646                                                                                                'hashname' => '__PATTERN1__',
44647                                                                                                'description' => '/POWER/i',
44648                                                                                                'lookahead' => 0,
44649                                                                                                'rdelim' => '/',
44650                                                                                                'line' => 454,
44651                                                                                                'mod' => 'i',
44652                                                                                                'ldelim' => '/'
44653                                                                                              }, 'Parse::RecDescent::Token' )
44654                                                                                     ],
44655                                                                          'line' => 454
44656                                                                        }, 'Parse::RecDescent::Production' ),
44657                                                                 bless( {
44658                                                                          'number' => '34',
44659                                                                          'strcount' => 0,
44660                                                                          'dircount' => 0,
44661                                                                          'uncommit' => undef,
44662                                                                          'error' => undef,
44663                                                                          'patcount' => 1,
44664                                                                          'actcount' => 0,
44665                                                                          'items' => [
44666                                                                                       bless( {
44667                                                                                                'pattern' => 'PUT_ROUTINE_SAR',
44668                                                                                                'hashname' => '__PATTERN1__',
44669                                                                                                'description' => '/PUT_ROUTINE_SAR/i',
44670                                                                                                'lookahead' => 0,
44671                                                                                                'rdelim' => '/',
44672                                                                                                'line' => 455,
44673                                                                                                'mod' => 'i',
44674                                                                                                'ldelim' => '/'
44675                                                                                              }, 'Parse::RecDescent::Token' )
44676                                                                                     ],
44677                                                                          'line' => 455
44678                                                                        }, 'Parse::RecDescent::Production' ),
44679                                                                 bless( {
44680                                                                          'number' => '35',
44681                                                                          'strcount' => 0,
44682                                                                          'dircount' => 0,
44683                                                                          'uncommit' => undef,
44684                                                                          'error' => undef,
44685                                                                          'patcount' => 1,
44686                                                                          'actcount' => 0,
44687                                                                          'items' => [
44688                                                                                       bless( {
44689                                                                                                'pattern' => 'QUARTER',
44690                                                                                                'hashname' => '__PATTERN1__',
44691                                                                                                'description' => '/QUARTER/i',
44692                                                                                                'lookahead' => 0,
44693                                                                                                'rdelim' => '/',
44694                                                                                                'line' => 456,
44695                                                                                                'mod' => 'i',
44696                                                                                                'ldelim' => '/'
44697                                                                                              }, 'Parse::RecDescent::Token' )
44698                                                                                     ],
44699                                                                          'line' => 456
44700                                                                        }, 'Parse::RecDescent::Production' ),
44701                                                                 bless( {
44702                                                                          'number' => '36',
44703                                                                          'strcount' => 0,
44704                                                                          'dircount' => 0,
44705                                                                          'uncommit' => undef,
44706                                                                          'error' => undef,
44707                                                                          'patcount' => 1,
44708                                                                          'actcount' => 0,
44709                                                                          'items' => [
44710                                                                                       bless( {
44711                                                                                                'pattern' => 'RADIANS',
44712                                                                                                'hashname' => '__PATTERN1__',
44713                                                                                                'description' => '/RADIANS/i',
44714                                                                                                'lookahead' => 0,
44715                                                                                                'rdelim' => '/',
44716                                                                                                'line' => 457,
44717                                                                                                'mod' => 'i',
44718                                                                                                'ldelim' => '/'
44719                                                                                              }, 'Parse::RecDescent::Token' )
44720                                                                                     ],
44721                                                                          'line' => 457
44722                                                                        }, 'Parse::RecDescent::Production' ),
44723                                                                 bless( {
44724                                                                          'number' => '37',
44725                                                                          'strcount' => 0,
44726                                                                          'dircount' => 0,
44727                                                                          'uncommit' => undef,
44728                                                                          'error' => undef,
44729                                                                          'patcount' => 1,
44730                                                                          'actcount' => 0,
44731                                                                          'items' => [
44732                                                                                       bless( {
44733                                                                                                'pattern' => 'RAND',
44734                                                                                                'hashname' => '__PATTERN1__',
44735                                                                                                'description' => '/RAND/i',
44736                                                                                                'lookahead' => 0,
44737                                                                                                'rdelim' => '/',
44738                                                                                                'line' => 458,
44739                                                                                                'mod' => 'i',
44740                                                                                                'ldelim' => '/'
44741                                                                                              }, 'Parse::RecDescent::Token' )
44742                                                                                     ],
44743                                                                          'line' => 458
44744                                                                        }, 'Parse::RecDescent::Production' ),
44745                                                                 bless( {
44746                                                                          'number' => '38',
44747                                                                          'strcount' => 0,
44748                                                                          'dircount' => 0,
44749                                                                          'uncommit' => undef,
44750                                                                          'error' => undef,
44751                                                                          'patcount' => 1,
44752                                                                          'actcount' => 0,
44753                                                                          'items' => [
44754                                                                                       bless( {
44755                                                                                                'pattern' => 'REPEAT',
44756                                                                                                'hashname' => '__PATTERN1__',
44757                                                                                                'description' => '/REPEAT/i',
44758                                                                                                'lookahead' => 0,
44759                                                                                                'rdelim' => '/',
44760                                                                                                'line' => 459,
44761                                                                                                'mod' => 'i',
44762                                                                                                'ldelim' => '/'
44763                                                                                              }, 'Parse::RecDescent::Token' )
44764                                                                                     ],
44765                                                                          'line' => 459
44766                                                                        }, 'Parse::RecDescent::Production' ),
44767                                                                 bless( {
44768                                                                          'number' => '39',
44769                                                                          'strcount' => 0,
44770                                                                          'dircount' => 0,
44771                                                                          'uncommit' => undef,
44772                                                                          'error' => undef,
44773                                                                          'patcount' => 1,
44774                                                                          'actcount' => 0,
44775                                                                          'items' => [
44776                                                                                       bless( {
44777                                                                                                'pattern' => 'REPLACE',
44778                                                                                                'hashname' => '__PATTERN1__',
44779                                                                                                'description' => '/REPLACE/i',
44780                                                                                                'lookahead' => 0,
44781                                                                                                'rdelim' => '/',
44782                                                                                                'line' => 460,
44783                                                                                                'mod' => 'i',
44784                                                                                                'ldelim' => '/'
44785                                                                                              }, 'Parse::RecDescent::Token' )
44786                                                                                     ],
44787                                                                          'line' => 460
44788                                                                        }, 'Parse::RecDescent::Production' ),
44789                                                                 bless( {
44790                                                                          'number' => '40',
44791                                                                          'strcount' => 0,
44792                                                                          'dircount' => 0,
44793                                                                          'uncommit' => undef,
44794                                                                          'error' => undef,
44795                                                                          'patcount' => 1,
44796                                                                          'actcount' => 0,
44797                                                                          'items' => [
44798                                                                                       bless( {
44799                                                                                                'pattern' => 'RIGHT',
44800                                                                                                'hashname' => '__PATTERN1__',
44801                                                                                                'description' => '/RIGHT/i',
44802                                                                                                'lookahead' => 0,
44803                                                                                                'rdelim' => '/',
44804                                                                                                'line' => 461,
44805                                                                                                'mod' => 'i',
44806                                                                                                'ldelim' => '/'
44807                                                                                              }, 'Parse::RecDescent::Token' )
44808                                                                                     ],
44809                                                                          'line' => 461
44810                                                                        }, 'Parse::RecDescent::Production' ),
44811                                                                 bless( {
44812                                                                          'number' => '41',
44813                                                                          'strcount' => 0,
44814                                                                          'dircount' => 0,
44815                                                                          'uncommit' => undef,
44816                                                                          'error' => undef,
44817                                                                          'patcount' => 1,
44818                                                                          'actcount' => 0,
44819                                                                          'items' => [
44820                                                                                       bless( {
44821                                                                                                'pattern' => 'ROUND',
44822                                                                                                'hashname' => '__PATTERN1__',
44823                                                                                                'description' => '/ROUND/i',
44824                                                                                                'lookahead' => 0,
44825                                                                                                'rdelim' => '/',
44826                                                                                                'line' => 462,
44827                                                                                                'mod' => 'i',
44828                                                                                                'ldelim' => '/'
44829                                                                                              }, 'Parse::RecDescent::Token' )
44830                                                                                     ],
44831                                                                          'line' => 462
44832                                                                        }, 'Parse::RecDescent::Production' ),
44833                                                                 bless( {
44834                                                                          'number' => '42',
44835                                                                          'strcount' => 0,
44836                                                                          'dircount' => 0,
44837                                                                          'uncommit' => undef,
44838                                                                          'error' => undef,
44839                                                                          'patcount' => 1,
44840                                                                          'actcount' => 0,
44841                                                                          'items' => [
44842                                                                                       bless( {
44843                                                                                                'pattern' => 'RTRIM',
44844                                                                                                'hashname' => '__PATTERN1__',
44845                                                                                                'description' => '/RTRIM/',
44846                                                                                                'lookahead' => 0,
44847                                                                                                'rdelim' => '/',
44848                                                                                                'line' => 463,
44849                                                                                                'mod' => '',
44850                                                                                                'ldelim' => '/'
44851                                                                                              }, 'Parse::RecDescent::Token' ),
44852                                                                                       bless( {
44853                                                                                                'subrule' => 'I',
44854                                                                                                'matchrule' => 0,
44855                                                                                                'implicit' => undef,
44856                                                                                                'argcode' => undef,
44857                                                                                                'lookahead' => 0,
44858                                                                                                'line' => 463
44859                                                                                              }, 'Parse::RecDescent::Subrule' )
44860                                                                                     ],
44861                                                                          'line' => 463
44862                                                                        }, 'Parse::RecDescent::Production' ),
44863                                                                 bless( {
44864                                                                          'number' => '43',
44865                                                                          'strcount' => 0,
44866                                                                          'dircount' => 0,
44867                                                                          'uncommit' => undef,
44868                                                                          'error' => undef,
44869                                                                          'patcount' => 1,
44870                                                                          'actcount' => 0,
44871                                                                          'items' => [
44872                                                                                       bless( {
44873                                                                                                'pattern' => 'SIGN',
44874                                                                                                'hashname' => '__PATTERN1__',
44875                                                                                                'description' => '/SIGN/i',
44876                                                                                                'lookahead' => 0,
44877                                                                                                'rdelim' => '/',
44878                                                                                                'line' => 464,
44879                                                                                                'mod' => 'i',
44880                                                                                                'ldelim' => '/'
44881                                                                                              }, 'Parse::RecDescent::Token' )
44882                                                                                     ],
44883                                                                          'line' => 464
44884                                                                        }, 'Parse::RecDescent::Production' ),
44885                                                                 bless( {
44886                                                                          'number' => '44',
44887                                                                          'strcount' => 0,
44888                                                                          'dircount' => 0,
44889                                                                          'uncommit' => undef,
44890                                                                          'error' => undef,
44891                                                                          'patcount' => 1,
44892                                                                          'actcount' => 0,
44893                                                                          'items' => [
44894                                                                                       bless( {
44895                                                                                                'pattern' => 'SIN',
44896                                                                                                'hashname' => '__PATTERN1__',
44897                                                                                                'description' => '/SIN/i',
44898                                                                                                'lookahead' => 0,
44899                                                                                                'rdelim' => '/',
44900                                                                                                'line' => 465,
44901                                                                                                'mod' => 'i',
44902                                                                                                'ldelim' => '/'
44903                                                                                              }, 'Parse::RecDescent::Token' )
44904                                                                                     ],
44905                                                                          'line' => 465
44906                                                                        }, 'Parse::RecDescent::Production' ),
44907                                                                 bless( {
44908                                                                          'number' => '45',
44909                                                                          'strcount' => 0,
44910                                                                          'dircount' => 0,
44911                                                                          'uncommit' => undef,
44912                                                                          'error' => undef,
44913                                                                          'patcount' => 1,
44914                                                                          'actcount' => 0,
44915                                                                          'items' => [
44916                                                                                       bless( {
44917                                                                                                'pattern' => 'SOUNDEX',
44918                                                                                                'hashname' => '__PATTERN1__',
44919                                                                                                'description' => '/SOUNDEX/i',
44920                                                                                                'lookahead' => 0,
44921                                                                                                'rdelim' => '/',
44922                                                                                                'line' => 466,
44923                                                                                                'mod' => 'i',
44924                                                                                                'ldelim' => '/'
44925                                                                                              }, 'Parse::RecDescent::Token' )
44926                                                                                     ],
44927                                                                          'line' => 466
44928                                                                        }, 'Parse::RecDescent::Production' ),
44929                                                                 bless( {
44930                                                                          'number' => '46',
44931                                                                          'strcount' => 0,
44932                                                                          'dircount' => 0,
44933                                                                          'uncommit' => undef,
44934                                                                          'error' => undef,
44935                                                                          'patcount' => 1,
44936                                                                          'actcount' => 0,
44937                                                                          'items' => [
44938                                                                                       bless( {
44939                                                                                                'pattern' => 'SPACE',
44940                                                                                                'hashname' => '__PATTERN1__',
44941                                                                                                'description' => '/SPACE/i',
44942                                                                                                'lookahead' => 0,
44943                                                                                                'rdelim' => '/',
44944                                                                                                'line' => 467,
44945                                                                                                'mod' => 'i',
44946                                                                                                'ldelim' => '/'
44947                                                                                              }, 'Parse::RecDescent::Token' )
44948                                                                                     ],
44949                                                                          'line' => 467
44950                                                                        }, 'Parse::RecDescent::Production' ),
44951                                                                 bless( {
44952                                                                          'number' => '47',
44953                                                                          'strcount' => 0,
44954                                                                          'dircount' => 0,
44955                                                                          'uncommit' => undef,
44956                                                                          'error' => undef,
44957                                                                          'patcount' => 1,
44958                                                                          'actcount' => 0,
44959                                                                          'items' => [
44960                                                                                       bless( {
44961                                                                                                'pattern' => 'SQLCACHE_SNAPSHOT',
44962                                                                                                'hashname' => '__PATTERN1__',
44963                                                                                                'description' => '/SQLCACHE_SNAPSHOT/i',
44964                                                                                                'lookahead' => 0,
44965                                                                                                'rdelim' => '/',
44966                                                                                                'line' => 468,
44967                                                                                                'mod' => 'i',
44968                                                                                                'ldelim' => '/'
44969                                                                                              }, 'Parse::RecDescent::Token' )
44970                                                                                     ],
44971                                                                          'line' => 468
44972                                                                        }, 'Parse::RecDescent::Production' ),
44973                                                                 bless( {
44974                                                                          'number' => '48',
44975                                                                          'strcount' => 0,
44976                                                                          'dircount' => 0,
44977                                                                          'uncommit' => undef,
44978                                                                          'error' => undef,
44979                                                                          'patcount' => 1,
44980                                                                          'actcount' => 0,
44981                                                                          'items' => [
44982                                                                                       bless( {
44983                                                                                                'pattern' => 'SQRT',
44984                                                                                                'hashname' => '__PATTERN1__',
44985                                                                                                'description' => '/SQRT/i',
44986                                                                                                'lookahead' => 0,
44987                                                                                                'rdelim' => '/',
44988                                                                                                'line' => 469,
44989                                                                                                'mod' => 'i',
44990                                                                                                'ldelim' => '/'
44991                                                                                              }, 'Parse::RecDescent::Token' )
44992                                                                                     ],
44993                                                                          'line' => 469
44994                                                                        }, 'Parse::RecDescent::Production' ),
44995                                                                 bless( {
44996                                                                          'number' => '49',
44997                                                                          'strcount' => 0,
44998                                                                          'dircount' => 0,
44999                                                                          'uncommit' => undef,
45000                                                                          'error' => undef,
45001                                                                          'patcount' => 1,
45002                                                                          'actcount' => 0,
45003                                                                          'items' => [
45004                                                                                       bless( {
45005                                                                                                'pattern' => 'TAN',
45006                                                                                                'hashname' => '__PATTERN1__',
45007                                                                                                'description' => '/TAN/i',
45008                                                                                                'lookahead' => 0,
45009                                                                                                'rdelim' => '/',
45010                                                                                                'line' => 470,
45011                                                                                                'mod' => 'i',
45012                                                                                                'ldelim' => '/'
45013                                                                                              }, 'Parse::RecDescent::Token' )
45014                                                                                     ],
45015                                                                          'line' => 470
45016                                                                        }, 'Parse::RecDescent::Production' ),
45017                                                                 bless( {
45018                                                                          'number' => '50',
45019                                                                          'strcount' => 0,
45020                                                                          'dircount' => 0,
45021                                                                          'uncommit' => undef,
45022                                                                          'error' => undef,
45023                                                                          'patcount' => 1,
45024                                                                          'actcount' => 0,
45025                                                                          'items' => [
45026                                                                                       bless( {
45027                                                                                                'pattern' => 'TIMESTAMP_ISO',
45028                                                                                                'hashname' => '__PATTERN1__',
45029                                                                                                'description' => '/TIMESTAMP_ISO/i',
45030                                                                                                'lookahead' => 0,
45031                                                                                                'rdelim' => '/',
45032                                                                                                'line' => 471,
45033                                                                                                'mod' => 'i',
45034                                                                                                'ldelim' => '/'
45035                                                                                              }, 'Parse::RecDescent::Token' )
45036                                                                                     ],
45037                                                                          'line' => 471
45038                                                                        }, 'Parse::RecDescent::Production' ),
45039                                                                 bless( {
45040                                                                          'number' => '51',
45041                                                                          'strcount' => 0,
45042                                                                          'dircount' => 0,
45043                                                                          'uncommit' => undef,
45044                                                                          'error' => undef,
45045                                                                          'patcount' => 1,
45046                                                                          'actcount' => 0,
45047                                                                          'items' => [
45048                                                                                       bless( {
45049                                                                                                'pattern' => 'TIMESTAMPDIFF',
45050                                                                                                'hashname' => '__PATTERN1__',
45051                                                                                                'description' => '/TIMESTAMPDIFF/i',
45052                                                                                                'lookahead' => 0,
45053                                                                                                'rdelim' => '/',
45054                                                                                                'line' => 472,
45055                                                                                                'mod' => 'i',
45056                                                                                                'ldelim' => '/'
45057                                                                                              }, 'Parse::RecDescent::Token' )
45058                                                                                     ],
45059                                                                          'line' => 472
45060                                                                        }, 'Parse::RecDescent::Production' ),
45061                                                                 bless( {
45062                                                                          'number' => '52',
45063                                                                          'strcount' => 0,
45064                                                                          'dircount' => 0,
45065                                                                          'uncommit' => undef,
45066                                                                          'error' => undef,
45067                                                                          'patcount' => 0,
45068                                                                          'actcount' => 0,
45069                                                                          'items' => [
45070                                                                                       bless( {
45071                                                                                                'subrule' => '_alternation_1_of_production_53_of_rule_sysfun',
45072                                                                                                'matchrule' => 0,
45073                                                                                                'implicit' => '/TRUNCATE/i, or /TRUNC/i',
45074                                                                                                'argcode' => undef,
45075                                                                                                'lookahead' => 0,
45076                                                                                                'line' => 473
45077                                                                                              }, 'Parse::RecDescent::Subrule' )
45078                                                                                     ],
45079                                                                          'line' => 473
45080                                                                        }, 'Parse::RecDescent::Production' ),
45081                                                                 bless( {
45082                                                                          'number' => '53',
45083                                                                          'strcount' => 0,
45084                                                                          'dircount' => 0,
45085                                                                          'uncommit' => undef,
45086                                                                          'error' => undef,
45087                                                                          'patcount' => 1,
45088                                                                          'actcount' => 0,
45089                                                                          'items' => [
45090                                                                                       bless( {
45091                                                                                                'pattern' => 'UCASE',
45092                                                                                                'hashname' => '__PATTERN1__',
45093                                                                                                'description' => '/UCASE/i',
45094                                                                                                'lookahead' => 0,
45095                                                                                                'rdelim' => '/',
45096                                                                                                'line' => 474,
45097                                                                                                'mod' => 'i',
45098                                                                                                'ldelim' => '/'
45099                                                                                              }, 'Parse::RecDescent::Token' )
45100                                                                                     ],
45101                                                                          'line' => 474
45102                                                                        }, 'Parse::RecDescent::Production' ),
45103                                                                 bless( {
45104                                                                          'number' => '54',
45105                                                                          'strcount' => 0,
45106                                                                          'dircount' => 0,
45107                                                                          'uncommit' => undef,
45108                                                                          'error' => undef,
45109                                                                          'patcount' => 1,
45110                                                                          'actcount' => 0,
45111                                                                          'items' => [
45112                                                                                       bless( {
45113                                                                                                'pattern' => 'WEEK',
45114                                                                                                'hashname' => '__PATTERN1__',
45115                                                                                                'description' => '/WEEK/i',
45116                                                                                                'lookahead' => 0,
45117                                                                                                'rdelim' => '/',
45118                                                                                                'line' => 475,
45119                                                                                                'mod' => 'i',
45120                                                                                                'ldelim' => '/'
45121                                                                                              }, 'Parse::RecDescent::Token' )
45122                                                                                     ],
45123                                                                          'line' => 475
45124                                                                        }, 'Parse::RecDescent::Production' ),
45125                                                                 bless( {
45126                                                                          'number' => '55',
45127                                                                          'strcount' => 0,
45128                                                                          'dircount' => 0,
45129                                                                          'uncommit' => undef,
45130                                                                          'error' => undef,
45131                                                                          'patcount' => 1,
45132                                                                          'actcount' => 0,
45133                                                                          'items' => [
45134                                                                                       bless( {
45135                                                                                                'pattern' => 'WEEK_ISO',
45136                                                                                                'hashname' => '__PATTERN1__',
45137                                                                                                'description' => '/WEEK_ISO/i',
45138                                                                                                'lookahead' => 0,
45139                                                                                                'rdelim' => '/',
45140                                                                                                'line' => 476,
45141                                                                                                'mod' => 'i',
45142                                                                                                'ldelim' => '/'
45143                                                                                              }, 'Parse::RecDescent::Token' )
45144                                                                                     ],
45145                                                                          'line' => 476
45146                                                                        }, 'Parse::RecDescent::Production' )
45147                                                               ],
45148                                                    'name' => 'sysfun',
45149                                                    'vars' => '',
45150                                                    'line' => 421
45151                                                  }, 'Parse::RecDescent::Rule' ),
45152                               '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond' => bless( {
45153                                                                                                                                'impcount' => 0,
45154                                                                                                                                'calls' => [
45155                                                                                                                                             'numeric_constant'
45156                                                                                                                                           ],
45157                                                                                                                                'changed' => 0,
45158                                                                                                                                'opcount' => 0,
45159                                                                                                                                'prods' => [
45160                                                                                                                                             bless( {
45161                                                                                                                                                      'number' => '0',
45162                                                                                                                                                      'strcount' => 0,
45163                                                                                                                                                      'dircount' => 0,
45164                                                                                                                                                      'uncommit' => undef,
45165                                                                                                                                                      'error' => undef,
45166                                                                                                                                                      'patcount' => 1,
45167                                                                                                                                                      'actcount' => 0,
45168                                                                                                                                                      'items' => [
45169                                                                                                                                                                   bless( {
45170                                                                                                                                                                            'pattern' => 'SELECTIVITY',
45171                                                                                                                                                                            'hashname' => '__PATTERN1__',
45172                                                                                                                                                                            'description' => '/SELECTIVITY/i',
45173                                                                                                                                                                            'lookahead' => 0,
45174                                                                                                                                                                            'rdelim' => '/',
45175                                                                                                                                                                            'line' => 628,
45176                                                                                                                                                                            'mod' => 'i',
45177                                                                                                                                                                            'ldelim' => '/'
45178                                                                                                                                                                          }, 'Parse::RecDescent::Token' ),
45179                                                                                                                                                                   bless( {
45180                                                                                                                                                                            'subrule' => 'numeric_constant',
45181                                                                                                                                                                            'matchrule' => 0,
45182                                                                                                                                                                            'implicit' => undef,
45183                                                                                                                                                                            'argcode' => undef,
45184                                                                                                                                                                            'lookahead' => 0,
45185                                                                                                                                                                            'line' => 628
45186                                                                                                                                                                          }, 'Parse::RecDescent::Subrule' )
45187                                                                                                                                                                 ],
45188                                                                                                                                                      'line' => undef
45189                                                                                                                                                    }, 'Parse::RecDescent::Production' )
45190                                                                                                                                           ],
45191                                                                                                                                'name' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
45192                                                                                                                                'vars' => '',
45193                                                                                                                                'line' => 628
45194                                                                                                                              }, 'Parse::RecDescent::Rule' ),
45195                               'NAME' => bless( {
45196                                                  'impcount' => 0,
45197                                                  'calls' => [],
45198                                                  'changed' => 0,
45199                                                  'opcount' => 0,
45200                                                  'prods' => [
45201                                                               bless( {
45202                                                                        'number' => '0',
45203                                                                        'strcount' => 0,
45204                                                                        'dircount' => 0,
45205                                                                        'uncommit' => undef,
45206                                                                        'error' => undef,
45207                                                                        'patcount' => 1,
45208                                                                        'actcount' => 0,
45209                                                                        'items' => [
45210                                                                                     bless( {
45211                                                                                              'pattern' => '\\w+',
45212                                                                                              'hashname' => '__PATTERN1__',
45213                                                                                              'description' => '/\\\\w+/',
45214                                                                                              'lookahead' => 0,
45215                                                                                              'rdelim' => '/',
45216                                                                                              'line' => 146,
45217                                                                                              'mod' => '',
45218                                                                                              'ldelim' => '/'
45219                                                                                            }, 'Parse::RecDescent::Token' )
45220                                                                                   ],
45221                                                                        'line' => undef
45222                                                                      }, 'Parse::RecDescent::Production' ),
45223                                                               bless( {
45224                                                                        'number' => '1',
45225                                                                        'strcount' => 0,
45226                                                                        'dircount' => 0,
45227                                                                        'uncommit' => undef,
45228                                                                        'error' => undef,
45229                                                                        'patcount' => 1,
45230                                                                        'actcount' => 0,
45231                                                                        'items' => [
45232                                                                                     bless( {
45233                                                                                              'pattern' => '\\w{1,18}',
45234                                                                                              'hashname' => '__PATTERN1__',
45235                                                                                              'description' => '/\\\\w\\{1,18\\}/',
45236                                                                                              'lookahead' => 0,
45237                                                                                              'rdelim' => '/',
45238                                                                                              'line' => 148,
45239                                                                                              'mod' => '',
45240                                                                                              'ldelim' => '/'
45241                                                                                            }, 'Parse::RecDescent::Token' )
45242                                                                                   ],
45243                                                                        'line' => undef
45244                                                                      }, 'Parse::RecDescent::Production' )
45245                                                             ],
45246                                                  'name' => 'NAME',
45247                                                  'vars' => '',
45248                                                  'line' => 146
45249                                                }, 'Parse::RecDescent::Rule' ),
45250                               'constant' => bless( {
45251                                                      'impcount' => 0,
45252                                                      'calls' => [
45253                                                                   'int_const',
45254                                                                   'float_const',
45255                                                                   'dec_const',
45256                                                                   'char_const',
45257                                                                   'hex_const',
45258                                                                   'grastr_const'
45259                                                                 ],
45260                                                      'changed' => 0,
45261                                                      'opcount' => 0,
45262                                                      'prods' => [
45263                                                                   bless( {
45264                                                                            'number' => '0',
45265                                                                            'strcount' => 0,
45266                                                                            'dircount' => 0,
45267                                                                            'uncommit' => undef,
45268                                                                            'error' => undef,
45269                                                                            'patcount' => 0,
45270                                                                            'actcount' => 0,
45271                                                                            'items' => [
45272                                                                                         bless( {
45273                                                                                                  'subrule' => 'int_const',
45274                                                                                                  'matchrule' => 0,
45275                                                                                                  'implicit' => undef,
45276                                                                                                  'argcode' => undef,
45277                                                                                                  'lookahead' => 0,
45278                                                                                                  'line' => 328
45279                                                                                                }, 'Parse::RecDescent::Subrule' )
45280                                                                                       ],
45281                                                                            'line' => undef
45282                                                                          }, 'Parse::RecDescent::Production' ),
45283                                                                   bless( {
45284                                                                            'number' => '1',
45285                                                                            'strcount' => 0,
45286                                                                            'dircount' => 0,
45287                                                                            'uncommit' => undef,
45288                                                                            'error' => undef,
45289                                                                            'patcount' => 0,
45290                                                                            'actcount' => 0,
45291                                                                            'items' => [
45292                                                                                         bless( {
45293                                                                                                  'subrule' => 'float_const',
45294                                                                                                  'matchrule' => 0,
45295                                                                                                  'implicit' => undef,
45296                                                                                                  'argcode' => undef,
45297                                                                                                  'lookahead' => 0,
45298                                                                                                  'line' => 328
45299                                                                                                }, 'Parse::RecDescent::Subrule' )
45300                                                                                       ],
45301                                                                            'line' => 328
45302                                                                          }, 'Parse::RecDescent::Production' ),
45303                                                                   bless( {
45304                                                                            'number' => '2',
45305                                                                            'strcount' => 0,
45306                                                                            'dircount' => 0,
45307                                                                            'uncommit' => undef,
45308                                                                            'error' => undef,
45309                                                                            'patcount' => 0,
45310                                                                            'actcount' => 0,
45311                                                                            'items' => [
45312                                                                                         bless( {
45313                                                                                                  'subrule' => 'dec_const',
45314                                                                                                  'matchrule' => 0,
45315                                                                                                  'implicit' => undef,
45316                                                                                                  'argcode' => undef,
45317                                                                                                  'lookahead' => 0,
45318                                                                                                  'line' => 328
45319                                                                                                }, 'Parse::RecDescent::Subrule' )
45320                                                                                       ],
45321                                                                            'line' => 328
45322                                                                          }, 'Parse::RecDescent::Production' ),
45323                                                                   bless( {
45324                                                                            'number' => '3',
45325                                                                            'strcount' => 0,
45326                                                                            'dircount' => 0,
45327                                                                            'uncommit' => undef,
45328                                                                            'error' => undef,
45329                                                                            'patcount' => 0,
45330                                                                            'actcount' => 0,
45331                                                                            'items' => [
45332                                                                                         bless( {
45333                                                                                                  'subrule' => 'char_const',
45334                                                                                                  'matchrule' => 0,
45335                                                                                                  'implicit' => undef,
45336                                                                                                  'argcode' => undef,
45337                                                                                                  'lookahead' => 0,
45338                                                                                                  'line' => 328
45339                                                                                                }, 'Parse::RecDescent::Subrule' )
45340                                                                                       ],
45341                                                                            'line' => 328
45342                                                                          }, 'Parse::RecDescent::Production' ),
45343                                                                   bless( {
45344                                                                            'number' => '4',
45345                                                                            'strcount' => 0,
45346                                                                            'dircount' => 0,
45347                                                                            'uncommit' => undef,
45348                                                                            'error' => undef,
45349                                                                            'patcount' => 0,
45350                                                                            'actcount' => 0,
45351                                                                            'items' => [
45352                                                                                         bless( {
45353                                                                                                  'subrule' => 'hex_const',
45354                                                                                                  'matchrule' => 0,
45355                                                                                                  'implicit' => undef,
45356                                                                                                  'argcode' => undef,
45357                                                                                                  'lookahead' => 0,
45358                                                                                                  'line' => 328
45359                                                                                                }, 'Parse::RecDescent::Subrule' )
45360                                                                                       ],
45361                                                                            'line' => 328
45362                                                                          }, 'Parse::RecDescent::Production' ),
45363                                                                   bless( {
45364                                                                            'number' => '5',
45365                                                                            'strcount' => 0,
45366                                                                            'dircount' => 0,
45367                                                                            'uncommit' => undef,
45368                                                                            'error' => undef,
45369                                                                            'patcount' => 0,
45370                                                                            'actcount' => 0,
45371                                                                            'items' => [
45372                                                                                         bless( {
45373                                                                                                  'subrule' => 'grastr_const',
45374                                                                                                  'matchrule' => 0,
45375                                                                                                  'implicit' => undef,
45376                                                                                                  'argcode' => undef,
45377                                                                                                  'lookahead' => 0,
45378                                                                                                  'line' => 328
45379                                                                                                }, 'Parse::RecDescent::Subrule' )
45380                                                                                       ],
45381                                                                            'line' => 328
45382                                                                          }, 'Parse::RecDescent::Production' )
45383                                                                 ],
45384                                                      'name' => 'constant',
45385                                                      'vars' => '',
45386                                                      'line' => 328
45387                                                    }, 'Parse::RecDescent::Rule' ),
45388                               '_alternation_1_of_production_1_of_rule_ranking_function' => bless( {
45389                                                                                                     'impcount' => 0,
45390                                                                                                     'calls' => [],
45391                                                                                                     'changed' => 0,
45392                                                                                                     'opcount' => 0,
45393                                                                                                     'prods' => [
45394                                                                                                                  bless( {
45395                                                                                                                           'number' => '0',
45396                                                                                                                           'strcount' => 1,
45397                                                                                                                           'dircount' => 0,
45398                                                                                                                           'uncommit' => undef,
45399                                                                                                                           'error' => undef,
45400                                                                                                                           'patcount' => 1,
45401                                                                                                                           'actcount' => 0,
45402                                                                                                                           'items' => [
45403                                                                                                                                        bless( {
45404                                                                                                                                                 'pattern' => 'RANK',
45405                                                                                                                                                 'hashname' => '__PATTERN1__',
45406                                                                                                                                                 'description' => '/RANK/',
45407                                                                                                                                                 'lookahead' => 0,
45408                                                                                                                                                 'rdelim' => '/',
45409                                                                                                                                                 'line' => 626,
45410                                                                                                                                                 'mod' => '',
45411                                                                                                                                                 'ldelim' => '/'
45412                                                                                                                                               }, 'Parse::RecDescent::Token' ),
45413                                                                                                                                        bless( {
45414                                                                                                                                                 'pattern' => '()',
45415                                                                                                                                                 'hashname' => '__STRING1__',
45416                                                                                                                                                 'description' => '\'()\'',
45417                                                                                                                                                 'lookahead' => 0,
45418                                                                                                                                                 'line' => 626
45419                                                                                                                                               }, 'Parse::RecDescent::Literal' )
45420                                                                                                                                      ],
45421                                                                                                                           'line' => undef
45422                                                                                                                         }, 'Parse::RecDescent::Production' ),
45423                                                                                                                  bless( {
45424                                                                                                                           'number' => '1',
45425                                                                                                                           'strcount' => 1,
45426                                                                                                                           'dircount' => 0,
45427                                                                                                                           'uncommit' => undef,
45428                                                                                                                           'error' => undef,
45429                                                                                                                           'patcount' => 1,
45430                                                                                                                           'actcount' => 0,
45431                                                                                                                           'items' => [
45432                                                                                                                                        bless( {
45433                                                                                                                                                 'pattern' => 'DENSE_RANK|DENSERANK',
45434                                                                                                                                                 'hashname' => '__PATTERN1__',
45435                                                                                                                                                 'description' => '/DENSE_RANK|DENSERANK/i',
45436                                                                                                                                                 'lookahead' => 0,
45437                                                                                                                                                 'rdelim' => '/',
45438                                                                                                                                                 'line' => 627,
45439                                                                                                                                                 'mod' => 'i',
45440                                                                                                                                                 'ldelim' => '/'
45441                                                                                                                                               }, 'Parse::RecDescent::Token' ),
45442                                                                                                                                        bless( {
45443                                                                                                                                                 'pattern' => '()',
45444                                                                                                                                                 'hashname' => '__STRING1__',
45445                                                                                                                                                 'description' => '\'()\'',
45446                                                                                                                                                 'lookahead' => 0,
45447                                                                                                                                                 'line' => 627
45448                                                                                                                                               }, 'Parse::RecDescent::Literal' )
45449                                                                                                                                      ],
45450                                                                                                                           'line' => 627
45451                                                                                                                         }, 'Parse::RecDescent::Production' )
45452                                                                                                                ],
45453                                                                                                     'name' => '_alternation_1_of_production_1_of_rule_ranking_function',
45454                                                                                                     'vars' => '',
45455                                                                                                     'line' => 626
45456                                                                                                   }, 'Parse::RecDescent::Rule' ),
45457                               'window_aggregation_group_clause' => bless( {
45458                                                                             'impcount' => 2,
45459                                                                             'calls' => [
45460                                                                                          '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
45461                                                                                          '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause'
45462                                                                                        ],
45463                                                                             'changed' => 0,
45464                                                                             'opcount' => 0,
45465                                                                             'prods' => [
45466                                                                                          bless( {
45467                                                                                                   'number' => '0',
45468                                                                                                   'strcount' => 0,
45469                                                                                                   'dircount' => 0,
45470                                                                                                   'uncommit' => undef,
45471                                                                                                   'error' => undef,
45472                                                                                                   'patcount' => 0,
45473                                                                                                   'actcount' => 0,
45474                                                                                                   'items' => [
45475                                                                                                                bless( {
45476                                                                                                                         'subrule' => '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
45477                                                                                                                         'matchrule' => 0,
45478                                                                                                                         'implicit' => '/ROWS/i, or /RANGE/i',
45479                                                                                                                         'argcode' => undef,
45480                                                                                                                         'lookahead' => 0,
45481                                                                                                                         'line' => 568
45482                                                                                                                       }, 'Parse::RecDescent::Subrule' ),
45483                                                                                                                bless( {
45484                                                                                                                         'subrule' => '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause',
45485                                                                                                                         'matchrule' => 0,
45486                                                                                                                         'implicit' => 'group_start, or group_between, or group_end',
45487                                                                                                                         'argcode' => undef,
45488                                                                                                                         'lookahead' => 0,
45489                                                                                                                         'line' => 572
45490                                                                                                                       }, 'Parse::RecDescent::Subrule' )
45491                                                                                                              ],
45492                                                                                                   'line' => undef
45493                                                                                                 }, 'Parse::RecDescent::Production' )
45494                                                                                        ],
45495                                                                             'name' => 'window_aggregation_group_clause',
45496                                                                             'vars' => '',
45497                                                                             'line' => 566
45498                                                                           }, 'Parse::RecDescent::Rule' ),
45499                               '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause' => bless( {
45500                                                                                                                    'impcount' => 0,
45501                                                                                                                    'calls' => [
45502                                                                                                                                 'group_start',
45503                                                                                                                                 'group_between',
45504                                                                                                                                 'group_end'
45505                                                                                                                               ],
45506                                                                                                                    'changed' => 0,
45507                                                                                                                    'opcount' => 0,
45508                                                                                                                    'prods' => [
45509                                                                                                                                 bless( {
45510                                                                                                                                          'number' => '0',
45511                                                                                                                                          'strcount' => 0,
45512                                                                                                                                          'dircount' => 0,
45513                                                                                                                                          'uncommit' => undef,
45514                                                                                                                                          'error' => undef,
45515                                                                                                                                          'patcount' => 0,
45516                                                                                                                                          'actcount' => 0,
45517                                                                                                                                          'items' => [
45518                                                                                                                                                       bless( {
45519                                                                                                                                                                'subrule' => 'group_start',
45520                                                                                                                                                                'matchrule' => 0,
45521                                                                                                                                                                'implicit' => undef,
45522                                                                                                                                                                'argcode' => undef,
45523                                                                                                                                                                'lookahead' => 0,
45524                                                                                                                                                                'line' => 625
45525                                                                                                                                                              }, 'Parse::RecDescent::Subrule' )
45526                                                                                                                                                     ],
45527                                                                                                                                          'line' => undef
45528                                                                                                                                        }, 'Parse::RecDescent::Production' ),
45529                                                                                                                                 bless( {
45530                                                                                                                                          'number' => '1',
45531                                                                                                                                          'strcount' => 0,
45532                                                                                                                                          'dircount' => 0,
45533                                                                                                                                          'uncommit' => undef,
45534                                                                                                                                          'error' => undef,
45535                                                                                                                                          'patcount' => 0,
45536                                                                                                                                          'actcount' => 0,
45537                                                                                                                                          'items' => [
45538                                                                                                                                                       bless( {
45539                                                                                                                                                                'subrule' => 'group_between',
45540                                                                                                                                                                'matchrule' => 0,
45541                                                                                                                                                                'implicit' => undef,
45542                                                                                                                                                                'argcode' => undef,
45543                                                                                                                                                                'lookahead' => 0,
45544                                                                                                                                                                'line' => 626
45545                                                                                                                                                              }, 'Parse::RecDescent::Subrule' )
45546                                                                                                                                                     ],
45547                                                                                                                                          'line' => 626
45548                                                                                                                                        }, 'Parse::RecDescent::Production' ),
45549                                                                                                                                 bless( {
45550                                                                                                                                          'number' => '2',
45551                                                                                                                                          'strcount' => 0,
45552                                                                                                                                          'dircount' => 0,
45553                                                                                                                                          'uncommit' => undef,
45554                                                                                                                                          'error' => undef,
45555                                                                                                                                          'patcount' => 0,
45556                                                                                                                                          'actcount' => 0,
45557                                                                                                                                          'items' => [
45558                                                                                                                                                       bless( {
45559                                                                                                                                                                'subrule' => 'group_end',
45560                                                                                                                                                                'matchrule' => 0,
45561                                                                                                                                                                'implicit' => undef,
45562                                                                                                                                                                'argcode' => undef,
45563                                                                                                                                                                'lookahead' => 0,
45564                                                                                                                                                                'line' => 627
45565                                                                                                                                                              }, 'Parse::RecDescent::Subrule' )
45566                                                                                                                                                     ],
45567                                                                                                                                          'line' => 627
45568                                                                                                                                        }, 'Parse::RecDescent::Production' )
45569                                                                                                                               ],
45570                                                                                                                    'name' => '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause',
45571                                                                                                                    'vars' => '',
45572                                                                                                                    'line' => 625
45573                                                                                                                  }, 'Parse::RecDescent::Rule' ),
45574                               'VIEW' => bless( {
45575                                                  'impcount' => 0,
45576                                                  'calls' => [],
45577                                                  'changed' => 0,
45578                                                  'opcount' => 0,
45579                                                  'prods' => [
45580                                                               bless( {
45581                                                                        'number' => '0',
45582                                                                        'strcount' => 0,
45583                                                                        'dircount' => 0,
45584                                                                        'uncommit' => undef,
45585                                                                        'error' => undef,
45586                                                                        'patcount' => 1,
45587                                                                        'actcount' => 0,
45588                                                                        'items' => [
45589                                                                                     bless( {
45590                                                                                              'pattern' => 'view',
45591                                                                                              'hashname' => '__PATTERN1__',
45592                                                                                              'description' => '/view/i',
45593                                                                                              'lookahead' => 0,
45594                                                                                              'rdelim' => '/',
45595                                                                                              'line' => 105,
45596                                                                                              'mod' => 'i',
45597                                                                                              'ldelim' => '/'
45598                                                                                            }, 'Parse::RecDescent::Token' )
45599                                                                                   ],
45600                                                                        'line' => undef
45601                                                                      }, 'Parse::RecDescent::Production' )
45602                                                             ],
45603                                                  'name' => 'VIEW',
45604                                                  'vars' => '',
45605                                                  'line' => 105
45606                                                }, 'Parse::RecDescent::Rule' ),
45607                               'with_expression' => bless( {
45608                                                             'impcount' => 0,
45609                                                             'calls' => [
45610                                                                          'common_table_expression'
45611                                                                        ],
45612                                                             'changed' => 0,
45613                                                             'opcount' => 0,
45614                                                             'prods' => [
45615                                                                          bless( {
45616                                                                                   'number' => '0',
45617                                                                                   'strcount' => 0,
45618                                                                                   'dircount' => 1,
45619                                                                                   'uncommit' => undef,
45620                                                                                   'error' => undef,
45621                                                                                   'patcount' => 2,
45622                                                                                   'actcount' => 1,
45623                                                                                   'op' => [],
45624                                                                                   'items' => [
45625                                                                                                bless( {
45626                                                                                                         'pattern' => 'WITH',
45627                                                                                                         'hashname' => '__PATTERN1__',
45628                                                                                                         'description' => '/WITH/i',
45629                                                                                                         'lookahead' => 0,
45630                                                                                                         'rdelim' => '/',
45631                                                                                                         'line' => 89,
45632                                                                                                         'mod' => 'i',
45633                                                                                                         'ldelim' => '/'
45634                                                                                                       }, 'Parse::RecDescent::Token' ),
45635                                                                                                bless( {
45636                                                                                                         'expected' => '<leftop: common_table_expression /,/ common_table_expression>',
45637                                                                                                         'min' => 1,
45638                                                                                                         'name' => '\'common_table_expression(s)\'',
45639                                                                                                         'max' => 100000000,
45640                                                                                                         'leftarg' => bless( {
45641                                                                                                                               'subrule' => 'common_table_expression',
45642                                                                                                                               'matchrule' => 0,
45643                                                                                                                               'implicit' => undef,
45644                                                                                                                               'argcode' => undef,
45645                                                                                                                               'lookahead' => 0,
45646                                                                                                                               'line' => 89
45647                                                                                                                             }, 'Parse::RecDescent::Subrule' ),
45648                                                                                                         'rightarg' => bless( {
45649                                                                                                                                'subrule' => 'common_table_expression',
45650                                                                                                                                'matchrule' => 0,
45651                                                                                                                                'implicit' => undef,
45652                                                                                                                                'argcode' => undef,
45653                                                                                                                                'lookahead' => 0,
45654                                                                                                                                'line' => 89
45655                                                                                                                              }, 'Parse::RecDescent::Subrule' ),
45656                                                                                                         'hashname' => '__DIRECTIVE1__',
45657                                                                                                         'type' => 'leftop',
45658                                                                                                         'op' => bless( {
45659                                                                                                                          'pattern' => ',',
45660                                                                                                                          'hashname' => '__PATTERN2__',
45661                                                                                                                          'description' => '/,/',
45662                                                                                                                          'lookahead' => 0,
45663                                                                                                                          'rdelim' => '/',
45664                                                                                                                          'line' => 89,
45665                                                                                                                          'mod' => '',
45666                                                                                                                          'ldelim' => '/'
45667                                                                                                                        }, 'Parse::RecDescent::Token' )
45668                                                                                                       }, 'Parse::RecDescent::Operator' ),
45669                                                                                                bless( {
45670                                                                                                         'hashname' => '__ACTION1__',
45671                                                                                                         'lookahead' => 0,
45672                                                                                                         'line' => 90,
45673                                                                                                         'code' => '{
45674     $return = $item{\'common_table_expression\'};
45675 }'
45676                                                                                                       }, 'Parse::RecDescent::Action' )
45677                                                                                              ],
45678                                                                                   'line' => undef
45679                                                                                 }, 'Parse::RecDescent::Production' )
45680                                                                        ],
45681                                                             'name' => 'with_expression',
45682                                                             'vars' => '',
45683                                                             'line' => 87
45684                                                           }, 'Parse::RecDescent::Rule' ),
45685                               'numeric_constant' => bless( {
45686                                                              'impcount' => 0,
45687                                                              'calls' => [],
45688                                                              'changed' => 0,
45689                                                              'opcount' => 0,
45690                                                              'prods' => [
45691                                                                           bless( {
45692                                                                                    'number' => '0',
45693                                                                                    'strcount' => 0,
45694                                                                                    'dircount' => 0,
45695                                                                                    'uncommit' => undef,
45696                                                                                    'error' => undef,
45697                                                                                    'patcount' => 1,
45698                                                                                    'actcount' => 0,
45699                                                                                    'items' => [
45700                                                                                                 bless( {
45701                                                                                                          'pattern' => '\\d+',
45702                                                                                                          'hashname' => '__PATTERN1__',
45703                                                                                                          'description' => '/\\\\d+/',
45704                                                                                                          'lookahead' => 0,
45705                                                                                                          'rdelim' => '/',
45706                                                                                                          'line' => 140,
45707                                                                                                          'mod' => '',
45708                                                                                                          'ldelim' => '/'
45709                                                                                                        }, 'Parse::RecDescent::Token' )
45710                                                                                               ],
45711                                                                                    'line' => undef
45712                                                                                  }, 'Parse::RecDescent::Production' )
45713                                                                         ],
45714                                                              'name' => 'numeric_constant',
45715                                                              'vars' => '',
45716                                                              'line' => 140
45717                                                            }, 'Parse::RecDescent::Rule' ),
45718                               'old_new_table' => bless( {
45719                                                           'impcount' => 0,
45720                                                           'calls' => [
45721                                                                        'identifier'
45722                                                                      ],
45723                                                           'changed' => 0,
45724                                                           'opcount' => 0,
45725                                                           'prods' => [
45726                                                                        bless( {
45727                                                                                 'number' => '0',
45728                                                                                 'strcount' => 0,
45729                                                                                 'dircount' => 0,
45730                                                                                 'uncommit' => undef,
45731                                                                                 'error' => undef,
45732                                                                                 'patcount' => 2,
45733                                                                                 'actcount' => 1,
45734                                                                                 'items' => [
45735                                                                                              bless( {
45736                                                                                                       'pattern' => 'OLD_TABLE',
45737                                                                                                       'hashname' => '__PATTERN1__',
45738                                                                                                       'description' => '/OLD_TABLE/i',
45739                                                                                                       'lookahead' => 0,
45740                                                                                                       'rdelim' => '/',
45741                                                                                                       'line' => 291,
45742                                                                                                       'mod' => 'i',
45743                                                                                                       'ldelim' => '/'
45744                                                                                                     }, 'Parse::RecDescent::Token' ),
45745                                                                                              bless( {
45746                                                                                                       'pattern' => '(AS)?',
45747                                                                                                       'hashname' => '__PATTERN2__',
45748                                                                                                       'description' => '/(AS)?/i',
45749                                                                                                       'lookahead' => 0,
45750                                                                                                       'rdelim' => '/',
45751                                                                                                       'line' => 291,
45752                                                                                                       'mod' => 'i',
45753                                                                                                       'ldelim' => '/'
45754                                                                                                     }, 'Parse::RecDescent::Token' ),
45755                                                                                              bless( {
45756                                                                                                       'subrule' => 'identifier',
45757                                                                                                       'matchrule' => 0,
45758                                                                                                       'implicit' => undef,
45759                                                                                                       'argcode' => undef,
45760                                                                                                       'lookahead' => 0,
45761                                                                                                       'line' => 291
45762                                                                                                     }, 'Parse::RecDescent::Subrule' ),
45763                                                                                              bless( {
45764                                                                                                       'hashname' => '__ACTION1__',
45765                                                                                                       'lookahead' => 0,
45766                                                                                                       'line' => 292,
45767                                                                                                       'code' => '{ $return = join(\' \', @item[1..3] ) }'
45768                                                                                                     }, 'Parse::RecDescent::Action' )
45769                                                                                            ],
45770                                                                                 'line' => undef
45771                                                                               }, 'Parse::RecDescent::Production' ),
45772                                                                        bless( {
45773                                                                                 'number' => '1',
45774                                                                                 'strcount' => 0,
45775                                                                                 'dircount' => 0,
45776                                                                                 'uncommit' => undef,
45777                                                                                 'error' => undef,
45778                                                                                 'patcount' => 2,
45779                                                                                 'actcount' => 1,
45780                                                                                 'items' => [
45781                                                                                              bless( {
45782                                                                                                       'pattern' => 'NEW_TABLE',
45783                                                                                                       'hashname' => '__PATTERN1__',
45784                                                                                                       'description' => '/NEW_TABLE/i',
45785                                                                                                       'lookahead' => 0,
45786                                                                                                       'rdelim' => '/',
45787                                                                                                       'line' => 293,
45788                                                                                                       'mod' => 'i',
45789                                                                                                       'ldelim' => '/'
45790                                                                                                     }, 'Parse::RecDescent::Token' ),
45791                                                                                              bless( {
45792                                                                                                       'pattern' => '(AS)?',
45793                                                                                                       'hashname' => '__PATTERN2__',
45794                                                                                                       'description' => '/(AS)?/i',
45795                                                                                                       'lookahead' => 0,
45796                                                                                                       'rdelim' => '/',
45797                                                                                                       'line' => 293,
45798                                                                                                       'mod' => 'i',
45799                                                                                                       'ldelim' => '/'
45800                                                                                                     }, 'Parse::RecDescent::Token' ),
45801                                                                                              bless( {
45802                                                                                                       'subrule' => 'identifier',
45803                                                                                                       'matchrule' => 0,
45804                                                                                                       'implicit' => undef,
45805                                                                                                       'argcode' => undef,
45806                                                                                                       'lookahead' => 0,
45807                                                                                                       'line' => 293
45808                                                                                                     }, 'Parse::RecDescent::Subrule' ),
45809                                                                                              bless( {
45810                                                                                                       'hashname' => '__ACTION1__',
45811                                                                                                       'lookahead' => 0,
45812                                                                                                       'line' => 294,
45813                                                                                                       'code' => '{ $return = join(\' \', @item[1..3] ) }'
45814                                                                                                     }, 'Parse::RecDescent::Action' )
45815                                                                                            ],
45816                                                                                 'line' => 293
45817                                                                               }, 'Parse::RecDescent::Production' )
45818                                                                      ],
45819                                                           'name' => 'old_new_table',
45820                                                           'vars' => '',
45821                                                           'line' => 291
45822                                                         }, 'Parse::RecDescent::Rule' ),
45823                               '_alternation_1_of_production_1_of_rule_numbering_function' => bless( {
45824                                                                                                       'impcount' => 0,
45825                                                                                                       'calls' => [
45826                                                                                                                    'window_order_clause',
45827                                                                                                                    'window_aggregation_group_clause'
45828                                                                                                                  ],
45829                                                                                                       'changed' => 0,
45830                                                                                                       'opcount' => 0,
45831                                                                                                       'prods' => [
45832                                                                                                                    bless( {
45833                                                                                                                             'number' => '0',
45834                                                                                                                             'strcount' => 0,
45835                                                                                                                             'dircount' => 0,
45836                                                                                                                             'uncommit' => undef,
45837                                                                                                                             'error' => undef,
45838                                                                                                                             'patcount' => 0,
45839                                                                                                                             'actcount' => 0,
45840                                                                                                                             'items' => [
45841                                                                                                                                          bless( {
45842                                                                                                                                                   'subrule' => 'window_order_clause',
45843                                                                                                                                                   'matchrule' => 0,
45844                                                                                                                                                   'implicit' => undef,
45845                                                                                                                                                   'argcode' => undef,
45846                                                                                                                                                   'lookahead' => 0,
45847                                                                                                                                                   'line' => 627
45848                                                                                                                                                 }, 'Parse::RecDescent::Subrule' ),
45849                                                                                                                                          bless( {
45850                                                                                                                                                   'subrule' => 'window_aggregation_group_clause',
45851                                                                                                                                                   'expected' => undef,
45852                                                                                                                                                   'min' => 0,
45853                                                                                                                                                   'argcode' => undef,
45854                                                                                                                                                   'max' => 1,
45855                                                                                                                                                   'matchrule' => 0,
45856                                                                                                                                                   'repspec' => '?',
45857                                                                                                                                                   'lookahead' => 0,
45858                                                                                                                                                   'line' => 627
45859                                                                                                                                                 }, 'Parse::RecDescent::Repetition' )
45860                                                                                                                                        ],
45861                                                                                                                             'line' => undef
45862                                                                                                                           }, 'Parse::RecDescent::Production' )
45863                                                                                                                  ],
45864                                                                                                       'name' => '_alternation_1_of_production_1_of_rule_numbering_function',
45865                                                                                                       'vars' => '',
45866                                                                                                       'line' => 627
45867                                                                                                     }, 'Parse::RecDescent::Rule' ),
45868                               '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause' => bless( {
45869                                                                                                                                                'impcount' => 0,
45870                                                                                                                                                'calls' => [
45871                                                                                                                                                             'result_expression'
45872                                                                                                                                                           ],
45873                                                                                                                                                'changed' => 0,
45874                                                                                                                                                'opcount' => 0,
45875                                                                                                                                                'prods' => [
45876                                                                                                                                                             bless( {
45877                                                                                                                                                                      'number' => '0',
45878                                                                                                                                                                      'strcount' => 0,
45879                                                                                                                                                                      'dircount' => 0,
45880                                                                                                                                                                      'uncommit' => undef,
45881                                                                                                                                                                      'error' => undef,
45882                                                                                                                                                                      'patcount' => 0,
45883                                                                                                                                                                      'actcount' => 0,
45884                                                                                                                                                                      'items' => [
45885                                                                                                                                                                                   bless( {
45886                                                                                                                                                                                            'subrule' => 'result_expression',
45887                                                                                                                                                                                            'matchrule' => 0,
45888                                                                                                                                                                                            'implicit' => undef,
45889                                                                                                                                                                                            'argcode' => undef,
45890                                                                                                                                                                                            'lookahead' => 0,
45891                                                                                                                                                                                            'line' => 626
45892                                                                                                                                                                                          }, 'Parse::RecDescent::Subrule' )
45893                                                                                                                                                                                 ],
45894                                                                                                                                                                      'line' => undef
45895                                                                                                                                                                    }, 'Parse::RecDescent::Production' ),
45896                                                                                                                                                             bless( {
45897                                                                                                                                                                      'number' => '1',
45898                                                                                                                                                                      'strcount' => 0,
45899                                                                                                                                                                      'dircount' => 0,
45900                                                                                                                                                                      'uncommit' => undef,
45901                                                                                                                                                                      'error' => undef,
45902                                                                                                                                                                      'patcount' => 1,
45903                                                                                                                                                                      'actcount' => 0,
45904                                                                                                                                                                      'items' => [
45905                                                                                                                                                                                   bless( {
45906                                                                                                                                                                                            'pattern' => 'NULL',
45907                                                                                                                                                                                            'hashname' => '__PATTERN1__',
45908                                                                                                                                                                                            'description' => '/NULL/i',
45909                                                                                                                                                                                            'lookahead' => 0,
45910                                                                                                                                                                                            'rdelim' => '/',
45911                                                                                                                                                                                            'line' => 627,
45912                                                                                                                                                                                            'mod' => 'i',
45913                                                                                                                                                                                            'ldelim' => '/'
45914                                                                                                                                                                                          }, 'Parse::RecDescent::Token' )
45915                                                                                                                                                                                 ],
45916                                                                                                                                                                      'line' => 627
45917                                                                                                                                                                    }, 'Parse::RecDescent::Production' )
45918                                                                                                                                                           ],
45919                                                                                                                                                'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause',
45920                                                                                                                                                'vars' => '',
45921                                                                                                                                                'line' => 626
45922                                                                                                                                              }, 'Parse::RecDescent::Rule' ),
45923                               'old_new_corr' => bless( {
45924                                                          'impcount' => 0,
45925                                                          'calls' => [
45926                                                                       'correlation_name'
45927                                                                     ],
45928                                                          'changed' => 0,
45929                                                          'opcount' => 0,
45930                                                          'prods' => [
45931                                                                       bless( {
45932                                                                                'number' => '0',
45933                                                                                'strcount' => 0,
45934                                                                                'dircount' => 0,
45935                                                                                'uncommit' => undef,
45936                                                                                'error' => undef,
45937                                                                                'patcount' => 2,
45938                                                                                'actcount' => 1,
45939                                                                                'items' => [
45940                                                                                             bless( {
45941                                                                                                      'pattern' => 'OLD',
45942                                                                                                      'hashname' => '__PATTERN1__',
45943                                                                                                      'description' => '/OLD/i',
45944                                                                                                      'lookahead' => 0,
45945                                                                                                      'rdelim' => '/',
45946                                                                                                      'line' => 286,
45947                                                                                                      'mod' => 'i',
45948                                                                                                      'ldelim' => '/'
45949                                                                                                    }, 'Parse::RecDescent::Token' ),
45950                                                                                             bless( {
45951                                                                                                      'pattern' => '(AS)?',
45952                                                                                                      'hashname' => '__PATTERN2__',
45953                                                                                                      'description' => '/(AS)?/i',
45954                                                                                                      'lookahead' => 0,
45955                                                                                                      'rdelim' => '/',
45956                                                                                                      'line' => 286,
45957                                                                                                      'mod' => 'i',
45958                                                                                                      'ldelim' => '/'
45959                                                                                                    }, 'Parse::RecDescent::Token' ),
45960                                                                                             bless( {
45961                                                                                                      'subrule' => 'correlation_name',
45962                                                                                                      'matchrule' => 0,
45963                                                                                                      'implicit' => undef,
45964                                                                                                      'argcode' => undef,
45965                                                                                                      'lookahead' => 0,
45966                                                                                                      'line' => 286
45967                                                                                                    }, 'Parse::RecDescent::Subrule' ),
45968                                                                                             bless( {
45969                                                                                                      'hashname' => '__ACTION1__',
45970                                                                                                      'lookahead' => 0,
45971                                                                                                      'line' => 287,
45972                                                                                                      'code' => '{ $return = join(\' \', @item[1..3] ) }'
45973                                                                                                    }, 'Parse::RecDescent::Action' )
45974                                                                                           ],
45975                                                                                'line' => undef
45976                                                                              }, 'Parse::RecDescent::Production' ),
45977                                                                       bless( {
45978                                                                                'number' => '1',
45979                                                                                'strcount' => 0,
45980                                                                                'dircount' => 0,
45981                                                                                'uncommit' => undef,
45982                                                                                'error' => undef,
45983                                                                                'patcount' => 2,
45984                                                                                'actcount' => 1,
45985                                                                                'items' => [
45986                                                                                             bless( {
45987                                                                                                      'pattern' => 'NEW',
45988                                                                                                      'hashname' => '__PATTERN1__',
45989                                                                                                      'description' => '/NEW/i',
45990                                                                                                      'lookahead' => 0,
45991                                                                                                      'rdelim' => '/',
45992                                                                                                      'line' => 288,
45993                                                                                                      'mod' => 'i',
45994                                                                                                      'ldelim' => '/'
45995                                                                                                    }, 'Parse::RecDescent::Token' ),
45996                                                                                             bless( {
45997                                                                                                      'pattern' => '(AS)?',
45998                                                                                                      'hashname' => '__PATTERN2__',
45999                                                                                                      'description' => '/(AS)?/i',
46000                                                                                                      'lookahead' => 0,
46001                                                                                                      'rdelim' => '/',
46002                                                                                                      'line' => 288,
46003                                                                                                      'mod' => 'i',
46004                                                                                                      'ldelim' => '/'
46005                                                                                                    }, 'Parse::RecDescent::Token' ),
46006                                                                                             bless( {
46007                                                                                                      'subrule' => 'correlation_name',
46008                                                                                                      'matchrule' => 0,
46009                                                                                                      'implicit' => undef,
46010                                                                                                      'argcode' => undef,
46011                                                                                                      'lookahead' => 0,
46012                                                                                                      'line' => 288
46013                                                                                                    }, 'Parse::RecDescent::Subrule' ),
46014                                                                                             bless( {
46015                                                                                                      'hashname' => '__ACTION1__',
46016                                                                                                      'lookahead' => 0,
46017                                                                                                      'line' => 289,
46018                                                                                                      'code' => '{ $return = join(\' \', @item[1..3] ) }'
46019                                                                                                    }, 'Parse::RecDescent::Action' )
46020                                                                                           ],
46021                                                                                'line' => 288
46022                                                                              }, 'Parse::RecDescent::Production' )
46023                                                                     ],
46024                                                          'name' => 'old_new_corr',
46025                                                          'vars' => '',
46026                                                          'line' => 286
46027                                                        }, 'Parse::RecDescent::Rule' ),
46028                               '_alternation_1_of_production_42_of_rule_sysibm_function' => bless( {
46029                                                                                                     'impcount' => 0,
46030                                                                                                     'calls' => [],
46031                                                                                                     'changed' => 0,
46032                                                                                                     'opcount' => 0,
46033                                                                                                     'prods' => [
46034                                                                                                                  bless( {
46035                                                                                                                           'number' => '0',
46036                                                                                                                           'strcount' => 0,
46037                                                                                                                           'dircount' => 0,
46038                                                                                                                           'uncommit' => undef,
46039                                                                                                                           'error' => undef,
46040                                                                                                                           'patcount' => 1,
46041                                                                                                                           'actcount' => 0,
46042                                                                                                                           'items' => [
46043                                                                                                                                        bless( {
46044                                                                                                                                                 'pattern' => 'LCASE',
46045                                                                                                                                                 'hashname' => '__PATTERN1__',
46046                                                                                                                                                 'description' => '/LCASE/i',
46047                                                                                                                                                 'lookahead' => 0,
46048                                                                                                                                                 'rdelim' => '/',
46049                                                                                                                                                 'line' => 628,
46050                                                                                                                                                 'mod' => 'i',
46051                                                                                                                                                 'ldelim' => '/'
46052                                                                                                                                               }, 'Parse::RecDescent::Token' )
46053                                                                                                                                      ],
46054                                                                                                                           'line' => undef
46055                                                                                                                         }, 'Parse::RecDescent::Production' ),
46056                                                                                                                  bless( {
46057                                                                                                                           'number' => '1',
46058                                                                                                                           'strcount' => 0,
46059                                                                                                                           'dircount' => 0,
46060                                                                                                                           'uncommit' => undef,
46061                                                                                                                           'error' => undef,
46062                                                                                                                           'patcount' => 1,
46063                                                                                                                           'actcount' => 0,
46064                                                                                                                           'items' => [
46065                                                                                                                                        bless( {
46066                                                                                                                                                 'pattern' => 'LOWER',
46067                                                                                                                                                 'hashname' => '__PATTERN1__',
46068                                                                                                                                                 'description' => '/LOWER/',
46069                                                                                                                                                 'lookahead' => 0,
46070                                                                                                                                                 'rdelim' => '/',
46071                                                                                                                                                 'line' => 628,
46072                                                                                                                                                 'mod' => '',
46073                                                                                                                                                 'ldelim' => '/'
46074                                                                                                                                               }, 'Parse::RecDescent::Token' )
46075                                                                                                                                      ],
46076                                                                                                                           'line' => 628
46077                                                                                                                         }, 'Parse::RecDescent::Production' )
46078                                                                                                                ],
46079                                                                                                     'name' => '_alternation_1_of_production_42_of_rule_sysibm_function',
46080                                                                                                     'vars' => '',
46081                                                                                                     'line' => 628
46082                                                                                                   }, 'Parse::RecDescent::Rule' ),
46083                               'subtype_treatment' => bless( {
46084                                                               'impcount' => 0,
46085                                                               'calls' => [
46086                                                                            'expression',
46087                                                                            'data_type'
46088                                                                          ],
46089                                                               'changed' => 0,
46090                                                               'opcount' => 0,
46091                                                               'prods' => [
46092                                                                            bless( {
46093                                                                                     'number' => '0',
46094                                                                                     'strcount' => 2,
46095                                                                                     'dircount' => 0,
46096                                                                                     'uncommit' => undef,
46097                                                                                     'error' => undef,
46098                                                                                     'patcount' => 2,
46099                                                                                     'actcount' => 0,
46100                                                                                     'items' => [
46101                                                                                                  bless( {
46102                                                                                                           'pattern' => 'TREAT',
46103                                                                                                           'hashname' => '__PATTERN1__',
46104                                                                                                           'description' => '/TREAT/i',
46105                                                                                                           'lookahead' => 0,
46106                                                                                                           'rdelim' => '/',
46107                                                                                                           'line' => 606,
46108                                                                                                           'mod' => 'i',
46109                                                                                                           'ldelim' => '/'
46110                                                                                                         }, 'Parse::RecDescent::Token' ),
46111                                                                                                  bless( {
46112                                                                                                           'pattern' => '(',
46113                                                                                                           'hashname' => '__STRING1__',
46114                                                                                                           'description' => '\'(\'',
46115                                                                                                           'lookahead' => 0,
46116                                                                                                           'line' => 606
46117                                                                                                         }, 'Parse::RecDescent::Literal' ),
46118                                                                                                  bless( {
46119                                                                                                           'subrule' => 'expression',
46120                                                                                                           'matchrule' => 0,
46121                                                                                                           'implicit' => undef,
46122                                                                                                           'argcode' => undef,
46123                                                                                                           'lookahead' => 0,
46124                                                                                                           'line' => 606
46125                                                                                                         }, 'Parse::RecDescent::Subrule' ),
46126                                                                                                  bless( {
46127                                                                                                           'pattern' => 'AS',
46128                                                                                                           'hashname' => '__PATTERN2__',
46129                                                                                                           'description' => '/AS/i',
46130                                                                                                           'lookahead' => 0,
46131                                                                                                           'rdelim' => '/',
46132                                                                                                           'line' => 606,
46133                                                                                                           'mod' => 'i',
46134                                                                                                           'ldelim' => '/'
46135                                                                                                         }, 'Parse::RecDescent::Token' ),
46136                                                                                                  bless( {
46137                                                                                                           'subrule' => 'data_type',
46138                                                                                                           'matchrule' => 0,
46139                                                                                                           'implicit' => undef,
46140                                                                                                           'argcode' => undef,
46141                                                                                                           'lookahead' => 0,
46142                                                                                                           'line' => 606
46143                                                                                                         }, 'Parse::RecDescent::Subrule' ),
46144                                                                                                  bless( {
46145                                                                                                           'pattern' => ')',
46146                                                                                                           'hashname' => '__STRING2__',
46147                                                                                                           'description' => '\')\'',
46148                                                                                                           'lookahead' => 0,
46149                                                                                                           'line' => 606
46150                                                                                                         }, 'Parse::RecDescent::Literal' )
46151                                                                                                ],
46152                                                                                     'line' => undef
46153                                                                                   }, 'Parse::RecDescent::Production' )
46154                                                                          ],
46155                                                               'name' => 'subtype_treatment',
46156                                                               'vars' => '',
46157                                                               'line' => 606
46158                                                             }, 'Parse::RecDescent::Rule' ),
46159                               'expression' => bless( {
46160                                                        'impcount' => 1,
46161                                                        'calls' => [
46162                                                                     '_alternation_1_of_production_1_of_rule_expression'
46163                                                                   ],
46164                                                        'changed' => 0,
46165                                                        'opcount' => 0,
46166                                                        'prods' => [
46167                                                                     bless( {
46168                                                                              'number' => '0',
46169                                                                              'strcount' => 0,
46170                                                                              'dircount' => 1,
46171                                                                              'uncommit' => undef,
46172                                                                              'error' => undef,
46173                                                                              'patcount' => 1,
46174                                                                              'actcount' => 0,
46175                                                                              'op' => [],
46176                                                                              'items' => [
46177                                                                                           bless( {
46178                                                                                                    'expected' => '<leftop: \'+\', or \'-\' /operator/ \'+\', or \'-\'>',
46179                                                                                                    'min' => 1,
46180                                                                                                    'name' => '\'_alternation_1_of_production_1_of_rule_expression(s)\'',
46181                                                                                                    'max' => 100000000,
46182                                                                                                    'leftarg' => bless( {
46183                                                                                                                          'subrule' => '_alternation_1_of_production_1_of_rule_expression',
46184                                                                                                                          'matchrule' => 0,
46185                                                                                                                          'implicit' => '\'+\', or \'-\'',
46186                                                                                                                          'argcode' => undef,
46187                                                                                                                          'lookahead' => 0,
46188                                                                                                                          'line' => 319
46189                                                                                                                        }, 'Parse::RecDescent::Subrule' ),
46190                                                                                                    'rightarg' => bless( {
46191                                                                                                                           'subrule' => '_alternation_1_of_production_1_of_rule_expression',
46192                                                                                                                           'matchrule' => 0,
46193                                                                                                                           'implicit' => '\'+\', or \'-\'',
46194                                                                                                                           'argcode' => undef,
46195                                                                                                                           'lookahead' => 0,
46196                                                                                                                           'line' => 319
46197                                                                                                                         }, 'Parse::RecDescent::Subrule' ),
46198                                                                                                    'hashname' => '__DIRECTIVE1__',
46199                                                                                                    'type' => 'leftop',
46200                                                                                                    'op' => bless( {
46201                                                                                                                     'pattern' => 'operator',
46202                                                                                                                     'hashname' => '__PATTERN1__',
46203                                                                                                                     'description' => '/operator/',
46204                                                                                                                     'lookahead' => 0,
46205                                                                                                                     'rdelim' => '/',
46206                                                                                                                     'line' => 319,
46207                                                                                                                     'mod' => '',
46208                                                                                                                     'ldelim' => '/'
46209                                                                                                                   }, 'Parse::RecDescent::Token' )
46210                                                                                                  }, 'Parse::RecDescent::Operator' )
46211                                                                                         ],
46212                                                                              'line' => undef
46213                                                                            }, 'Parse::RecDescent::Production' )
46214                                                                   ],
46215                                                        'name' => 'expression',
46216                                                        'vars' => '',
46217                                                        'line' => 299
46218                                                      }, 'Parse::RecDescent::Rule' ),
46219                               '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression' => bless( {
46220                                                                                                                                      'impcount' => 0,
46221                                                                                                                                      'calls' => [
46222                                                                                                                                                   'function',
46223                                                                                                                                                   'expression',
46224                                                                                                                                                   'constant',
46225                                                                                                                                                   'column_name',
46226                                                                                                                                                   'host_variable',
46227                                                                                                                                                   'special_register',
46228                                                                                                                                                   'scalar_fullselect',
46229                                                                                                                                                   'labeled_duration',
46230                                                                                                                                                   'case_expression',
46231                                                                                                                                                   'cast_specification',
46232                                                                                                                                                   'OLAP_function',
46233                                                                                                                                                   'method_invocation',
46234                                                                                                                                                   'subtype_treatment',
46235                                                                                                                                                   'sequence_reference'
46236                                                                                                                                                 ],
46237                                                                                                                                      'changed' => 0,
46238                                                                                                                                      'opcount' => 0,
46239                                                                                                                                      'prods' => [
46240                                                                                                                                                   bless( {
46241                                                                                                                                                            'number' => '0',
46242                                                                                                                                                            'strcount' => 0,
46243                                                                                                                                                            'dircount' => 0,
46244                                                                                                                                                            'uncommit' => undef,
46245                                                                                                                                                            'error' => undef,
46246                                                                                                                                                            'patcount' => 0,
46247                                                                                                                                                            'actcount' => 0,
46248                                                                                                                                                            'items' => [
46249                                                                                                                                                                         bless( {
46250                                                                                                                                                                                  'subrule' => 'function',
46251                                                                                                                                                                                  'matchrule' => 0,
46252                                                                                                                                                                                  'implicit' => undef,
46253                                                                                                                                                                                  'argcode' => undef,
46254                                                                                                                                                                                  'lookahead' => 0,
46255                                                                                                                                                                                  'line' => 613
46256                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46257                                                                                                                                                                       ],
46258                                                                                                                                                            'line' => undef
46259                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46260                                                                                                                                                   bless( {
46261                                                                                                                                                            'number' => '1',
46262                                                                                                                                                            'strcount' => 2,
46263                                                                                                                                                            'dircount' => 0,
46264                                                                                                                                                            'uncommit' => undef,
46265                                                                                                                                                            'error' => undef,
46266                                                                                                                                                            'patcount' => 0,
46267                                                                                                                                                            'actcount' => 0,
46268                                                                                                                                                            'items' => [
46269                                                                                                                                                                         bless( {
46270                                                                                                                                                                                  'pattern' => '(',
46271                                                                                                                                                                                  'hashname' => '__STRING1__',
46272                                                                                                                                                                                  'description' => '\'(\'',
46273                                                                                                                                                                                  'lookahead' => 0,
46274                                                                                                                                                                                  'line' => 614
46275                                                                                                                                                                                }, 'Parse::RecDescent::Literal' ),
46276                                                                                                                                                                         bless( {
46277                                                                                                                                                                                  'subrule' => 'expression',
46278                                                                                                                                                                                  'matchrule' => 0,
46279                                                                                                                                                                                  'implicit' => undef,
46280                                                                                                                                                                                  'argcode' => undef,
46281                                                                                                                                                                                  'lookahead' => 0,
46282                                                                                                                                                                                  'line' => 614
46283                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' ),
46284                                                                                                                                                                         bless( {
46285                                                                                                                                                                                  'pattern' => ')',
46286                                                                                                                                                                                  'hashname' => '__STRING2__',
46287                                                                                                                                                                                  'description' => '\')\'',
46288                                                                                                                                                                                  'lookahead' => 0,
46289                                                                                                                                                                                  'line' => 614
46290                                                                                                                                                                                }, 'Parse::RecDescent::Literal' )
46291                                                                                                                                                                       ],
46292                                                                                                                                                            'line' => 614
46293                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46294                                                                                                                                                   bless( {
46295                                                                                                                                                            'number' => '2',
46296                                                                                                                                                            'strcount' => 0,
46297                                                                                                                                                            'dircount' => 0,
46298                                                                                                                                                            'uncommit' => undef,
46299                                                                                                                                                            'error' => undef,
46300                                                                                                                                                            'patcount' => 0,
46301                                                                                                                                                            'actcount' => 0,
46302                                                                                                                                                            'items' => [
46303                                                                                                                                                                         bless( {
46304                                                                                                                                                                                  'subrule' => 'constant',
46305                                                                                                                                                                                  'matchrule' => 0,
46306                                                                                                                                                                                  'implicit' => undef,
46307                                                                                                                                                                                  'argcode' => undef,
46308                                                                                                                                                                                  'lookahead' => 0,
46309                                                                                                                                                                                  'line' => 615
46310                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46311                                                                                                                                                                       ],
46312                                                                                                                                                            'line' => 615
46313                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46314                                                                                                                                                   bless( {
46315                                                                                                                                                            'number' => '3',
46316                                                                                                                                                            'strcount' => 0,
46317                                                                                                                                                            'dircount' => 0,
46318                                                                                                                                                            'uncommit' => undef,
46319                                                                                                                                                            'error' => undef,
46320                                                                                                                                                            'patcount' => 0,
46321                                                                                                                                                            'actcount' => 0,
46322                                                                                                                                                            'items' => [
46323                                                                                                                                                                         bless( {
46324                                                                                                                                                                                  'subrule' => 'column_name',
46325                                                                                                                                                                                  'matchrule' => 0,
46326                                                                                                                                                                                  'implicit' => undef,
46327                                                                                                                                                                                  'argcode' => undef,
46328                                                                                                                                                                                  'lookahead' => 0,
46329                                                                                                                                                                                  'line' => 616
46330                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46331                                                                                                                                                                       ],
46332                                                                                                                                                            'line' => 616
46333                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46334                                                                                                                                                   bless( {
46335                                                                                                                                                            'number' => '4',
46336                                                                                                                                                            'strcount' => 0,
46337                                                                                                                                                            'dircount' => 0,
46338                                                                                                                                                            'uncommit' => undef,
46339                                                                                                                                                            'error' => undef,
46340                                                                                                                                                            'patcount' => 0,
46341                                                                                                                                                            'actcount' => 0,
46342                                                                                                                                                            'items' => [
46343                                                                                                                                                                         bless( {
46344                                                                                                                                                                                  'subrule' => 'host_variable',
46345                                                                                                                                                                                  'matchrule' => 0,
46346                                                                                                                                                                                  'implicit' => undef,
46347                                                                                                                                                                                  'argcode' => undef,
46348                                                                                                                                                                                  'lookahead' => 0,
46349                                                                                                                                                                                  'line' => 617
46350                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46351                                                                                                                                                                       ],
46352                                                                                                                                                            'line' => 617
46353                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46354                                                                                                                                                   bless( {
46355                                                                                                                                                            'number' => '5',
46356                                                                                                                                                            'strcount' => 0,
46357                                                                                                                                                            'dircount' => 0,
46358                                                                                                                                                            'uncommit' => undef,
46359                                                                                                                                                            'error' => undef,
46360                                                                                                                                                            'patcount' => 0,
46361                                                                                                                                                            'actcount' => 0,
46362                                                                                                                                                            'items' => [
46363                                                                                                                                                                         bless( {
46364                                                                                                                                                                                  'subrule' => 'special_register',
46365                                                                                                                                                                                  'matchrule' => 0,
46366                                                                                                                                                                                  'implicit' => undef,
46367                                                                                                                                                                                  'argcode' => undef,
46368                                                                                                                                                                                  'lookahead' => 0,
46369                                                                                                                                                                                  'line' => 618
46370                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46371                                                                                                                                                                       ],
46372                                                                                                                                                            'line' => 618
46373                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46374                                                                                                                                                   bless( {
46375                                                                                                                                                            'number' => '6',
46376                                                                                                                                                            'strcount' => 2,
46377                                                                                                                                                            'dircount' => 0,
46378                                                                                                                                                            'uncommit' => undef,
46379                                                                                                                                                            'error' => undef,
46380                                                                                                                                                            'patcount' => 0,
46381                                                                                                                                                            'actcount' => 0,
46382                                                                                                                                                            'items' => [
46383                                                                                                                                                                         bless( {
46384                                                                                                                                                                                  'pattern' => '(',
46385                                                                                                                                                                                  'hashname' => '__STRING1__',
46386                                                                                                                                                                                  'description' => '\'(\'',
46387                                                                                                                                                                                  'lookahead' => 0,
46388                                                                                                                                                                                  'line' => 619
46389                                                                                                                                                                                }, 'Parse::RecDescent::Literal' ),
46390                                                                                                                                                                         bless( {
46391                                                                                                                                                                                  'subrule' => 'scalar_fullselect',
46392                                                                                                                                                                                  'matchrule' => 0,
46393                                                                                                                                                                                  'implicit' => undef,
46394                                                                                                                                                                                  'argcode' => undef,
46395                                                                                                                                                                                  'lookahead' => 0,
46396                                                                                                                                                                                  'line' => 619
46397                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' ),
46398                                                                                                                                                                         bless( {
46399                                                                                                                                                                                  'pattern' => ')',
46400                                                                                                                                                                                  'hashname' => '__STRING2__',
46401                                                                                                                                                                                  'description' => '\')\'',
46402                                                                                                                                                                                  'lookahead' => 0,
46403                                                                                                                                                                                  'line' => 619
46404                                                                                                                                                                                }, 'Parse::RecDescent::Literal' )
46405                                                                                                                                                                       ],
46406                                                                                                                                                            'line' => 619
46407                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46408                                                                                                                                                   bless( {
46409                                                                                                                                                            'number' => '7',
46410                                                                                                                                                            'strcount' => 0,
46411                                                                                                                                                            'dircount' => 0,
46412                                                                                                                                                            'uncommit' => undef,
46413                                                                                                                                                            'error' => undef,
46414                                                                                                                                                            'patcount' => 0,
46415                                                                                                                                                            'actcount' => 0,
46416                                                                                                                                                            'items' => [
46417                                                                                                                                                                         bless( {
46418                                                                                                                                                                                  'subrule' => 'labeled_duration',
46419                                                                                                                                                                                  'matchrule' => 0,
46420                                                                                                                                                                                  'implicit' => undef,
46421                                                                                                                                                                                  'argcode' => undef,
46422                                                                                                                                                                                  'lookahead' => 0,
46423                                                                                                                                                                                  'line' => 620
46424                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46425                                                                                                                                                                       ],
46426                                                                                                                                                            'line' => 620
46427                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46428                                                                                                                                                   bless( {
46429                                                                                                                                                            'number' => '8',
46430                                                                                                                                                            'strcount' => 0,
46431                                                                                                                                                            'dircount' => 0,
46432                                                                                                                                                            'uncommit' => undef,
46433                                                                                                                                                            'error' => undef,
46434                                                                                                                                                            'patcount' => 0,
46435                                                                                                                                                            'actcount' => 0,
46436                                                                                                                                                            'items' => [
46437                                                                                                                                                                         bless( {
46438                                                                                                                                                                                  'subrule' => 'case_expression',
46439                                                                                                                                                                                  'matchrule' => 0,
46440                                                                                                                                                                                  'implicit' => undef,
46441                                                                                                                                                                                  'argcode' => undef,
46442                                                                                                                                                                                  'lookahead' => 0,
46443                                                                                                                                                                                  'line' => 621
46444                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46445                                                                                                                                                                       ],
46446                                                                                                                                                            'line' => 621
46447                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46448                                                                                                                                                   bless( {
46449                                                                                                                                                            'number' => '9',
46450                                                                                                                                                            'strcount' => 0,
46451                                                                                                                                                            'dircount' => 0,
46452                                                                                                                                                            'uncommit' => undef,
46453                                                                                                                                                            'error' => undef,
46454                                                                                                                                                            'patcount' => 0,
46455                                                                                                                                                            'actcount' => 0,
46456                                                                                                                                                            'items' => [
46457                                                                                                                                                                         bless( {
46458                                                                                                                                                                                  'subrule' => 'cast_specification',
46459                                                                                                                                                                                  'matchrule' => 0,
46460                                                                                                                                                                                  'implicit' => undef,
46461                                                                                                                                                                                  'argcode' => undef,
46462                                                                                                                                                                                  'lookahead' => 0,
46463                                                                                                                                                                                  'line' => 622
46464                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46465                                                                                                                                                                       ],
46466                                                                                                                                                            'line' => 622
46467                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46468                                                                                                                                                   bless( {
46469                                                                                                                                                            'number' => '10',
46470                                                                                                                                                            'strcount' => 0,
46471                                                                                                                                                            'dircount' => 0,
46472                                                                                                                                                            'uncommit' => undef,
46473                                                                                                                                                            'error' => undef,
46474                                                                                                                                                            'patcount' => 0,
46475                                                                                                                                                            'actcount' => 0,
46476                                                                                                                                                            'items' => [
46477                                                                                                                                                                         bless( {
46478                                                                                                                                                                                  'subrule' => 'OLAP_function',
46479                                                                                                                                                                                  'matchrule' => 0,
46480                                                                                                                                                                                  'implicit' => undef,
46481                                                                                                                                                                                  'argcode' => undef,
46482                                                                                                                                                                                  'lookahead' => 0,
46483                                                                                                                                                                                  'line' => 624
46484                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46485                                                                                                                                                                       ],
46486                                                                                                                                                            'line' => 623
46487                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46488                                                                                                                                                   bless( {
46489                                                                                                                                                            'number' => '11',
46490                                                                                                                                                            'strcount' => 0,
46491                                                                                                                                                            'dircount' => 0,
46492                                                                                                                                                            'uncommit' => undef,
46493                                                                                                                                                            'error' => undef,
46494                                                                                                                                                            'patcount' => 0,
46495                                                                                                                                                            'actcount' => 0,
46496                                                                                                                                                            'items' => [
46497                                                                                                                                                                         bless( {
46498                                                                                                                                                                                  'subrule' => 'method_invocation',
46499                                                                                                                                                                                  'matchrule' => 0,
46500                                                                                                                                                                                  'implicit' => undef,
46501                                                                                                                                                                                  'argcode' => undef,
46502                                                                                                                                                                                  'lookahead' => 0,
46503                                                                                                                                                                                  'line' => 625
46504                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46505                                                                                                                                                                       ],
46506                                                                                                                                                            'line' => 625
46507                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46508                                                                                                                                                   bless( {
46509                                                                                                                                                            'number' => '12',
46510                                                                                                                                                            'strcount' => 0,
46511                                                                                                                                                            'dircount' => 0,
46512                                                                                                                                                            'uncommit' => undef,
46513                                                                                                                                                            'error' => undef,
46514                                                                                                                                                            'patcount' => 0,
46515                                                                                                                                                            'actcount' => 0,
46516                                                                                                                                                            'items' => [
46517                                                                                                                                                                         bless( {
46518                                                                                                                                                                                  'subrule' => 'subtype_treatment',
46519                                                                                                                                                                                  'matchrule' => 0,
46520                                                                                                                                                                                  'implicit' => undef,
46521                                                                                                                                                                                  'argcode' => undef,
46522                                                                                                                                                                                  'lookahead' => 0,
46523                                                                                                                                                                                  'line' => 626
46524                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46525                                                                                                                                                                       ],
46526                                                                                                                                                            'line' => 626
46527                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46528                                                                                                                                                   bless( {
46529                                                                                                                                                            'number' => '13',
46530                                                                                                                                                            'strcount' => 0,
46531                                                                                                                                                            'dircount' => 0,
46532                                                                                                                                                            'uncommit' => undef,
46533                                                                                                                                                            'error' => undef,
46534                                                                                                                                                            'patcount' => 0,
46535                                                                                                                                                            'actcount' => 0,
46536                                                                                                                                                            'items' => [
46537                                                                                                                                                                         bless( {
46538                                                                                                                                                                                  'subrule' => 'sequence_reference',
46539                                                                                                                                                                                  'matchrule' => 0,
46540                                                                                                                                                                                  'implicit' => undef,
46541                                                                                                                                                                                  'argcode' => undef,
46542                                                                                                                                                                                  'lookahead' => 0,
46543                                                                                                                                                                                  'line' => 627
46544                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46545                                                                                                                                                                       ],
46546                                                                                                                                                            'line' => 627
46547                                                                                                                                                          }, 'Parse::RecDescent::Production' )
46548                                                                                                                                                 ],
46549                                                                                                                                      'name' => '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
46550                                                                                                                                      'vars' => '',
46551                                                                                                                                      'line' => 613
46552                                                                                                                                    }, 'Parse::RecDescent::Rule' ),
46553                               'startrule' => bless( {
46554                                                       'impcount' => 0,
46555                                                       'calls' => [
46556                                                                    'statement',
46557                                                                    'eofile'
46558                                                                  ],
46559                                                       'changed' => 0,
46560                                                       'opcount' => 0,
46561                                                       'prods' => [
46562                                                                    bless( {
46563                                                                             'number' => '0',
46564                                                                             'strcount' => 0,
46565                                                                             'dircount' => 0,
46566                                                                             'uncommit' => undef,
46567                                                                             'error' => undef,
46568                                                                             'patcount' => 0,
46569                                                                             'actcount' => 1,
46570                                                                             'items' => [
46571                                                                                          bless( {
46572                                                                                                   'subrule' => 'statement',
46573                                                                                                   'expected' => undef,
46574                                                                                                   'min' => 1,
46575                                                                                                   'argcode' => undef,
46576                                                                                                   'max' => 100000000,
46577                                                                                                   'matchrule' => 0,
46578                                                                                                   'repspec' => 's',
46579                                                                                                   'lookahead' => 0,
46580                                                                                                   'line' => 12
46581                                                                                                 }, 'Parse::RecDescent::Repetition' ),
46582                                                                                          bless( {
46583                                                                                                   'subrule' => 'eofile',
46584                                                                                                   'matchrule' => 0,
46585                                                                                                   'implicit' => undef,
46586                                                                                                   'argcode' => undef,
46587                                                                                                   'lookahead' => 0,
46588                                                                                                   'line' => 12
46589                                                                                                 }, 'Parse::RecDescent::Subrule' ),
46590                                                                                          bless( {
46591                                                                                                   'hashname' => '__ACTION1__',
46592                                                                                                   'lookahead' => 0,
46593                                                                                                   'line' => 12,
46594                                                                                                   'code' => '{
46595     $return      = {
46596         tables   => \\%tables,
46597         views    => \\@views,
46598         triggers => \\@triggers,
46599     }
46600 }'
46601                                                                                                 }, 'Parse::RecDescent::Action' )
46602                                                                                        ],
46603                                                                             'line' => undef
46604                                                                           }, 'Parse::RecDescent::Production' )
46605                                                                  ],
46606                                                       'name' => 'startrule',
46607                                                       'vars' => '',
46608                                                       'line' => 11
46609                                                     }, 'Parse::RecDescent::Rule' ),
46610                               '_alternation_1_of_production_1_of_rule_cast_specification' => bless( {
46611                                                                                                       'impcount' => 0,
46612                                                                                                       'calls' => [
46613                                                                                                                    'expression',
46614                                                                                                                    'parameter_marker'
46615                                                                                                                  ],
46616                                                                                                       'changed' => 0,
46617                                                                                                       'opcount' => 0,
46618                                                                                                       'prods' => [
46619                                                                                                                    bless( {
46620                                                                                                                             'number' => '0',
46621                                                                                                                             'strcount' => 0,
46622                                                                                                                             'dircount' => 0,
46623                                                                                                                             'uncommit' => undef,
46624                                                                                                                             'error' => undef,
46625                                                                                                                             'patcount' => 0,
46626                                                                                                                             'actcount' => 0,
46627                                                                                                                             'items' => [
46628                                                                                                                                          bless( {
46629                                                                                                                                                   'subrule' => 'expression',
46630                                                                                                                                                   'matchrule' => 0,
46631                                                                                                                                                   'implicit' => undef,
46632                                                                                                                                                   'argcode' => undef,
46633                                                                                                                                                   'lookahead' => 0,
46634                                                                                                                                                   'line' => 625
46635                                                                                                                                                 }, 'Parse::RecDescent::Subrule' )
46636                                                                                                                                        ],
46637                                                                                                                             'line' => undef
46638                                                                                                                           }, 'Parse::RecDescent::Production' ),
46639                                                                                                                    bless( {
46640                                                                                                                             'number' => '1',
46641                                                                                                                             'strcount' => 0,
46642                                                                                                                             'dircount' => 0,
46643                                                                                                                             'uncommit' => undef,
46644                                                                                                                             'error' => undef,
46645                                                                                                                             'patcount' => 1,
46646                                                                                                                             'actcount' => 0,
46647                                                                                                                             'items' => [
46648                                                                                                                                          bless( {
46649                                                                                                                                                   'pattern' => 'NULL',
46650                                                                                                                                                   'hashname' => '__PATTERN1__',
46651                                                                                                                                                   'description' => '/NULL/i',
46652                                                                                                                                                   'lookahead' => 0,
46653                                                                                                                                                   'rdelim' => '/',
46654                                                                                                                                                   'line' => 626,
46655                                                                                                                                                   'mod' => 'i',
46656                                                                                                                                                   'ldelim' => '/'
46657                                                                                                                                                 }, 'Parse::RecDescent::Token' )
46658                                                                                                                                        ],
46659                                                                                                                             'line' => 626
46660                                                                                                                           }, 'Parse::RecDescent::Production' ),
46661                                                                                                                    bless( {
46662                                                                                                                             'number' => '2',
46663                                                                                                                             'strcount' => 0,
46664                                                                                                                             'dircount' => 0,
46665                                                                                                                             'uncommit' => undef,
46666                                                                                                                             'error' => undef,
46667                                                                                                                             'patcount' => 0,
46668                                                                                                                             'actcount' => 0,
46669                                                                                                                             'items' => [
46670                                                                                                                                          bless( {
46671                                                                                                                                                   'subrule' => 'parameter_marker',
46672                                                                                                                                                   'matchrule' => 0,
46673                                                                                                                                                   'implicit' => undef,
46674                                                                                                                                                   'argcode' => undef,
46675                                                                                                                                                   'lookahead' => 0,
46676                                                                                                                                                   'line' => 627
46677                                                                                                                                                 }, 'Parse::RecDescent::Subrule' )
46678                                                                                                                                        ],
46679                                                                                                                             'line' => 627
46680                                                                                                                           }, 'Parse::RecDescent::Production' )
46681                                                                                                                  ],
46682                                                                                                       'name' => '_alternation_1_of_production_1_of_rule_cast_specification',
46683                                                                                                       'vars' => '',
46684                                                                                                       'line' => 625
46685                                                                                                     }, 'Parse::RecDescent::Rule' ),
46686                               'before' => bless( {
46687                                                    'impcount' => 0,
46688                                                    'calls' => [],
46689                                                    'changed' => 0,
46690                                                    'opcount' => 0,
46691                                                    'prods' => [
46692                                                                 bless( {
46693                                                                          'number' => '0',
46694                                                                          'strcount' => 0,
46695                                                                          'dircount' => 0,
46696                                                                          'uncommit' => undef,
46697                                                                          'error' => undef,
46698                                                                          'patcount' => 1,
46699                                                                          'actcount' => 0,
46700                                                                          'items' => [
46701                                                                                       bless( {
46702                                                                                                'pattern' => 'NO CASCADE BEFORE',
46703                                                                                                'hashname' => '__PATTERN1__',
46704                                                                                                'description' => '/NO CASCADE BEFORE/i',
46705                                                                                                'lookahead' => 0,
46706                                                                                                'rdelim' => '/',
46707                                                                                                'line' => 268,
46708                                                                                                'mod' => 'i',
46709                                                                                                'ldelim' => '/'
46710                                                                                              }, 'Parse::RecDescent::Token' )
46711                                                                                     ],
46712                                                                          'line' => undef
46713                                                                        }, 'Parse::RecDescent::Production' )
46714                                                               ],
46715                                                    'name' => 'before',
46716                                                    'vars' => '',
46717                                                    'line' => 268
46718                                                  }, 'Parse::RecDescent::Rule' ),
46719                               '_alternation_1_of_production_83_of_rule_sysibm_function' => bless( {
46720                                                                                                     'impcount' => 0,
46721                                                                                                     'calls' => [],
46722                                                                                                     'changed' => 0,
46723                                                                                                     'opcount' => 0,
46724                                                                                                     'prods' => [
46725                                                                                                                  bless( {
46726                                                                                                                           'number' => '0',
46727                                                                                                                           'strcount' => 0,
46728                                                                                                                           'dircount' => 0,
46729                                                                                                                           'uncommit' => undef,
46730                                                                                                                           'error' => undef,
46731                                                                                                                           'patcount' => 1,
46732                                                                                                                           'actcount' => 0,
46733                                                                                                                           'items' => [
46734                                                                                                                                        bless( {
46735                                                                                                                                                 'pattern' => 'UCASE',
46736                                                                                                                                                 'hashname' => '__PATTERN1__',
46737                                                                                                                                                 'description' => '/UCASE/i',
46738                                                                                                                                                 'lookahead' => 0,
46739                                                                                                                                                 'rdelim' => '/',
46740                                                                                                                                                 'line' => 628,
46741                                                                                                                                                 'mod' => 'i',
46742                                                                                                                                                 'ldelim' => '/'
46743                                                                                                                                               }, 'Parse::RecDescent::Token' )
46744                                                                                                                                      ],
46745                                                                                                                           'line' => undef
46746                                                                                                                         }, 'Parse::RecDescent::Production' ),
46747                                                                                                                  bless( {
46748                                                                                                                           'number' => '1',
46749                                                                                                                           'strcount' => 0,
46750                                                                                                                           'dircount' => 0,
46751                                                                                                                           'uncommit' => undef,
46752                                                                                                                           'error' => undef,
46753                                                                                                                           'patcount' => 1,
46754                                                                                                                           'actcount' => 0,
46755                                                                                                                           'items' => [
46756                                                                                                                                        bless( {
46757                                                                                                                                                 'pattern' => 'UPPER',
46758                                                                                                                                                 'hashname' => '__PATTERN1__',
46759                                                                                                                                                 'description' => '/UPPER/i',
46760                                                                                                                                                 'lookahead' => 0,
46761                                                                                                                                                 'rdelim' => '/',
46762                                                                                                                                                 'line' => 628,
46763                                                                                                                                                 'mod' => 'i',
46764                                                                                                                                                 'ldelim' => '/'
46765                                                                                                                                               }, 'Parse::RecDescent::Token' )
46766                                                                                                                                      ],
46767                                                                                                                           'line' => 628
46768                                                                                                                         }, 'Parse::RecDescent::Production' )
46769                                                                                                                ],
46770                                                                                                     'name' => '_alternation_1_of_production_83_of_rule_sysibm_function',
46771                                                                                                     'vars' => '',
46772                                                                                                     'line' => 628
46773                                                                                                   }, 'Parse::RecDescent::Rule' ),
46774                               'ranking_function' => bless( {
46775                                                              'impcount' => 1,
46776                                                              'calls' => [
46777                                                                           '_alternation_1_of_production_1_of_rule_ranking_function',
46778                                                                           'window_partition_clause',
46779                                                                           'window_order_clause'
46780                                                                         ],
46781                                                              'changed' => 0,
46782                                                              'opcount' => 0,
46783                                                              'prods' => [
46784                                                                           bless( {
46785                                                                                    'number' => '0',
46786                                                                                    'strcount' => 2,
46787                                                                                    'dircount' => 0,
46788                                                                                    'uncommit' => undef,
46789                                                                                    'error' => undef,
46790                                                                                    'patcount' => 1,
46791                                                                                    'actcount' => 0,
46792                                                                                    'items' => [
46793                                                                                                 bless( {
46794                                                                                                          'subrule' => '_alternation_1_of_production_1_of_rule_ranking_function',
46795                                                                                                          'matchrule' => 0,
46796                                                                                                          'implicit' => '/RANK/, or /DENSE_RANK|DENSERANK/i',
46797                                                                                                          'argcode' => undef,
46798                                                                                                          'lookahead' => 0,
46799                                                                                                          'line' => 544
46800                                                                                                        }, 'Parse::RecDescent::Subrule' ),
46801                                                                                                 bless( {
46802                                                                                                          'pattern' => 'OVER',
46803                                                                                                          'hashname' => '__PATTERN1__',
46804                                                                                                          'description' => '/OVER/i',
46805                                                                                                          'lookahead' => 0,
46806                                                                                                          'rdelim' => '/',
46807                                                                                                          'line' => 544,
46808                                                                                                          'mod' => 'i',
46809                                                                                                          'ldelim' => '/'
46810                                                                                                        }, 'Parse::RecDescent::Token' ),
46811                                                                                                 bless( {
46812                                                                                                          'pattern' => '(',
46813                                                                                                          'hashname' => '__STRING1__',
46814                                                                                                          'description' => '\'(\'',
46815                                                                                                          'lookahead' => 0,
46816                                                                                                          'line' => 544
46817                                                                                                        }, 'Parse::RecDescent::Literal' ),
46818                                                                                                 bless( {
46819                                                                                                          'subrule' => 'window_partition_clause',
46820                                                                                                          'expected' => undef,
46821                                                                                                          'min' => 0,
46822                                                                                                          'argcode' => undef,
46823                                                                                                          'max' => 1,
46824                                                                                                          'matchrule' => 0,
46825                                                                                                          'repspec' => '?',
46826                                                                                                          'lookahead' => 0,
46827                                                                                                          'line' => 544
46828                                                                                                        }, 'Parse::RecDescent::Repetition' ),
46829                                                                                                 bless( {
46830                                                                                                          'subrule' => 'window_order_clause',
46831                                                                                                          'matchrule' => 0,
46832                                                                                                          'implicit' => undef,
46833                                                                                                          'argcode' => undef,
46834                                                                                                          'lookahead' => 0,
46835                                                                                                          'line' => 544
46836                                                                                                        }, 'Parse::RecDescent::Subrule' ),
46837                                                                                                 bless( {
46838                                                                                                          'pattern' => ')',
46839                                                                                                          'hashname' => '__STRING2__',
46840                                                                                                          'description' => '\')\'',
46841                                                                                                          'lookahead' => 0,
46842                                                                                                          'line' => 544
46843                                                                                                        }, 'Parse::RecDescent::Literal' )
46844                                                                                               ],
46845                                                                                    'line' => undef
46846                                                                                  }, 'Parse::RecDescent::Production' )
46847                                                                         ],
46848                                                              'name' => 'ranking_function',
46849                                                              'vars' => '',
46850                                                              'line' => 542
46851                                                            }, 'Parse::RecDescent::Rule' ),
46852                               '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition' => bless( {
46853                                                                                                                                            'impcount' => 0,
46854                                                                                                                                            'calls' => [
46855                                                                                                                                                         'numeric_constant'
46856                                                                                                                                                       ],
46857                                                                                                                                            'changed' => 0,
46858                                                                                                                                            'opcount' => 0,
46859                                                                                                                                            'prods' => [
46860                                                                                                                                                         bless( {
46861                                                                                                                                                                  'number' => '0',
46862                                                                                                                                                                  'strcount' => 0,
46863                                                                                                                                                                  'dircount' => 0,
46864                                                                                                                                                                  'uncommit' => undef,
46865                                                                                                                                                                  'error' => undef,
46866                                                                                                                                                                  'patcount' => 1,
46867                                                                                                                                                                  'actcount' => 0,
46868                                                                                                                                                                  'items' => [
46869                                                                                                                                                                               bless( {
46870                                                                                                                                                                                        'pattern' => 'SELECTIVITY',
46871                                                                                                                                                                                        'hashname' => '__PATTERN1__',
46872                                                                                                                                                                                        'description' => '/SELECTIVITY/i',
46873                                                                                                                                                                                        'lookahead' => 0,
46874                                                                                                                                                                                        'rdelim' => '/',
46875                                                                                                                                                                                        'line' => 628,
46876                                                                                                                                                                                        'mod' => 'i',
46877                                                                                                                                                                                        'ldelim' => '/'
46878                                                                                                                                                                                      }, 'Parse::RecDescent::Token' ),
46879                                                                                                                                                                               bless( {
46880                                                                                                                                                                                        'subrule' => 'numeric_constant',
46881                                                                                                                                                                                        'matchrule' => 0,
46882                                                                                                                                                                                        'implicit' => undef,
46883                                                                                                                                                                                        'argcode' => undef,
46884                                                                                                                                                                                        'lookahead' => 0,
46885                                                                                                                                                                                        'line' => 628
46886                                                                                                                                                                                      }, 'Parse::RecDescent::Subrule' )
46887                                                                                                                                                                             ],
46888                                                                                                                                                                  'line' => undef
46889                                                                                                                                                                }, 'Parse::RecDescent::Production' )
46890                                                                                                                                                       ],
46891                                                                                                                                            'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
46892                                                                                                                                            'vars' => '',
46893                                                                                                                                            'line' => 628
46894                                                                                                                                          }, 'Parse::RecDescent::Rule' ),
46895                               '_alternation_1_of_production_1_of_rule_sysibm_function' => bless( {
46896                                                                                                    'impcount' => 0,
46897                                                                                                    'calls' => [],
46898                                                                                                    'changed' => 0,
46899                                                                                                    'opcount' => 0,
46900                                                                                                    'prods' => [
46901                                                                                                                 bless( {
46902                                                                                                                          'number' => '0',
46903                                                                                                                          'strcount' => 0,
46904                                                                                                                          'dircount' => 0,
46905                                                                                                                          'uncommit' => undef,
46906                                                                                                                          'error' => undef,
46907                                                                                                                          'patcount' => 1,
46908                                                                                                                          'actcount' => 0,
46909                                                                                                                          'items' => [
46910                                                                                                                                       bless( {
46911                                                                                                                                                'pattern' => 'ABS',
46912                                                                                                                                                'hashname' => '__PATTERN1__',
46913                                                                                                                                                'description' => '/ABS/i',
46914                                                                                                                                                'lookahead' => 0,
46915                                                                                                                                                'rdelim' => '/',
46916                                                                                                                                                'line' => 628,
46917                                                                                                                                                'mod' => 'i',
46918                                                                                                                                                'ldelim' => '/'
46919                                                                                                                                              }, 'Parse::RecDescent::Token' )
46920                                                                                                                                     ],
46921                                                                                                                          'line' => undef
46922                                                                                                                        }, 'Parse::RecDescent::Production' ),
46923                                                                                                                 bless( {
46924                                                                                                                          'number' => '1',
46925                                                                                                                          'strcount' => 0,
46926                                                                                                                          'dircount' => 0,
46927                                                                                                                          'uncommit' => undef,
46928                                                                                                                          'error' => undef,
46929                                                                                                                          'patcount' => 1,
46930                                                                                                                          'actcount' => 0,
46931                                                                                                                          'items' => [
46932                                                                                                                                       bless( {
46933                                                                                                                                                'pattern' => 'ABSVAL',
46934                                                                                                                                                'hashname' => '__PATTERN1__',
46935                                                                                                                                                'description' => '/ABSVAL/i',
46936                                                                                                                                                'lookahead' => 0,
46937                                                                                                                                                'rdelim' => '/',
46938                                                                                                                                                'line' => 628,
46939                                                                                                                                                'mod' => 'i',
46940                                                                                                                                                'ldelim' => '/'
46941                                                                                                                                              }, 'Parse::RecDescent::Token' )
46942                                                                                                                                     ],
46943                                                                                                                          'line' => 628
46944                                                                                                                        }, 'Parse::RecDescent::Production' )
46945                                                                                                               ],
46946                                                                                                    'name' => '_alternation_1_of_production_1_of_rule_sysibm_function',
46947                                                                                                    'vars' => '',
46948                                                                                                    'line' => 628
46949                                                                                                  }, 'Parse::RecDescent::Rule' ),
46950                               'reference_b' => bless( {
46951                                                         'impcount' => 0,
46952                                                         'calls' => [
46953                                                                      'old_new_corr'
46954                                                                    ],
46955                                                         'changed' => 0,
46956                                                         'opcount' => 0,
46957                                                         'prods' => [
46958                                                                      bless( {
46959                                                                               'number' => '0',
46960                                                                               'strcount' => 0,
46961                                                                               'dircount' => 0,
46962                                                                               'uncommit' => undef,
46963                                                                               'error' => undef,
46964                                                                               'patcount' => 1,
46965                                                                               'actcount' => 1,
46966                                                                               'items' => [
46967                                                                                            bless( {
46968                                                                                                     'pattern' => 'REFERENCING',
46969                                                                                                     'hashname' => '__PATTERN1__',
46970                                                                                                     'description' => '/REFERENCING/i',
46971                                                                                                     'lookahead' => 0,
46972                                                                                                     'rdelim' => '/',
46973                                                                                                     'line' => 280,
46974                                                                                                     'mod' => 'i',
46975                                                                                                     'ldelim' => '/'
46976                                                                                                   }, 'Parse::RecDescent::Token' ),
46977                                                                                            bless( {
46978                                                                                                     'subrule' => 'old_new_corr',
46979                                                                                                     'expected' => undef,
46980                                                                                                     'min' => 0,
46981                                                                                                     'argcode' => undef,
46982                                                                                                     'max' => 2,
46983                                                                                                     'matchrule' => 0,
46984                                                                                                     'repspec' => '0..2',
46985                                                                                                     'lookahead' => 0,
46986                                                                                                     'line' => 280
46987                                                                                                   }, 'Parse::RecDescent::Repetition' ),
46988                                                                                            bless( {
46989                                                                                                     'hashname' => '__ACTION1__',
46990                                                                                                     'lookahead' => 0,
46991                                                                                                     'line' => 281,
46992                                                                                                     'code' => '{ $return = join(\' \', $item[1], join(\' \', @{$item[2]}) ) }'
46993                                                                                                   }, 'Parse::RecDescent::Action' )
46994                                                                                          ],
46995                                                                               'line' => undef
46996                                                                             }, 'Parse::RecDescent::Production' )
46997                                                                    ],
46998                                                         'name' => 'reference_b',
46999                                                         'vars' => '',
47000                                                         'line' => 280
47001                                                       }, 'Parse::RecDescent::Rule' ),
47002                               '_alternation_1_of_production_1_of_rule_simple_when_clause' => bless( {
47003                                                                                                       'impcount' => 1,
47004                                                                                                       'calls' => [
47005                                                                                                                    'search_condition',
47006                                                                                                                    '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause'
47007                                                                                                                  ],
47008                                                                                                       'changed' => 0,
47009                                                                                                       'opcount' => 0,
47010                                                                                                       'prods' => [
47011                                                                                                                    bless( {
47012                                                                                                                             'number' => '0',
47013                                                                                                                             'strcount' => 0,
47014                                                                                                                             'dircount' => 0,
47015                                                                                                                             'uncommit' => undef,
47016                                                                                                                             'error' => undef,
47017                                                                                                                             'patcount' => 2,
47018                                                                                                                             'actcount' => 0,
47019                                                                                                                             'items' => [
47020                                                                                                                                          bless( {
47021                                                                                                                                                   'pattern' => 'WHEN',
47022                                                                                                                                                   'hashname' => '__PATTERN1__',
47023                                                                                                                                                   'description' => '/WHEN/i',
47024                                                                                                                                                   'lookahead' => 0,
47025                                                                                                                                                   'rdelim' => '/',
47026                                                                                                                                                   'line' => 624,
47027                                                                                                                                                   'mod' => 'i',
47028                                                                                                                                                   'ldelim' => '/'
47029                                                                                                                                                 }, 'Parse::RecDescent::Token' ),
47030                                                                                                                                          bless( {
47031                                                                                                                                                   'subrule' => 'search_condition',
47032                                                                                                                                                   'matchrule' => 0,
47033                                                                                                                                                   'implicit' => undef,
47034                                                                                                                                                   'argcode' => undef,
47035                                                                                                                                                   'lookahead' => 0,
47036                                                                                                                                                   'line' => 624
47037                                                                                                                                                 }, 'Parse::RecDescent::Subrule' ),
47038                                                                                                                                          bless( {
47039                                                                                                                                                   'pattern' => 'THEN',
47040                                                                                                                                                   'hashname' => '__PATTERN2__',
47041                                                                                                                                                   'description' => '/THEN/i',
47042                                                                                                                                                   'lookahead' => 0,
47043                                                                                                                                                   'rdelim' => '/',
47044                                                                                                                                                   'line' => 624,
47045                                                                                                                                                   'mod' => 'i',
47046                                                                                                                                                   'ldelim' => '/'
47047                                                                                                                                                 }, 'Parse::RecDescent::Token' ),
47048                                                                                                                                          bless( {
47049                                                                                                                                                   'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause',
47050                                                                                                                                                   'matchrule' => 0,
47051                                                                                                                                                   'implicit' => 'result_expression, or /NULL/i',
47052                                                                                                                                                   'argcode' => undef,
47053                                                                                                                                                   'lookahead' => 0,
47054                                                                                                                                                   'line' => 627
47055                                                                                                                                                 }, 'Parse::RecDescent::Subrule' )
47056                                                                                                                                        ],
47057                                                                                                                             'line' => undef
47058                                                                                                                           }, 'Parse::RecDescent::Production' )
47059                                                                                                                  ],
47060                                                                                                       'name' => '_alternation_1_of_production_1_of_rule_simple_when_clause',
47061                                                                                                       'vars' => '',
47062                                                                                                       'line' => 624
47063                                                                                                     }, 'Parse::RecDescent::Rule' ),
47064                               '_alternation_1_of_production_9_of_rule_sysibm_function' => bless( {
47065                                                                                                    'impcount' => 0,
47066                                                                                                    'calls' => [],
47067                                                                                                    'changed' => 0,
47068                                                                                                    'opcount' => 0,
47069                                                                                                    'prods' => [
47070                                                                                                                 bless( {
47071                                                                                                                          'number' => '0',
47072                                                                                                                          'strcount' => 0,
47073                                                                                                                          'dircount' => 0,
47074                                                                                                                          'uncommit' => undef,
47075                                                                                                                          'error' => undef,
47076                                                                                                                          'patcount' => 1,
47077                                                                                                                          'actcount' => 0,
47078                                                                                                                          'items' => [
47079                                                                                                                                       bless( {
47080                                                                                                                                                'pattern' => 'CORRELATION',
47081                                                                                                                                                'hashname' => '__PATTERN1__',
47082                                                                                                                                                'description' => '/CORRELATION/i',
47083                                                                                                                                                'lookahead' => 0,
47084                                                                                                                                                'rdelim' => '/',
47085                                                                                                                                                'line' => 628,
47086                                                                                                                                                'mod' => 'i',
47087                                                                                                                                                'ldelim' => '/'
47088                                                                                                                                              }, 'Parse::RecDescent::Token' )
47089                                                                                                                                     ],
47090                                                                                                                          'line' => undef
47091                                                                                                                        }, 'Parse::RecDescent::Production' ),
47092                                                                                                                 bless( {
47093                                                                                                                          'number' => '1',
47094                                                                                                                          'strcount' => 0,
47095                                                                                                                          'dircount' => 0,
47096                                                                                                                          'uncommit' => undef,
47097                                                                                                                          'error' => undef,
47098                                                                                                                          'patcount' => 1,
47099                                                                                                                          'actcount' => 0,
47100                                                                                                                          'items' => [
47101                                                                                                                                       bless( {
47102                                                                                                                                                'pattern' => 'CORR',
47103                                                                                                                                                'hashname' => '__PATTERN1__',
47104                                                                                                                                                'description' => '/CORR/',
47105                                                                                                                                                'lookahead' => 0,
47106                                                                                                                                                'rdelim' => '/',
47107                                                                                                                                                'line' => 628,
47108                                                                                                                                                'mod' => '',
47109                                                                                                                                                'ldelim' => '/'
47110                                                                                                                                              }, 'Parse::RecDescent::Token' )
47111                                                                                                                                     ],
47112                                                                                                                          'line' => 628
47113                                                                                                                        }, 'Parse::RecDescent::Production' )
47114                                                                                                               ],
47115                                                                                                    'name' => '_alternation_1_of_production_9_of_rule_sysibm_function',
47116                                                                                                    'vars' => '',
47117                                                                                                    'line' => 628
47118                                                                                                  }, 'Parse::RecDescent::Rule' ),
47119                               '_alternation_1_of_production_7_of_rule_sysfun' => bless( {
47120                                                                                           'impcount' => 0,
47121                                                                                           'calls' => [],
47122                                                                                           'changed' => 0,
47123                                                                                           'opcount' => 0,
47124                                                                                           'prods' => [
47125                                                                                                        bless( {
47126                                                                                                                 'number' => '0',
47127                                                                                                                 'strcount' => 0,
47128                                                                                                                 'dircount' => 0,
47129                                                                                                                 'uncommit' => undef,
47130                                                                                                                 'error' => undef,
47131                                                                                                                 'patcount' => 1,
47132                                                                                                                 'actcount' => 0,
47133                                                                                                                 'items' => [
47134                                                                                                                              bless( {
47135                                                                                                                                       'pattern' => 'CEIL',
47136                                                                                                                                       'hashname' => '__PATTERN1__',
47137                                                                                                                                       'description' => '/CEIL/i',
47138                                                                                                                                       'lookahead' => 0,
47139                                                                                                                                       'rdelim' => '/',
47140                                                                                                                                       'line' => 628,
47141                                                                                                                                       'mod' => 'i',
47142                                                                                                                                       'ldelim' => '/'
47143                                                                                                                                     }, 'Parse::RecDescent::Token' )
47144                                                                                                                            ],
47145                                                                                                                 'line' => undef
47146                                                                                                               }, 'Parse::RecDescent::Production' ),
47147                                                                                                        bless( {
47148                                                                                                                 'number' => '1',
47149                                                                                                                 'strcount' => 0,
47150                                                                                                                 'dircount' => 0,
47151                                                                                                                 'uncommit' => undef,
47152                                                                                                                 'error' => undef,
47153                                                                                                                 'patcount' => 1,
47154                                                                                                                 'actcount' => 0,
47155                                                                                                                 'items' => [
47156                                                                                                                              bless( {
47157                                                                                                                                       'pattern' => 'CEILING',
47158                                                                                                                                       'hashname' => '__PATTERN1__',
47159                                                                                                                                       'description' => '/CEILING/i',
47160                                                                                                                                       'lookahead' => 0,
47161                                                                                                                                       'rdelim' => '/',
47162                                                                                                                                       'line' => 628,
47163                                                                                                                                       'mod' => 'i',
47164                                                                                                                                       'ldelim' => '/'
47165                                                                                                                                     }, 'Parse::RecDescent::Token' )
47166                                                                                                                            ],
47167                                                                                                                 'line' => 628
47168                                                                                                               }, 'Parse::RecDescent::Production' )
47169                                                                                                      ],
47170                                                                                           'name' => '_alternation_1_of_production_7_of_rule_sysfun',
47171                                                                                           'vars' => '',
47172                                                                                           'line' => 628
47173                                                                                         }, 'Parse::RecDescent::Rule' ),
47174                               'prevval_expression' => bless( {
47175                                                                'impcount' => 0,
47176                                                                'calls' => [
47177                                                                             'sequence_name'
47178                                                                           ],
47179                                                                'changed' => 0,
47180                                                                'opcount' => 0,
47181                                                                'prods' => [
47182                                                                             bless( {
47183                                                                                      'number' => '0',
47184                                                                                      'strcount' => 0,
47185                                                                                      'dircount' => 0,
47186                                                                                      'uncommit' => undef,
47187                                                                                      'error' => undef,
47188                                                                                      'patcount' => 1,
47189                                                                                      'actcount' => 0,
47190                                                                                      'items' => [
47191                                                                                                   bless( {
47192                                                                                                            'pattern' => 'PREVVAL\\s+FOR',
47193                                                                                                            'hashname' => '__PATTERN1__',
47194                                                                                                            'description' => '/PREVVAL\\\\s+FOR/i',
47195                                                                                                            'lookahead' => 0,
47196                                                                                                            'rdelim' => '/',
47197                                                                                                            'line' => 613,
47198                                                                                                            'mod' => 'i',
47199                                                                                                            'ldelim' => '/'
47200                                                                                                          }, 'Parse::RecDescent::Token' ),
47201                                                                                                   bless( {
47202                                                                                                            'subrule' => 'sequence_name',
47203                                                                                                            'matchrule' => 0,
47204                                                                                                            'implicit' => undef,
47205                                                                                                            'argcode' => undef,
47206                                                                                                            'lookahead' => 0,
47207                                                                                                            'line' => 613
47208                                                                                                          }, 'Parse::RecDescent::Subrule' )
47209                                                                                                 ],
47210                                                                                      'line' => undef
47211                                                                                    }, 'Parse::RecDescent::Production' )
47212                                                                           ],
47213                                                                'name' => 'prevval_expression',
47214                                                                'vars' => '',
47215                                                                'line' => 613
47216                                                              }, 'Parse::RecDescent::Rule' ),
47217                               'where_clause' => bless( {
47218                                                          'impcount' => 0,
47219                                                          'calls' => [
47220                                                                       'WHERE',
47221                                                                       'search_condition'
47222                                                                     ],
47223                                                          'changed' => 0,
47224                                                          'opcount' => 0,
47225                                                          'prods' => [
47226                                                                       bless( {
47227                                                                                'number' => '0',
47228                                                                                'strcount' => 0,
47229                                                                                'dircount' => 0,
47230                                                                                'uncommit' => undef,
47231                                                                                'error' => undef,
47232                                                                                'patcount' => 0,
47233                                                                                'actcount' => 0,
47234                                                                                'items' => [
47235                                                                                             bless( {
47236                                                                                                      'subrule' => 'WHERE',
47237                                                                                                      'matchrule' => 0,
47238                                                                                                      'implicit' => undef,
47239                                                                                                      'argcode' => undef,
47240                                                                                                      'lookahead' => 0,
47241                                                                                                      'line' => 218
47242                                                                                                    }, 'Parse::RecDescent::Subrule' ),
47243                                                                                             bless( {
47244                                                                                                      'subrule' => 'search_condition',
47245                                                                                                      'matchrule' => 0,
47246                                                                                                      'implicit' => undef,
47247                                                                                                      'argcode' => undef,
47248                                                                                                      'lookahead' => 0,
47249                                                                                                      'line' => 218
47250                                                                                                    }, 'Parse::RecDescent::Subrule' )
47251                                                                                           ],
47252                                                                                'line' => undef
47253                                                                              }, 'Parse::RecDescent::Production' )
47254                                                                     ],
47255                                                          'name' => 'where_clause',
47256                                                          'vars' => '',
47257                                                          'line' => 216
47258                                                        }, 'Parse::RecDescent::Rule' ),
47259                               'group_start' => bless( {
47260                                                         'impcount' => 0,
47261                                                         'calls' => [
47262                                                                      'unsigned_constant'
47263                                                                    ],
47264                                                         'changed' => 0,
47265                                                         'opcount' => 0,
47266                                                         'prods' => [
47267                                                                      bless( {
47268                                                                               'number' => '0',
47269                                                                               'strcount' => 0,
47270                                                                               'dircount' => 0,
47271                                                                               'uncommit' => undef,
47272                                                                               'error' => undef,
47273                                                                               'patcount' => 1,
47274                                                                               'actcount' => 0,
47275                                                                               'items' => [
47276                                                                                            bless( {
47277                                                                                                     'pattern' => 'UNBOUNDED\\s+PRECEDING',
47278                                                                                                     'hashname' => '__PATTERN1__',
47279                                                                                                     'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
47280                                                                                                     'lookahead' => 0,
47281                                                                                                     'rdelim' => '/',
47282                                                                                                     'line' => 574,
47283                                                                                                     'mod' => 'i',
47284                                                                                                     'ldelim' => '/'
47285                                                                                                   }, 'Parse::RecDescent::Token' )
47286                                                                                          ],
47287                                                                               'line' => undef
47288                                                                             }, 'Parse::RecDescent::Production' ),
47289                                                                      bless( {
47290                                                                               'number' => '1',
47291                                                                               'strcount' => 0,
47292                                                                               'dircount' => 0,
47293                                                                               'uncommit' => undef,
47294                                                                               'error' => undef,
47295                                                                               'patcount' => 1,
47296                                                                               'actcount' => 0,
47297                                                                               'items' => [
47298                                                                                            bless( {
47299                                                                                                     'subrule' => 'unsigned_constant',
47300                                                                                                     'matchrule' => 0,
47301                                                                                                     'implicit' => undef,
47302                                                                                                     'argcode' => undef,
47303                                                                                                     'lookahead' => 0,
47304                                                                                                     'line' => 575
47305                                                                                                   }, 'Parse::RecDescent::Subrule' ),
47306                                                                                            bless( {
47307                                                                                                     'pattern' => 'PRECEDING',
47308                                                                                                     'hashname' => '__PATTERN1__',
47309                                                                                                     'description' => '/PRECEDING/i',
47310                                                                                                     'lookahead' => 0,
47311                                                                                                     'rdelim' => '/',
47312                                                                                                     'line' => 575,
47313                                                                                                     'mod' => 'i',
47314                                                                                                     'ldelim' => '/'
47315                                                                                                   }, 'Parse::RecDescent::Token' )
47316                                                                                          ],
47317                                                                               'line' => 575
47318                                                                             }, 'Parse::RecDescent::Production' ),
47319                                                                      bless( {
47320                                                                               'number' => '2',
47321                                                                               'strcount' => 0,
47322                                                                               'dircount' => 0,
47323                                                                               'uncommit' => undef,
47324                                                                               'error' => undef,
47325                                                                               'patcount' => 1,
47326                                                                               'actcount' => 0,
47327                                                                               'items' => [
47328                                                                                            bless( {
47329                                                                                                     'pattern' => 'CURRENT\\s+ROW',
47330                                                                                                     'hashname' => '__PATTERN1__',
47331                                                                                                     'description' => '/CURRENT\\\\s+ROW/i',
47332                                                                                                     'lookahead' => 0,
47333                                                                                                     'rdelim' => '/',
47334                                                                                                     'line' => 576,
47335                                                                                                     'mod' => 'i',
47336                                                                                                     'ldelim' => '/'
47337                                                                                                   }, 'Parse::RecDescent::Token' )
47338                                                                                          ],
47339                                                                               'line' => 576
47340                                                                             }, 'Parse::RecDescent::Production' )
47341                                                                    ],
47342                                                         'name' => 'group_start',
47343                                                         'vars' => '',
47344                                                         'line' => 574
47345                                                       }, 'Parse::RecDescent::Rule' ),
47346                               'correlation_name' => bless( {
47347                                                              'impcount' => 0,
47348                                                              'calls' => [
47349                                                                           'NAME'
47350                                                                         ],
47351                                                              'changed' => 0,
47352                                                              'opcount' => 0,
47353                                                              'prods' => [
47354                                                                           bless( {
47355                                                                                    'number' => '0',
47356                                                                                    'strcount' => 0,
47357                                                                                    'dircount' => 0,
47358                                                                                    'uncommit' => undef,
47359                                                                                    'error' => undef,
47360                                                                                    'patcount' => 0,
47361                                                                                    'actcount' => 0,
47362                                                                                    'items' => [
47363                                                                                                 bless( {
47364                                                                                                          'subrule' => 'NAME',
47365                                                                                                          'matchrule' => 0,
47366                                                                                                          'implicit' => undef,
47367                                                                                                          'argcode' => undef,
47368                                                                                                          'lookahead' => 0,
47369                                                                                                          'line' => 138
47370                                                                                                        }, 'Parse::RecDescent::Subrule' )
47371                                                                                               ],
47372                                                                                    'line' => undef
47373                                                                                  }, 'Parse::RecDescent::Production' )
47374                                                                         ],
47375                                                              'name' => 'correlation_name',
47376                                                              'vars' => '',
47377                                                              'line' => 138
47378                                                            }, 'Parse::RecDescent::Rule' ),
47379                               'SQL_procedure_statement' => bless( {
47380                                                                     'impcount' => 0,
47381                                                                     'calls' => [],
47382                                                                     'changed' => 0,
47383                                                                     'opcount' => 0,
47384                                                                     'prods' => [
47385                                                                                  bless( {
47386                                                                                           'number' => '0',
47387                                                                                           'strcount' => 0,
47388                                                                                           'dircount' => 0,
47389                                                                                           'uncommit' => undef,
47390                                                                                           'error' => undef,
47391                                                                                           'patcount' => 2,
47392                                                                                           'actcount' => 1,
47393                                                                                           'items' => [
47394                                                                                                        bless( {
47395                                                                                                                 'pattern' => '[^;]*',
47396                                                                                                                 'hashname' => '__PATTERN1__',
47397                                                                                                                 'description' => '/[^;]*/',
47398                                                                                                                 'lookahead' => 0,
47399                                                                                                                 'rdelim' => '/',
47400                                                                                                                 'line' => 94,
47401                                                                                                                 'mod' => '',
47402                                                                                                                 'ldelim' => '/'
47403                                                                                                               }, 'Parse::RecDescent::Token' ),
47404                                                                                                        bless( {
47405                                                                                                                 'pattern' => '(;|\\z)',
47406                                                                                                                 'hashname' => '__PATTERN2__',
47407                                                                                                                 'description' => '/(;|\\\\z)/',
47408                                                                                                                 'lookahead' => 0,
47409                                                                                                                 'rdelim' => '/',
47410                                                                                                                 'line' => 94,
47411                                                                                                                 'mod' => '',
47412                                                                                                                 'ldelim' => '/'
47413                                                                                                               }, 'Parse::RecDescent::Token' ),
47414                                                                                                        bless( {
47415                                                                                                                 'hashname' => '__ACTION1__',
47416                                                                                                                 'lookahead' => 0,
47417                                                                                                                 'line' => 94,
47418                                                                                                                 'code' => '{ $return = $item[1] . $item[2] }'
47419                                                                                                               }, 'Parse::RecDescent::Action' )
47420                                                                                                      ],
47421                                                                                           'line' => undef
47422                                                                                         }, 'Parse::RecDescent::Production' )
47423                                                                                ],
47424                                                                     'name' => 'SQL_procedure_statement',
47425                                                                     'vars' => '',
47426                                                                     'line' => 94
47427                                                                   }, 'Parse::RecDescent::Rule' ),
47428                               'group_between' => bless( {
47429                                                           'impcount' => 0,
47430                                                           'calls' => [
47431                                                                        'group_bound1',
47432                                                                        'group_bound2'
47433                                                                      ],
47434                                                           'changed' => 0,
47435                                                           'opcount' => 0,
47436                                                           'prods' => [
47437                                                                        bless( {
47438                                                                                 'number' => '0',
47439                                                                                 'strcount' => 0,
47440                                                                                 'dircount' => 0,
47441                                                                                 'uncommit' => undef,
47442                                                                                 'error' => undef,
47443                                                                                 'patcount' => 2,
47444                                                                                 'actcount' => 0,
47445                                                                                 'items' => [
47446                                                                                              bless( {
47447                                                                                                       'pattern' => 'BETWEEN',
47448                                                                                                       'hashname' => '__PATTERN1__',
47449                                                                                                       'description' => '/BETWEEN/i',
47450                                                                                                       'lookahead' => 0,
47451                                                                                                       'rdelim' => '/',
47452                                                                                                       'line' => 578,
47453                                                                                                       'mod' => 'i',
47454                                                                                                       'ldelim' => '/'
47455                                                                                                     }, 'Parse::RecDescent::Token' ),
47456                                                                                              bless( {
47457                                                                                                       'subrule' => 'group_bound1',
47458                                                                                                       'matchrule' => 0,
47459                                                                                                       'implicit' => undef,
47460                                                                                                       'argcode' => undef,
47461                                                                                                       'lookahead' => 0,
47462                                                                                                       'line' => 578
47463                                                                                                     }, 'Parse::RecDescent::Subrule' ),
47464                                                                                              bless( {
47465                                                                                                       'pattern' => 'AND',
47466                                                                                                       'hashname' => '__PATTERN2__',
47467                                                                                                       'description' => '/AND/i',
47468                                                                                                       'lookahead' => 0,
47469                                                                                                       'rdelim' => '/',
47470                                                                                                       'line' => 578,
47471                                                                                                       'mod' => 'i',
47472                                                                                                       'ldelim' => '/'
47473                                                                                                     }, 'Parse::RecDescent::Token' ),
47474                                                                                              bless( {
47475                                                                                                       'subrule' => 'group_bound2',
47476                                                                                                       'matchrule' => 0,
47477                                                                                                       'implicit' => undef,
47478                                                                                                       'argcode' => undef,
47479                                                                                                       'lookahead' => 0,
47480                                                                                                       'line' => 578
47481                                                                                                     }, 'Parse::RecDescent::Subrule' )
47482                                                                                            ],
47483                                                                                 'line' => undef
47484                                                                               }, 'Parse::RecDescent::Production' )
47485                                                                      ],
47486                                                           'name' => 'group_between',
47487                                                           'vars' => '',
47488                                                           'line' => 578
47489                                                         }, 'Parse::RecDescent::Rule' ),
47490                               'nextval_expression' => bless( {
47491                                                                'impcount' => 0,
47492                                                                'calls' => [
47493                                                                             'sequence_name'
47494                                                                           ],
47495                                                                'changed' => 0,
47496                                                                'opcount' => 0,
47497                                                                'prods' => [
47498                                                                             bless( {
47499                                                                                      'number' => '0',
47500                                                                                      'strcount' => 0,
47501                                                                                      'dircount' => 0,
47502                                                                                      'uncommit' => undef,
47503                                                                                      'error' => undef,
47504                                                                                      'patcount' => 1,
47505                                                                                      'actcount' => 0,
47506                                                                                      'items' => [
47507                                                                                                   bless( {
47508                                                                                                            'pattern' => 'NEXTVAL\\s+FOR',
47509                                                                                                            'hashname' => '__PATTERN1__',
47510                                                                                                            'description' => '/NEXTVAL\\\\s+FOR/i',
47511                                                                                                            'lookahead' => 0,
47512                                                                                                            'rdelim' => '/',
47513                                                                                                            'line' => 611,
47514                                                                                                            'mod' => 'i',
47515                                                                                                            'ldelim' => '/'
47516                                                                                                          }, 'Parse::RecDescent::Token' ),
47517                                                                                                   bless( {
47518                                                                                                            'subrule' => 'sequence_name',
47519                                                                                                            'matchrule' => 0,
47520                                                                                                            'implicit' => undef,
47521                                                                                                            'argcode' => undef,
47522                                                                                                            'lookahead' => 0,
47523                                                                                                            'line' => 611
47524                                                                                                          }, 'Parse::RecDescent::Subrule' )
47525                                                                                                 ],
47526                                                                                      'line' => undef
47527                                                                                    }, 'Parse::RecDescent::Production' )
47528                                                                           ],
47529                                                                'name' => 'nextval_expression',
47530                                                                'vars' => '',
47531                                                                'line' => 611
47532                                                              }, 'Parse::RecDescent::Rule' ),
47533                               'desc_option' => bless( {
47534                                                         'impcount' => 1,
47535                                                         'calls' => [
47536                                                                      '_alternation_1_of_production_1_of_rule_desc_option'
47537                                                                    ],
47538                                                         'changed' => 0,
47539                                                         'opcount' => 0,
47540                                                         'prods' => [
47541                                                                      bless( {
47542                                                                               'number' => '0',
47543                                                                               'strcount' => 0,
47544                                                                               'dircount' => 0,
47545                                                                               'uncommit' => undef,
47546                                                                               'error' => undef,
47547                                                                               'patcount' => 1,
47548                                                                               'actcount' => 0,
47549                                                                               'items' => [
47550                                                                                            bless( {
47551                                                                                                     'pattern' => 'DESC',
47552                                                                                                     'hashname' => '__PATTERN1__',
47553                                                                                                     'description' => '/DESC/i',
47554                                                                                                     'lookahead' => 0,
47555                                                                                                     'rdelim' => '/',
47556                                                                                                     'line' => 564,
47557                                                                                                     'mod' => 'i',
47558                                                                                                     'ldelim' => '/'
47559                                                                                                   }, 'Parse::RecDescent::Token' ),
47560                                                                                            bless( {
47561                                                                                                     'subrule' => '_alternation_1_of_production_1_of_rule_desc_option',
47562                                                                                                     'expected' => '/NULLS\\\\s+FIRST/i, or /NULLS\\\\s+LAST/i',
47563                                                                                                     'min' => 0,
47564                                                                                                     'argcode' => undef,
47565                                                                                                     'max' => 1,
47566                                                                                                     'matchrule' => 0,
47567                                                                                                     'repspec' => '?',
47568                                                                                                     'lookahead' => 0,
47569                                                                                                     'line' => 564
47570                                                                                                   }, 'Parse::RecDescent::Repetition' )
47571                                                                                          ],
47572                                                                               'line' => undef
47573                                                                             }, 'Parse::RecDescent::Production' )
47574                                                                    ],
47575                                                         'name' => 'desc_option',
47576                                                         'vars' => '',
47577                                                         'line' => 564
47578                                                       }, 'Parse::RecDescent::Rule' ),
47579                               'column_list' => bless( {
47580                                                         'impcount' => 0,
47581                                                         'calls' => [
47582                                                                      'column_name'
47583                                                                    ],
47584                                                         'changed' => 0,
47585                                                         'opcount' => 0,
47586                                                         'prods' => [
47587                                                                      bless( {
47588                                                                               'number' => '0',
47589                                                                               'strcount' => 2,
47590                                                                               'dircount' => 1,
47591                                                                               'uncommit' => undef,
47592                                                                               'error' => undef,
47593                                                                               'patcount' => 1,
47594                                                                               'actcount' => 1,
47595                                                                               'op' => [],
47596                                                                               'items' => [
47597                                                                                            bless( {
47598                                                                                                     'pattern' => '(',
47599                                                                                                     'hashname' => '__STRING1__',
47600                                                                                                     'description' => '\'(\'',
47601                                                                                                     'lookahead' => 0,
47602                                                                                                     'line' => 96
47603                                                                                                   }, 'Parse::RecDescent::Literal' ),
47604                                                                                            bless( {
47605                                                                                                     'expected' => '<leftop: column_name /,/ column_name>',
47606                                                                                                     'min' => 1,
47607                                                                                                     'name' => '\'column_name(s)\'',
47608                                                                                                     'max' => 100000000,
47609                                                                                                     'leftarg' => bless( {
47610                                                                                                                           'subrule' => 'column_name',
47611                                                                                                                           'matchrule' => 0,
47612                                                                                                                           'implicit' => undef,
47613                                                                                                                           'argcode' => undef,
47614                                                                                                                           'lookahead' => 0,
47615                                                                                                                           'line' => 96
47616                                                                                                                         }, 'Parse::RecDescent::Subrule' ),
47617                                                                                                     'rightarg' => bless( {
47618                                                                                                                            'subrule' => 'column_name',
47619                                                                                                                            'matchrule' => 0,
47620                                                                                                                            'implicit' => undef,
47621                                                                                                                            'argcode' => undef,
47622                                                                                                                            'lookahead' => 0,
47623                                                                                                                            'line' => 96
47624                                                                                                                          }, 'Parse::RecDescent::Subrule' ),
47625                                                                                                     'hashname' => '__DIRECTIVE1__',
47626                                                                                                     'type' => 'leftop',
47627                                                                                                     'op' => bless( {
47628                                                                                                                      'pattern' => ',',
47629                                                                                                                      'hashname' => '__PATTERN1__',
47630                                                                                                                      'description' => '/,/',
47631                                                                                                                      'lookahead' => 0,
47632                                                                                                                      'rdelim' => '/',
47633                                                                                                                      'line' => 96,
47634                                                                                                                      'mod' => '',
47635                                                                                                                      'ldelim' => '/'
47636                                                                                                                    }, 'Parse::RecDescent::Token' )
47637                                                                                                   }, 'Parse::RecDescent::Operator' ),
47638                                                                                            bless( {
47639                                                                                                     'pattern' => ')',
47640                                                                                                     'hashname' => '__STRING2__',
47641                                                                                                     'description' => '\')\'',
47642                                                                                                     'lookahead' => 0,
47643                                                                                                     'line' => 96
47644                                                                                                   }, 'Parse::RecDescent::Literal' ),
47645                                                                                            bless( {
47646                                                                                                     'hashname' => '__ACTION1__',
47647                                                                                                     'lookahead' => 0,
47648                                                                                                     'line' => 97,
47649                                                                                                     'code' => '{
47650     $return = join(\' \', \'(\', @{$item[2]}, \')\');
47651 }'
47652                                                                                                   }, 'Parse::RecDescent::Action' )
47653                                                                                          ],
47654                                                                               'line' => undef
47655                                                                             }, 'Parse::RecDescent::Production' )
47656                                                                    ],
47657                                                         'name' => 'column_list',
47658                                                         'vars' => '',
47659                                                         'line' => 96
47660                                                       }, 'Parse::RecDescent::Rule' ),
47661                               '_alternation_1_of_production_63_of_rule_sysibm_function' => bless( {
47662                                                                                                     'impcount' => 0,
47663                                                                                                     'calls' => [],
47664                                                                                                     'changed' => 0,
47665                                                                                                     'opcount' => 0,
47666                                                                                                     'prods' => [
47667                                                                                                                  bless( {
47668                                                                                                                           'number' => '0',
47669                                                                                                                           'strcount' => 0,
47670                                                                                                                           'dircount' => 0,
47671                                                                                                                           'uncommit' => undef,
47672                                                                                                                           'error' => undef,
47673                                                                                                                           'patcount' => 1,
47674                                                                                                                           'actcount' => 0,
47675                                                                                                                           'items' => [
47676                                                                                                                                        bless( {
47677                                                                                                                                                 'pattern' => 'REGR_INTERCEPT',
47678                                                                                                                                                 'hashname' => '__PATTERN1__',
47679                                                                                                                                                 'description' => '/REGR_INTERCEPT/i',
47680                                                                                                                                                 'lookahead' => 0,
47681                                                                                                                                                 'rdelim' => '/',
47682                                                                                                                                                 'line' => 628,
47683                                                                                                                                                 'mod' => 'i',
47684                                                                                                                                                 'ldelim' => '/'
47685                                                                                                                                               }, 'Parse::RecDescent::Token' )
47686                                                                                                                                      ],
47687                                                                                                                           'line' => undef
47688                                                                                                                         }, 'Parse::RecDescent::Production' ),
47689                                                                                                                  bless( {
47690                                                                                                                           'number' => '1',
47691                                                                                                                           'strcount' => 0,
47692                                                                                                                           'dircount' => 0,
47693                                                                                                                           'uncommit' => undef,
47694                                                                                                                           'error' => undef,
47695                                                                                                                           'patcount' => 1,
47696                                                                                                                           'actcount' => 0,
47697                                                                                                                           'items' => [
47698                                                                                                                                        bless( {
47699                                                                                                                                                 'pattern' => 'REGR_ICPT',
47700                                                                                                                                                 'hashname' => '__PATTERN1__',
47701                                                                                                                                                 'description' => '/REGR_ICPT/i',
47702                                                                                                                                                 'lookahead' => 0,
47703                                                                                                                                                 'rdelim' => '/',
47704                                                                                                                                                 'line' => 628,
47705                                                                                                                                                 'mod' => 'i',
47706                                                                                                                                                 'ldelim' => '/'
47707                                                                                                                                               }, 'Parse::RecDescent::Token' )
47708                                                                                                                                      ],
47709                                                                                                                           'line' => 628
47710                                                                                                                         }, 'Parse::RecDescent::Production' )
47711                                                                                                                ],
47712                                                                                                     'name' => '_alternation_1_of_production_63_of_rule_sysibm_function',
47713                                                                                                     'vars' => '',
47714                                                                                                     'line' => 628
47715                                                                                                   }, 'Parse::RecDescent::Rule' ),
47716                               'dereference_operation' => bless( {
47717                                                                   'impcount' => 1,
47718                                                                   'calls' => [
47719                                                                                'scoped_reference_expression',
47720                                                                                'name1',
47721                                                                                '_alternation_1_of_production_1_of_rule_dereference_operation'
47722                                                                              ],
47723                                                                   'changed' => 0,
47724                                                                   'opcount' => 0,
47725                                                                   'prods' => [
47726                                                                                bless( {
47727                                                                                         'number' => '0',
47728                                                                                         'strcount' => 1,
47729                                                                                         'dircount' => 0,
47730                                                                                         'uncommit' => undef,
47731                                                                                         'error' => undef,
47732                                                                                         'patcount' => 0,
47733                                                                                         'actcount' => 0,
47734                                                                                         'items' => [
47735                                                                                                      bless( {
47736                                                                                                               'subrule' => 'scoped_reference_expression',
47737                                                                                                               'matchrule' => 0,
47738                                                                                                               'implicit' => undef,
47739                                                                                                               'argcode' => undef,
47740                                                                                                               'lookahead' => 0,
47741                                                                                                               'line' => 526
47742                                                                                                             }, 'Parse::RecDescent::Subrule' ),
47743                                                                                                      bless( {
47744                                                                                                               'pattern' => '->',
47745                                                                                                               'hashname' => '__STRING1__',
47746                                                                                                               'description' => '\'->\'',
47747                                                                                                               'lookahead' => 0,
47748                                                                                                               'line' => 526
47749                                                                                                             }, 'Parse::RecDescent::Literal' ),
47750                                                                                                      bless( {
47751                                                                                                               'subrule' => 'name1',
47752                                                                                                               'matchrule' => 0,
47753                                                                                                               'implicit' => undef,
47754                                                                                                               'argcode' => undef,
47755                                                                                                               'lookahead' => 0,
47756                                                                                                               'line' => 526
47757                                                                                                             }, 'Parse::RecDescent::Subrule' ),
47758                                                                                                      bless( {
47759                                                                                                               'subrule' => '_alternation_1_of_production_1_of_rule_dereference_operation',
47760                                                                                                               'expected' => '\'(\'',
47761                                                                                                               'min' => 0,
47762                                                                                                               'argcode' => undef,
47763                                                                                                               'max' => 1,
47764                                                                                                               'matchrule' => 0,
47765                                                                                                               'repspec' => '?',
47766                                                                                                               'lookahead' => 0,
47767                                                                                                               'line' => 527
47768                                                                                                             }, 'Parse::RecDescent::Repetition' )
47769                                                                                                    ],
47770                                                                                         'line' => undef
47771                                                                                       }, 'Parse::RecDescent::Production' )
47772                                                                              ],
47773                                                                   'name' => 'dereference_operation',
47774                                                                   'vars' => '',
47775                                                                   'line' => 526
47776                                                                 }, 'Parse::RecDescent::Rule' ),
47777                               'OUTER' => bless( {
47778                                                   'impcount' => 0,
47779                                                   'calls' => [],
47780                                                   'changed' => 0,
47781                                                   'opcount' => 0,
47782                                                   'prods' => [
47783                                                                bless( {
47784                                                                         'number' => '0',
47785                                                                         'strcount' => 0,
47786                                                                         'dircount' => 0,
47787                                                                         'uncommit' => undef,
47788                                                                         'error' => undef,
47789                                                                         'patcount' => 1,
47790                                                                         'actcount' => 0,
47791                                                                         'items' => [
47792                                                                                      bless( {
47793                                                                                               'pattern' => 'outer',
47794                                                                                               'hashname' => '__PATTERN1__',
47795                                                                                               'description' => '/outer/i',
47796                                                                                               'lookahead' => 0,
47797                                                                                               'rdelim' => '/',
47798                                                                                               'line' => 115,
47799                                                                                               'mod' => 'i',
47800                                                                                               'ldelim' => '/'
47801                                                                                             }, 'Parse::RecDescent::Token' )
47802                                                                                    ],
47803                                                                         'line' => undef
47804                                                                       }, 'Parse::RecDescent::Production' )
47805                                                              ],
47806                                                   'name' => 'OUTER',
47807                                                   'vars' => '',
47808                                                   'line' => 115
47809                                                 }, 'Parse::RecDescent::Rule' ),
47810                               'window_order_clause' => bless( {
47811                                                                 'impcount' => 1,
47812                                                                 'calls' => [
47813                                                                              '_alternation_1_of_production_1_of_rule_window_order_clause'
47814                                                                            ],
47815                                                                 'changed' => 0,
47816                                                                 'opcount' => 0,
47817                                                                 'prods' => [
47818                                                                              bless( {
47819                                                                                       'number' => '0',
47820                                                                                       'strcount' => 0,
47821                                                                                       'dircount' => 1,
47822                                                                                       'uncommit' => undef,
47823                                                                                       'error' => undef,
47824                                                                                       'patcount' => 2,
47825                                                                                       'actcount' => 0,
47826                                                                                       'op' => [],
47827                                                                                       'items' => [
47828                                                                                                    bless( {
47829                                                                                                             'pattern' => 'ORDER\\s+BY',
47830                                                                                                             'hashname' => '__PATTERN1__',
47831                                                                                                             'description' => '/ORDER\\\\s+BY/i',
47832                                                                                                             'lookahead' => 0,
47833                                                                                                             'rdelim' => '/',
47834                                                                                                             'line' => 555,
47835                                                                                                             'mod' => 'i',
47836                                                                                                             'ldelim' => '/'
47837                                                                                                           }, 'Parse::RecDescent::Token' ),
47838                                                                                                    bless( {
47839                                                                                                             'expected' => '<leftop: sort_key_expression /,/ sort_key_expression>',
47840                                                                                                             'min' => 1,
47841                                                                                                             'name' => '\'_alternation_1_of_production_1_of_rule_window_order_clause(s)\'',
47842                                                                                                             'max' => 100000000,
47843                                                                                                             'leftarg' => bless( {
47844                                                                                                                                   'subrule' => '_alternation_1_of_production_1_of_rule_window_order_clause',
47845                                                                                                                                   'matchrule' => 0,
47846                                                                                                                                   'implicit' => 'sort_key_expression',
47847                                                                                                                                   'argcode' => undef,
47848                                                                                                                                   'lookahead' => 0,
47849                                                                                                                                   'line' => 560
47850                                                                                                                                 }, 'Parse::RecDescent::Subrule' ),
47851                                                                                                             'rightarg' => bless( {
47852                                                                                                                                    'subrule' => '_alternation_1_of_production_1_of_rule_window_order_clause',
47853                                                                                                                                    'matchrule' => 0,
47854                                                                                                                                    'implicit' => 'sort_key_expression',
47855                                                                                                                                    'argcode' => undef,
47856                                                                                                                                    'lookahead' => 0,
47857                                                                                                                                    'line' => 560
47858                                                                                                                                  }, 'Parse::RecDescent::Subrule' ),
47859                                                                                                             'hashname' => '__DIRECTIVE1__',
47860                                                                                                             'type' => 'leftop',
47861                                                                                                             'op' => bless( {
47862                                                                                                                              'pattern' => ',',
47863                                                                                                                              'hashname' => '__PATTERN2__',
47864                                                                                                                              'description' => '/,/',
47865                                                                                                                              'lookahead' => 0,
47866                                                                                                                              'rdelim' => '/',
47867                                                                                                                              'line' => 560,
47868                                                                                                                              'mod' => '',
47869                                                                                                                              'ldelim' => '/'
47870                                                                                                                            }, 'Parse::RecDescent::Token' )
47871                                                                                                           }, 'Parse::RecDescent::Operator' )
47872                                                                                                  ],
47873                                                                                       'line' => undef
47874                                                                                     }, 'Parse::RecDescent::Production' )
47875                                                                            ],
47876                                                                 'name' => 'window_order_clause',
47877                                                                 'vars' => '',
47878                                                                 'line' => 555
47879                                                               }, 'Parse::RecDescent::Rule' ),
47880                               'TRIGGER' => bless( {
47881                                                     'impcount' => 0,
47882                                                     'calls' => [],
47883                                                     'changed' => 0,
47884                                                     'opcount' => 0,
47885                                                     'prods' => [
47886                                                                  bless( {
47887                                                                           'number' => '0',
47888                                                                           'strcount' => 0,
47889                                                                           'dircount' => 0,
47890                                                                           'uncommit' => undef,
47891                                                                           'error' => undef,
47892                                                                           'patcount' => 1,
47893                                                                           'actcount' => 0,
47894                                                                           'items' => [
47895                                                                                        bless( {
47896                                                                                                 'pattern' => 'trigger',
47897                                                                                                 'hashname' => '__PATTERN1__',
47898                                                                                                 'description' => '/trigger/i',
47899                                                                                                 'lookahead' => 0,
47900                                                                                                 'rdelim' => '/',
47901                                                                                                 'line' => 103,
47902                                                                                                 'mod' => 'i',
47903                                                                                                 'ldelim' => '/'
47904                                                                                               }, 'Parse::RecDescent::Token' )
47905                                                                                      ],
47906                                                                           'line' => undef
47907                                                                         }, 'Parse::RecDescent::Production' )
47908                                                                ],
47909                                                     'name' => 'TRIGGER',
47910                                                     'vars' => '',
47911                                                     'line' => 103
47912                                                   }, 'Parse::RecDescent::Rule' ),
47913                               'comment' => bless( {
47914                                                     'impcount' => 0,
47915                                                     'calls' => [],
47916                                                     'changed' => 0,
47917                                                     'opcount' => 0,
47918                                                     'prods' => [
47919                                                                  bless( {
47920                                                                           'number' => '0',
47921                                                                           'strcount' => 0,
47922                                                                           'dircount' => 0,
47923                                                                           'uncommit' => undef,
47924                                                                           'error' => undef,
47925                                                                           'patcount' => 1,
47926                                                                           'actcount' => 1,
47927                                                                           'items' => [
47928                                                                                        bless( {
47929                                                                                                 'pattern' => '^\\s*-{2}.*\\n',
47930                                                                                                 'hashname' => '__PATTERN1__',
47931                                                                                                 'description' => '/^\\\\s*-\\{2\\}.*\\\\n/',
47932                                                                                                 'lookahead' => 0,
47933                                                                                                 'rdelim' => '/',
47934                                                                                                 'line' => 27,
47935                                                                                                 'mod' => '',
47936                                                                                                 'ldelim' => '/'
47937                                                                                               }, 'Parse::RecDescent::Token' ),
47938                                                                                        bless( {
47939                                                                                                 'hashname' => '__ACTION1__',
47940                                                                                                 'lookahead' => 0,
47941                                                                                                 'line' => 28,
47942                                                                                                 'code' => '{
47943         my $comment =  $item[1];
47944         $comment    =~ s/^\\s*(-{2})\\s*//;
47945         $comment    =~ s/\\s*$//;
47946         $return     = $comment;
47947     }'
47948                                                                                               }, 'Parse::RecDescent::Action' )
47949                                                                                      ],
47950                                                                           'line' => undef
47951                                                                         }, 'Parse::RecDescent::Production' )
47952                                                                ],
47953                                                     'name' => 'comment',
47954                                                     'vars' => '',
47955                                                     'line' => 27
47956                                                   }, 'Parse::RecDescent::Rule' )
47957                             }
47958                }, 'Parse::RecDescent' );
47959 }