File Coverage

blib/lib/SQL/Translator/Parser/DB2/Grammar.pm
Criterion Covered Total %
statement 1268 16618 7.6
branch 65 9358 0.6
condition 35 4351 0.8
subroutine 336 648 51.8
pod 0 1 0.0
total 1704 30976 5.5


line stmt bran cond sub pod time code
1             package SQL::Translator::Parser::DB2::Grammar;
2 1     1   15 use Parse::RecDescent;
  1         4  
  1         13  
3              
4             { my $ERRORS;
5              
6              
7             package Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar;
8 1     1   141 use strict;
  1         3  
  1         34  
9 1     1   4 use vars qw($skip $AUTOLOAD );
  1         2  
  1         112  
10             $skip = '\s*';
11              
12             my ( %tables, $table_order, @table_comments, @views, @triggers );
13             ;
14              
15              
16             {
17             local $SIG{__WARN__} = sub {0};
18             # PRETEND TO BE IN Parse::RecDescent NAMESPACE
19             *Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::AUTOLOAD = sub
20             {
21 1     1   6 no strict 'refs';
  1         2  
  1         120  
22 0     0   0 $AUTOLOAD =~ s/^Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar/Parse::RecDescent/;
23 0         0 goto &{$AUTOLOAD};
  0         0  
24             }
25             }
26              
27             push @Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ISA, 'Parse::RecDescent';
28             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_17_of_rule_sysibm_function
30             {
31 0     0   0 my $thisparser = $_[0];
32 1     1   7 use vars q{$tracelevel};
  1         2  
  1         870  
33 0   0     0 local $tracelevel = ($tracelevel||0)+1;
34 0         0 $ERRORS = 0;
35 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_17_of_rule_sysibm_function"};
36              
37 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_17_of_rule_sysibm_function]},
38             Parse::RecDescent::_tracefirst($_[1]),
39             q{_alternation_1_of_production_17_of_rule_sysibm_function},
40             $tracelevel)
41             if defined $::RD_TRACE;
42              
43              
44 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
45              
46 0         0 my $score;
47             my $score_return;
48 0         0 my $_tok;
49 0         0 my $return = undef;
50 0         0 my $_matched=0;
51 0         0 my $commit=0;
52 0         0 my @item = ();
53 0         0 my %item = ();
54 0   0     0 my $repeating = defined($_[2]) && $_[2];
55 0   0     0 my $_noactions = defined($_[3]) && $_[3];
56 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
57 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
58 0         0 my $text;
59 0         0 my $lastsep="";
60 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
61 0         0 $expectation->at($_[1]);
62              
63 0         0 my $thisline;
64 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
65              
66              
67              
68 0   0     0 while (!$_matched && !$commit)
69             {
70              
71 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DECIMAL/i]},
72             Parse::RecDescent::_tracefirst($_[1]),
73             q{_alternation_1_of_production_17_of_rule_sysibm_function},
74             $tracelevel)
75             if defined $::RD_TRACE;
76 0         0 my $thisprod = $thisrule->{"prods"}[0];
77 0         0 $text = $_[1];
78 0         0 my $_savetext;
79 0         0 @item = (q{_alternation_1_of_production_17_of_rule_sysibm_function});
80 0         0 %item = (__RULE__ => q{_alternation_1_of_production_17_of_rule_sysibm_function});
81 0         0 my $repcount = 0;
82              
83              
84 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DECIMAL/i]}, Parse::RecDescent::_tracefirst($text),
85             q{_alternation_1_of_production_17_of_rule_sysibm_function},
86             $tracelevel)
87             if defined $::RD_TRACE;
88 0         0 $lastsep = "";
89 0         0 $expectation->is(q{})->at($text);
90              
91              
92 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DECIMAL)//i)
  0 0       0  
93             {
94              
95 0         0 $expectation->failed();
96 0 0       0 Parse::RecDescent::_trace(q{<>},
97             Parse::RecDescent::_tracefirst($text))
98             if defined $::RD_TRACE;
99              
100 0         0 last;
101             }
102 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
103             . $& . q{])},
104             Parse::RecDescent::_tracefirst($text))
105             if defined $::RD_TRACE;
106 0         0 push @item, $item{__PATTERN1__}=$&;
107              
108              
109              
110 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DECIMAL/i]<<},
111             Parse::RecDescent::_tracefirst($text),
112             q{_alternation_1_of_production_17_of_rule_sysibm_function},
113             $tracelevel)
114             if defined $::RD_TRACE;
115 0         0 $_matched = 1;
116 0         0 last;
117             }
118              
119              
120 0   0     0 while (!$_matched && !$commit)
121             {
122              
123 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DEC/i]},
124             Parse::RecDescent::_tracefirst($_[1]),
125             q{_alternation_1_of_production_17_of_rule_sysibm_function},
126             $tracelevel)
127             if defined $::RD_TRACE;
128 0         0 my $thisprod = $thisrule->{"prods"}[1];
129 0         0 $text = $_[1];
130 0         0 my $_savetext;
131 0         0 @item = (q{_alternation_1_of_production_17_of_rule_sysibm_function});
132 0         0 %item = (__RULE__ => q{_alternation_1_of_production_17_of_rule_sysibm_function});
133 0         0 my $repcount = 0;
134              
135              
136 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DEC/i]}, Parse::RecDescent::_tracefirst($text),
137             q{_alternation_1_of_production_17_of_rule_sysibm_function},
138             $tracelevel)
139             if defined $::RD_TRACE;
140 0         0 $lastsep = "";
141 0         0 $expectation->is(q{})->at($text);
142              
143              
144 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DEC)//i)
  0 0       0  
145             {
146              
147 0         0 $expectation->failed();
148 0 0       0 Parse::RecDescent::_trace(q{<>},
149             Parse::RecDescent::_tracefirst($text))
150             if defined $::RD_TRACE;
151              
152 0         0 last;
153             }
154 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
155             . $& . q{])},
156             Parse::RecDescent::_tracefirst($text))
157             if defined $::RD_TRACE;
158 0         0 push @item, $item{__PATTERN1__}=$&;
159              
160              
161              
162 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DEC/i]<<},
163             Parse::RecDescent::_tracefirst($text),
164             q{_alternation_1_of_production_17_of_rule_sysibm_function},
165             $tracelevel)
166             if defined $::RD_TRACE;
167 0         0 $_matched = 1;
168 0         0 last;
169             }
170              
171              
172 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
173             {
174              
175              
176 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
177 0 0       0 Parse::RecDescent::_trace(q{<>},
178             Parse::RecDescent::_tracefirst($_[1]),
179             q{_alternation_1_of_production_17_of_rule_sysibm_function},
180             $tracelevel)
181             if defined $::RD_TRACE;
182 0         0 return undef;
183             }
184 0 0 0     0 if (!defined($return) && defined($score))
185             {
186 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
187             q{_alternation_1_of_production_17_of_rule_sysibm_function},
188             $tracelevel)
189             if defined $::RD_TRACE;
190 0         0 $return = $score_return;
191             }
192 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
193 0 0       0 $return = $item[$#item] unless defined $return;
194 0 0       0 if (defined $::RD_TRACE)
195             {
196 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
197             $return . q{])}, "",
198             q{_alternation_1_of_production_17_of_rule_sysibm_function},
199             $tracelevel);
200 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
201             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
202             Parse::RecDescent::_tracefirst($text),
203             , q{_alternation_1_of_production_17_of_rule_sysibm_function},
204             $tracelevel)
205             }
206 0         0 $_[1] = $text;
207 0         0 return $return;
208             }
209              
210             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
211             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action
212             {
213 0     0   0 my $thisparser = $_[0];
214 1     1   8 use vars q{$tracelevel};
  1         2  
  1         427  
215 0   0     0 local $tracelevel = ($tracelevel||0)+1;
216 0         0 $ERRORS = 0;
217 0         0 my $thisrule = $thisparser->{"rules"}{"triggered_action"};
218              
219 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [triggered_action]},
220             Parse::RecDescent::_tracefirst($_[1]),
221             q{triggered_action},
222             $tracelevel)
223             if defined $::RD_TRACE;
224              
225              
226 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
227              
228 0         0 my $score;
229             my $score_return;
230 0         0 my $_tok;
231 0         0 my $return = undef;
232 0         0 my $_matched=0;
233 0         0 my $commit=0;
234 0         0 my @item = ();
235 0         0 my %item = ();
236 0   0     0 my $repeating = defined($_[2]) && $_[2];
237 0   0     0 my $_noactions = defined($_[3]) && $_[3];
238 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
239 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
240 0         0 my $text;
241 0         0 my $lastsep="";
242 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
243 0         0 $expectation->at($_[1]);
244              
245 0         0 my $thisline;
246 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
247              
248              
249              
250 0   0     0 while (!$_matched && !$commit)
251             {
252              
253 0 0       0 Parse::RecDescent::_trace(q{Trying production: [when_clause SQL_procedure_statement]},
254             Parse::RecDescent::_tracefirst($_[1]),
255             q{triggered_action},
256             $tracelevel)
257             if defined $::RD_TRACE;
258 0         0 my $thisprod = $thisrule->{"prods"}[0];
259 0         0 $text = $_[1];
260 0         0 my $_savetext;
261 0         0 @item = (q{triggered_action});
262 0         0 %item = (__RULE__ => q{triggered_action});
263 0         0 my $repcount = 0;
264              
265              
266 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [when_clause]},
267             Parse::RecDescent::_tracefirst($text),
268             q{triggered_action},
269             $tracelevel)
270             if defined $::RD_TRACE;
271 0         0 $expectation->is(q{})->at($text);
272              
273 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::when_clause, 0, 1, $_noactions,$expectation,undef)))
274             {
275 0 0       0 Parse::RecDescent::_trace(q{<>},
276             Parse::RecDescent::_tracefirst($text),
277             q{triggered_action},
278             $tracelevel)
279             if defined $::RD_TRACE;
280 0         0 last;
281             }
282 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [when_clause]<< (}
283             . @$_tok . q{ times)},
284              
285             Parse::RecDescent::_tracefirst($text),
286             q{triggered_action},
287             $tracelevel)
288             if defined $::RD_TRACE;
289 0         0 $item{q{when_clause(?)}} = $_tok;
290 0         0 push @item, $_tok;
291              
292              
293              
294 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [SQL_procedure_statement]},
295             Parse::RecDescent::_tracefirst($text),
296             q{triggered_action},
297             $tracelevel)
298             if defined $::RD_TRACE;
299 1     1   8 if (1) { no strict qw{refs};
  1         1  
  1         520  
  0         0  
300 0         0 $expectation->is(q{SQL_procedure_statement})->at($text);
301 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
302             {
303              
304 0 0       0 Parse::RecDescent::_trace(q{<>},
305             Parse::RecDescent::_tracefirst($text),
306             q{triggered_action},
307             $tracelevel)
308             if defined $::RD_TRACE;
309 0         0 $expectation->failed();
310 0         0 last;
311             }
312 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [SQL_procedure_statement]<< (return value: [}
313             . $_tok . q{]},
314              
315             Parse::RecDescent::_tracefirst($text),
316             q{triggered_action},
317             $tracelevel)
318             if defined $::RD_TRACE;
319 0         0 $item{q{SQL_procedure_statement}} = $_tok;
320 0         0 push @item, $_tok;
321              
322             }
323              
324 0 0       0 Parse::RecDescent::_trace(q{Trying action},
325             Parse::RecDescent::_tracefirst($text),
326             q{triggered_action},
327             $tracelevel)
328             if defined $::RD_TRACE;
329              
330              
331 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = { 'condition' => $item[1][0],
332 0         0 'statement' => $item{'SQL_procedure_statement'} };
333             };
334 0 0       0 unless (defined $_tok)
335             {
336 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
337             if defined $::RD_TRACE;
338 0         0 last;
339             }
340 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
341             . $_tok . q{])},
342             Parse::RecDescent::_tracefirst($text))
343             if defined $::RD_TRACE;
344 0         0 push @item, $_tok;
345 0         0 $item{__ACTION1__}=$_tok;
346              
347              
348              
349 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [when_clause SQL_procedure_statement]<<},
350             Parse::RecDescent::_tracefirst($text),
351             q{triggered_action},
352             $tracelevel)
353             if defined $::RD_TRACE;
354 0         0 $_matched = 1;
355 0         0 last;
356             }
357              
358              
359 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
360             {
361              
362              
363 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
364 0 0       0 Parse::RecDescent::_trace(q{<>},
365             Parse::RecDescent::_tracefirst($_[1]),
366             q{triggered_action},
367             $tracelevel)
368             if defined $::RD_TRACE;
369 0         0 return undef;
370             }
371 0 0 0     0 if (!defined($return) && defined($score))
372             {
373 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
374             q{triggered_action},
375             $tracelevel)
376             if defined $::RD_TRACE;
377 0         0 $return = $score_return;
378             }
379 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
380 0 0       0 $return = $item[$#item] unless defined $return;
381 0 0       0 if (defined $::RD_TRACE)
382             {
383 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
384             $return . q{])}, "",
385             q{triggered_action},
386             $tracelevel);
387 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
388             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
389             Parse::RecDescent::_tracefirst($text),
390             , q{triggered_action},
391             $tracelevel)
392             }
393 0         0 $_[1] = $text;
394 0         0 return $return;
395             }
396              
397             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
398             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_search_condition
399             {
400 0     0   0 my $thisparser = $_[0];
401 1     1   7 use vars q{$tracelevel};
  1         4  
  1         286  
402 0   0     0 local $tracelevel = ($tracelevel||0)+1;
403 0         0 $ERRORS = 0;
404 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_2_of_rule_search_condition"};
405              
406 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_2_of_rule_search_condition]},
407             Parse::RecDescent::_tracefirst($_[1]),
408             q{_alternation_1_of_production_2_of_rule_search_condition},
409             $tracelevel)
410             if defined $::RD_TRACE;
411              
412              
413 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
414              
415 0         0 my $score;
416             my $score_return;
417 0         0 my $_tok;
418 0         0 my $return = undef;
419 0         0 my $_matched=0;
420 0         0 my $commit=0;
421 0         0 my @item = ();
422 0         0 my %item = ();
423 0   0     0 my $repeating = defined($_[2]) && $_[2];
424 0   0     0 my $_noactions = defined($_[3]) && $_[3];
425 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
426 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
427 0         0 my $text;
428 0         0 my $lastsep="";
429 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
430 0         0 $expectation->at($_[1]);
431              
432 0         0 my $thisline;
433 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
434              
435              
436              
437 0   0     0 while (!$_matched && !$commit)
438             {
439              
440 0 0       0 Parse::RecDescent::_trace(q{Trying production: [predicate /SELECTIVITY/i]},
441             Parse::RecDescent::_tracefirst($_[1]),
442             q{_alternation_1_of_production_2_of_rule_search_condition},
443             $tracelevel)
444             if defined $::RD_TRACE;
445 0         0 my $thisprod = $thisrule->{"prods"}[0];
446 0         0 $text = $_[1];
447 0         0 my $_savetext;
448 0         0 @item = (q{_alternation_1_of_production_2_of_rule_search_condition});
449 0         0 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_search_condition});
450 0         0 my $repcount = 0;
451              
452              
453 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [predicate]},
454             Parse::RecDescent::_tracefirst($text),
455             q{_alternation_1_of_production_2_of_rule_search_condition},
456             $tracelevel)
457             if defined $::RD_TRACE;
458 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         499  
  0         0  
459 0         0 $expectation->is(q{})->at($text);
460 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
461             {
462              
463 0 0       0 Parse::RecDescent::_trace(q{<>},
464             Parse::RecDescent::_tracefirst($text),
465             q{_alternation_1_of_production_2_of_rule_search_condition},
466             $tracelevel)
467             if defined $::RD_TRACE;
468 0         0 $expectation->failed();
469 0         0 last;
470             }
471 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [predicate]<< (return value: [}
472             . $_tok . q{]},
473              
474             Parse::RecDescent::_tracefirst($text),
475             q{_alternation_1_of_production_2_of_rule_search_condition},
476             $tracelevel)
477             if defined $::RD_TRACE;
478 0         0 $item{q{predicate}} = $_tok;
479 0         0 push @item, $_tok;
480              
481             }
482              
483 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [/SELECTIVITY/i]},
484             Parse::RecDescent::_tracefirst($text),
485             q{_alternation_1_of_production_2_of_rule_search_condition},
486             $tracelevel)
487             if defined $::RD_TRACE;
488 0         0 $expectation->is(q{/SELECTIVITY/i})->at($text);
489              
490 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition, 0, 1, $_noactions,$expectation,undef)))
491             {
492 0 0       0 Parse::RecDescent::_trace(q{<>},
493             Parse::RecDescent::_tracefirst($text),
494             q{_alternation_1_of_production_2_of_rule_search_condition},
495             $tracelevel)
496             if defined $::RD_TRACE;
497 0         0 last;
498             }
499 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition]<< (}
500             . @$_tok . q{ times)},
501              
502             Parse::RecDescent::_tracefirst($text),
503             q{_alternation_1_of_production_2_of_rule_search_condition},
504             $tracelevel)
505             if defined $::RD_TRACE;
506 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition(?)}} = $_tok;
507 0         0 push @item, $_tok;
508              
509              
510              
511              
512 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [predicate /SELECTIVITY/i]<<},
513             Parse::RecDescent::_tracefirst($text),
514             q{_alternation_1_of_production_2_of_rule_search_condition},
515             $tracelevel)
516             if defined $::RD_TRACE;
517 0         0 $_matched = 1;
518 0         0 last;
519             }
520              
521              
522 0   0     0 while (!$_matched && !$commit)
523             {
524              
525 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['(' search_condition ')']},
526             Parse::RecDescent::_tracefirst($_[1]),
527             q{_alternation_1_of_production_2_of_rule_search_condition},
528             $tracelevel)
529             if defined $::RD_TRACE;
530 0         0 my $thisprod = $thisrule->{"prods"}[1];
531 0         0 $text = $_[1];
532 0         0 my $_savetext;
533 0         0 @item = (q{_alternation_1_of_production_2_of_rule_search_condition});
534 0         0 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_search_condition});
535 0         0 my $repcount = 0;
536              
537              
538 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
539             Parse::RecDescent::_tracefirst($text),
540             q{_alternation_1_of_production_2_of_rule_search_condition},
541             $tracelevel)
542             if defined $::RD_TRACE;
543 0         0 $lastsep = "";
544 0         0 $expectation->is(q{})->at($text);
545              
546              
547 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
548             {
549              
550 0         0 $expectation->failed();
551 0 0       0 Parse::RecDescent::_trace(qq{<>},
552             Parse::RecDescent::_tracefirst($text))
553             if defined $::RD_TRACE;
554 0         0 last;
555             }
556 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
557             . $& . q{])},
558             Parse::RecDescent::_tracefirst($text))
559             if defined $::RD_TRACE;
560 0         0 push @item, $item{__STRING1__}=$&;
561              
562              
563 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
564             Parse::RecDescent::_tracefirst($text),
565             q{_alternation_1_of_production_2_of_rule_search_condition},
566             $tracelevel)
567             if defined $::RD_TRACE;
568 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         557  
  0         0  
569 0         0 $expectation->is(q{search_condition})->at($text);
570 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
571             {
572              
573 0 0       0 Parse::RecDescent::_trace(q{<>},
574             Parse::RecDescent::_tracefirst($text),
575             q{_alternation_1_of_production_2_of_rule_search_condition},
576             $tracelevel)
577             if defined $::RD_TRACE;
578 0         0 $expectation->failed();
579 0         0 last;
580             }
581 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
582             . $_tok . q{]},
583              
584             Parse::RecDescent::_tracefirst($text),
585             q{_alternation_1_of_production_2_of_rule_search_condition},
586             $tracelevel)
587             if defined $::RD_TRACE;
588 0         0 $item{q{search_condition}} = $_tok;
589 0         0 push @item, $_tok;
590              
591             }
592              
593 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
594             Parse::RecDescent::_tracefirst($text),
595             q{_alternation_1_of_production_2_of_rule_search_condition},
596             $tracelevel)
597             if defined $::RD_TRACE;
598 0         0 $lastsep = "";
599 0         0 $expectation->is(q{')'})->at($text);
600              
601              
602 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
603             {
604              
605 0         0 $expectation->failed();
606 0 0       0 Parse::RecDescent::_trace(qq{<>},
607             Parse::RecDescent::_tracefirst($text))
608             if defined $::RD_TRACE;
609 0         0 last;
610             }
611 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
612             . $& . q{])},
613             Parse::RecDescent::_tracefirst($text))
614             if defined $::RD_TRACE;
615 0         0 push @item, $item{__STRING2__}=$&;
616              
617              
618              
619 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['(' search_condition ')']<<},
620             Parse::RecDescent::_tracefirst($text),
621             q{_alternation_1_of_production_2_of_rule_search_condition},
622             $tracelevel)
623             if defined $::RD_TRACE;
624 0         0 $_matched = 1;
625 0         0 last;
626             }
627              
628              
629 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
630             {
631              
632              
633 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
634 0 0       0 Parse::RecDescent::_trace(q{<>},
635             Parse::RecDescent::_tracefirst($_[1]),
636             q{_alternation_1_of_production_2_of_rule_search_condition},
637             $tracelevel)
638             if defined $::RD_TRACE;
639 0         0 return undef;
640             }
641 0 0 0     0 if (!defined($return) && defined($score))
642             {
643 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
644             q{_alternation_1_of_production_2_of_rule_search_condition},
645             $tracelevel)
646             if defined $::RD_TRACE;
647 0         0 $return = $score_return;
648             }
649 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
650 0 0       0 $return = $item[$#item] unless defined $return;
651 0 0       0 if (defined $::RD_TRACE)
652             {
653 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
654             $return . q{])}, "",
655             q{_alternation_1_of_production_2_of_rule_search_condition},
656             $tracelevel);
657 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
658             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
659             Parse::RecDescent::_tracefirst($text),
660             , q{_alternation_1_of_production_2_of_rule_search_condition},
661             $tracelevel)
662             }
663 0         0 $_[1] = $text;
664 0         0 return $return;
665             }
666              
667             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
668             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::name1
669             {
670 0     0   0 my $thisparser = $_[0];
671 1     1   7 use vars q{$tracelevel};
  1         3  
  1         299  
672 0   0     0 local $tracelevel = ($tracelevel||0)+1;
673 0         0 $ERRORS = 0;
674 0         0 my $thisrule = $thisparser->{"rules"}{"name1"};
675              
676 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [name1]},
677             Parse::RecDescent::_tracefirst($_[1]),
678             q{name1},
679             $tracelevel)
680             if defined $::RD_TRACE;
681              
682              
683 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
684              
685 0         0 my $score;
686             my $score_return;
687 0         0 my $_tok;
688 0         0 my $return = undef;
689 0         0 my $_matched=0;
690 0         0 my $commit=0;
691 0         0 my @item = ();
692 0         0 my %item = ();
693 0   0     0 my $repeating = defined($_[2]) && $_[2];
694 0   0     0 my $_noactions = defined($_[3]) && $_[3];
695 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
696 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
697 0         0 my $text;
698 0         0 my $lastsep="";
699 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
700 0         0 $expectation->at($_[1]);
701              
702 0         0 my $thisline;
703 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
704              
705              
706              
707 0   0     0 while (!$_matched && !$commit)
708             {
709              
710 0 0       0 Parse::RecDescent::_trace(q{Trying production: [NAME]},
711             Parse::RecDescent::_tracefirst($_[1]),
712             q{name1},
713             $tracelevel)
714             if defined $::RD_TRACE;
715 0         0 my $thisprod = $thisrule->{"prods"}[0];
716 0         0 $text = $_[1];
717 0         0 my $_savetext;
718 0         0 @item = (q{name1});
719 0         0 %item = (__RULE__ => q{name1});
720 0         0 my $repcount = 0;
721              
722              
723 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
724             Parse::RecDescent::_tracefirst($text),
725             q{name1},
726             $tracelevel)
727             if defined $::RD_TRACE;
728 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         383  
  0         0  
729 0         0 $expectation->is(q{})->at($text);
730 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
731             {
732              
733 0 0       0 Parse::RecDescent::_trace(q{<>},
734             Parse::RecDescent::_tracefirst($text),
735             q{name1},
736             $tracelevel)
737             if defined $::RD_TRACE;
738 0         0 $expectation->failed();
739 0         0 last;
740             }
741 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
742             . $_tok . q{]},
743              
744             Parse::RecDescent::_tracefirst($text),
745             q{name1},
746             $tracelevel)
747             if defined $::RD_TRACE;
748 0         0 $item{q{NAME}} = $_tok;
749 0         0 push @item, $_tok;
750              
751             }
752              
753              
754 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
755             Parse::RecDescent::_tracefirst($text),
756             q{name1},
757             $tracelevel)
758             if defined $::RD_TRACE;
759 0         0 $_matched = 1;
760 0         0 last;
761             }
762              
763              
764 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
765             {
766              
767              
768 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
769 0 0       0 Parse::RecDescent::_trace(q{<>},
770             Parse::RecDescent::_tracefirst($_[1]),
771             q{name1},
772             $tracelevel)
773             if defined $::RD_TRACE;
774 0         0 return undef;
775             }
776 0 0 0     0 if (!defined($return) && defined($score))
777             {
778 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
779             q{name1},
780             $tracelevel)
781             if defined $::RD_TRACE;
782 0         0 $return = $score_return;
783             }
784 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
785 0 0       0 $return = $item[$#item] unless defined $return;
786 0 0       0 if (defined $::RD_TRACE)
787             {
788 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
789             $return . q{])}, "",
790             q{name1},
791             $tracelevel);
792 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
793             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
794             Parse::RecDescent::_tracefirst($text),
795             , q{name1},
796             $tracelevel)
797             }
798 0         0 $_[1] = $text;
799 0         0 return $return;
800             }
801              
802             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
803             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cond
804             {
805 0     0   0 my $thisparser = $_[0];
806 1     1   9 use vars q{$tracelevel};
  1         2  
  1         298  
807 0   0     0 local $tracelevel = ($tracelevel||0)+1;
808 0         0 $ERRORS = 0;
809 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_cond"};
810              
811 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_cond]},
812             Parse::RecDescent::_tracefirst($_[1]),
813             q{_alternation_2_of_production_1_of_rule_cond},
814             $tracelevel)
815             if defined $::RD_TRACE;
816              
817              
818 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
819              
820 0         0 my $score;
821             my $score_return;
822 0         0 my $_tok;
823 0         0 my $return = undef;
824 0         0 my $_matched=0;
825 0         0 my $commit=0;
826 0         0 my @item = ();
827 0         0 my %item = ();
828 0   0     0 my $repeating = defined($_[2]) && $_[2];
829 0   0     0 my $_noactions = defined($_[3]) && $_[3];
830 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
831 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
832 0         0 my $text;
833 0         0 my $lastsep="";
834 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
835 0         0 $expectation->at($_[1]);
836              
837 0         0 my $thisline;
838 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
839              
840              
841              
842 0   0     0 while (!$_matched && !$commit)
843             {
844              
845 0 0       0 Parse::RecDescent::_trace(q{Trying production: [predicate /SELECTIVITY/i]},
846             Parse::RecDescent::_tracefirst($_[1]),
847             q{_alternation_2_of_production_1_of_rule_cond},
848             $tracelevel)
849             if defined $::RD_TRACE;
850 0         0 my $thisprod = $thisrule->{"prods"}[0];
851 0         0 $text = $_[1];
852 0         0 my $_savetext;
853 0         0 @item = (q{_alternation_2_of_production_1_of_rule_cond});
854 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cond});
855 0         0 my $repcount = 0;
856              
857              
858 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [predicate]},
859             Parse::RecDescent::_tracefirst($text),
860             q{_alternation_2_of_production_1_of_rule_cond},
861             $tracelevel)
862             if defined $::RD_TRACE;
863 1     1   9 if (1) { no strict qw{refs};
  1         3  
  1         455  
  0         0  
864 0         0 $expectation->is(q{})->at($text);
865 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
866             {
867              
868 0 0       0 Parse::RecDescent::_trace(q{<>},
869             Parse::RecDescent::_tracefirst($text),
870             q{_alternation_2_of_production_1_of_rule_cond},
871             $tracelevel)
872             if defined $::RD_TRACE;
873 0         0 $expectation->failed();
874 0         0 last;
875             }
876 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [predicate]<< (return value: [}
877             . $_tok . q{]},
878              
879             Parse::RecDescent::_tracefirst($text),
880             q{_alternation_2_of_production_1_of_rule_cond},
881             $tracelevel)
882             if defined $::RD_TRACE;
883 0         0 $item{q{predicate}} = $_tok;
884 0         0 push @item, $_tok;
885              
886             }
887              
888 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [/SELECTIVITY/i]},
889             Parse::RecDescent::_tracefirst($text),
890             q{_alternation_2_of_production_1_of_rule_cond},
891             $tracelevel)
892             if defined $::RD_TRACE;
893 0         0 $expectation->is(q{/SELECTIVITY/i})->at($text);
894              
895 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond, 0, 1, $_noactions,$expectation,undef)))
896             {
897 0 0       0 Parse::RecDescent::_trace(q{<>},
898             Parse::RecDescent::_tracefirst($text),
899             q{_alternation_2_of_production_1_of_rule_cond},
900             $tracelevel)
901             if defined $::RD_TRACE;
902 0         0 last;
903             }
904 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond]<< (}
905             . @$_tok . q{ times)},
906              
907             Parse::RecDescent::_tracefirst($text),
908             q{_alternation_2_of_production_1_of_rule_cond},
909             $tracelevel)
910             if defined $::RD_TRACE;
911 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond(?)}} = $_tok;
912 0         0 push @item, $_tok;
913              
914              
915              
916              
917 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [predicate /SELECTIVITY/i]<<},
918             Parse::RecDescent::_tracefirst($text),
919             q{_alternation_2_of_production_1_of_rule_cond},
920             $tracelevel)
921             if defined $::RD_TRACE;
922 0         0 $_matched = 1;
923 0         0 last;
924             }
925              
926              
927 0   0     0 while (!$_matched && !$commit)
928             {
929              
930 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['(' search_condition ')']},
931             Parse::RecDescent::_tracefirst($_[1]),
932             q{_alternation_2_of_production_1_of_rule_cond},
933             $tracelevel)
934             if defined $::RD_TRACE;
935 0         0 my $thisprod = $thisrule->{"prods"}[1];
936 0         0 $text = $_[1];
937 0         0 my $_savetext;
938 0         0 @item = (q{_alternation_2_of_production_1_of_rule_cond});
939 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cond});
940 0         0 my $repcount = 0;
941              
942              
943 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
944             Parse::RecDescent::_tracefirst($text),
945             q{_alternation_2_of_production_1_of_rule_cond},
946             $tracelevel)
947             if defined $::RD_TRACE;
948 0         0 $lastsep = "";
949 0         0 $expectation->is(q{})->at($text);
950              
951              
952 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
953             {
954              
955 0         0 $expectation->failed();
956 0 0       0 Parse::RecDescent::_trace(qq{<>},
957             Parse::RecDescent::_tracefirst($text))
958             if defined $::RD_TRACE;
959 0         0 last;
960             }
961 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
962             . $& . q{])},
963             Parse::RecDescent::_tracefirst($text))
964             if defined $::RD_TRACE;
965 0         0 push @item, $item{__STRING1__}=$&;
966              
967              
968 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
969             Parse::RecDescent::_tracefirst($text),
970             q{_alternation_2_of_production_1_of_rule_cond},
971             $tracelevel)
972             if defined $::RD_TRACE;
973 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         538  
  0         0  
974 0         0 $expectation->is(q{search_condition})->at($text);
975 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
976             {
977              
978 0 0       0 Parse::RecDescent::_trace(q{<>},
979             Parse::RecDescent::_tracefirst($text),
980             q{_alternation_2_of_production_1_of_rule_cond},
981             $tracelevel)
982             if defined $::RD_TRACE;
983 0         0 $expectation->failed();
984 0         0 last;
985             }
986 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
987             . $_tok . q{]},
988              
989             Parse::RecDescent::_tracefirst($text),
990             q{_alternation_2_of_production_1_of_rule_cond},
991             $tracelevel)
992             if defined $::RD_TRACE;
993 0         0 $item{q{search_condition}} = $_tok;
994 0         0 push @item, $_tok;
995              
996             }
997              
998 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
999             Parse::RecDescent::_tracefirst($text),
1000             q{_alternation_2_of_production_1_of_rule_cond},
1001             $tracelevel)
1002             if defined $::RD_TRACE;
1003 0         0 $lastsep = "";
1004 0         0 $expectation->is(q{')'})->at($text);
1005              
1006              
1007 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
1008             {
1009              
1010 0         0 $expectation->failed();
1011 0 0       0 Parse::RecDescent::_trace(qq{<>},
1012             Parse::RecDescent::_tracefirst($text))
1013             if defined $::RD_TRACE;
1014 0         0 last;
1015             }
1016 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1017             . $& . q{])},
1018             Parse::RecDescent::_tracefirst($text))
1019             if defined $::RD_TRACE;
1020 0         0 push @item, $item{__STRING2__}=$&;
1021              
1022              
1023              
1024 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['(' search_condition ')']<<},
1025             Parse::RecDescent::_tracefirst($text),
1026             q{_alternation_2_of_production_1_of_rule_cond},
1027             $tracelevel)
1028             if defined $::RD_TRACE;
1029 0         0 $_matched = 1;
1030 0         0 last;
1031             }
1032              
1033              
1034 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
1035             {
1036              
1037              
1038 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1039 0 0       0 Parse::RecDescent::_trace(q{<>},
1040             Parse::RecDescent::_tracefirst($_[1]),
1041             q{_alternation_2_of_production_1_of_rule_cond},
1042             $tracelevel)
1043             if defined $::RD_TRACE;
1044 0         0 return undef;
1045             }
1046 0 0 0     0 if (!defined($return) && defined($score))
1047             {
1048 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1049             q{_alternation_2_of_production_1_of_rule_cond},
1050             $tracelevel)
1051             if defined $::RD_TRACE;
1052 0         0 $return = $score_return;
1053             }
1054 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
1055 0 0       0 $return = $item[$#item] unless defined $return;
1056 0 0       0 if (defined $::RD_TRACE)
1057             {
1058 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1059             $return . q{])}, "",
1060             q{_alternation_2_of_production_1_of_rule_cond},
1061             $tracelevel);
1062 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1063             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1064             Parse::RecDescent::_tracefirst($text),
1065             , q{_alternation_2_of_production_1_of_rule_cond},
1066             $tracelevel)
1067             }
1068 0         0 $_[1] = $text;
1069 0         0 return $return;
1070             }
1071              
1072             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1073             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression
1074             {
1075 0     0   0 my $thisparser = $_[0];
1076 1     1   8 use vars q{$tracelevel};
  1         2  
  1         436  
1077 0   0     0 local $tracelevel = ($tracelevel||0)+1;
1078 0         0 $ERRORS = 0;
1079 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_expression"};
1080              
1081 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_expression]},
1082             Parse::RecDescent::_tracefirst($_[1]),
1083             q{_alternation_1_of_production_1_of_rule_expression},
1084             $tracelevel)
1085             if defined $::RD_TRACE;
1086              
1087              
1088 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
1089              
1090 0         0 my $score;
1091             my $score_return;
1092 0         0 my $_tok;
1093 0         0 my $return = undef;
1094 0         0 my $_matched=0;
1095 0         0 my $commit=0;
1096 0         0 my @item = ();
1097 0         0 my %item = ();
1098 0   0     0 my $repeating = defined($_[2]) && $_[2];
1099 0   0     0 my $_noactions = defined($_[3]) && $_[3];
1100 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
1101 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1102 0         0 my $text;
1103 0         0 my $lastsep="";
1104 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1105 0         0 $expectation->at($_[1]);
1106              
1107 0         0 my $thisline;
1108 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1109              
1110              
1111              
1112 0   0     0 while (!$_matched && !$commit)
1113             {
1114              
1115 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['+', or '-' function, or '(', or constant, or column_name, or host_variable, or special_register, or labeled_duration, or case_expression, or cast_specification, or OLAP_function, or method_invocation, or subtype_treatment, or sequence_reference]},
1116             Parse::RecDescent::_tracefirst($_[1]),
1117             q{_alternation_1_of_production_1_of_rule_expression},
1118             $tracelevel)
1119             if defined $::RD_TRACE;
1120 0         0 my $thisprod = $thisrule->{"prods"}[0];
1121 0         0 $text = $_[1];
1122 0         0 my $_savetext;
1123 0         0 @item = (q{_alternation_1_of_production_1_of_rule_expression});
1124 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_expression});
1125 0         0 my $repcount = 0;
1126              
1127              
1128 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: ['+', or '-']},
1129             Parse::RecDescent::_tracefirst($text),
1130             q{_alternation_1_of_production_1_of_rule_expression},
1131             $tracelevel)
1132             if defined $::RD_TRACE;
1133 0         0 $expectation->is(q{})->at($text);
1134              
1135 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression, 0, 1, $_noactions,$expectation,undef)))
1136             {
1137 0 0       0 Parse::RecDescent::_trace(q{<>},
1138             Parse::RecDescent::_tracefirst($text),
1139             q{_alternation_1_of_production_1_of_rule_expression},
1140             $tracelevel)
1141             if defined $::RD_TRACE;
1142 0         0 last;
1143             }
1144 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]<< (}
1145             . @$_tok . q{ times)},
1146              
1147             Parse::RecDescent::_tracefirst($text),
1148             q{_alternation_1_of_production_1_of_rule_expression},
1149             $tracelevel)
1150             if defined $::RD_TRACE;
1151 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression(?)}} = $_tok;
1152 0         0 push @item, $_tok;
1153              
1154              
1155              
1156 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
1157             Parse::RecDescent::_tracefirst($text),
1158             q{_alternation_1_of_production_1_of_rule_expression},
1159             $tracelevel)
1160             if defined $::RD_TRACE;
1161 1     1   11 if (1) { no strict qw{refs};
  1         2  
  1         442  
  0         0  
1162 0         0 $expectation->is(q{function, or '(', or constant, or column_name, or host_variable, or special_register, or labeled_duration, or case_expression, or cast_specification, or OLAP_function, or method_invocation, or subtype_treatment, or sequence_reference})->at($text);
1163 0 0   0   0 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 })))
  0         0  
1164             {
1165              
1166 0 0       0 Parse::RecDescent::_trace(q{<>},
1167             Parse::RecDescent::_tracefirst($text),
1168             q{_alternation_1_of_production_1_of_rule_expression},
1169             $tracelevel)
1170             if defined $::RD_TRACE;
1171 0         0 $expectation->failed();
1172 0         0 last;
1173             }
1174 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]<< (return value: [}
1175             . $_tok . q{]},
1176              
1177             Parse::RecDescent::_tracefirst($text),
1178             q{_alternation_1_of_production_1_of_rule_expression},
1179             $tracelevel)
1180             if defined $::RD_TRACE;
1181 0         0 $item{q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}} = $_tok;
1182 0         0 push @item, $_tok;
1183              
1184             }
1185              
1186              
1187 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['+', or '-' function, or '(', or constant, or column_name, or host_variable, or special_register, or labeled_duration, or case_expression, or cast_specification, or OLAP_function, or method_invocation, or subtype_treatment, or sequence_reference]<<},
1188             Parse::RecDescent::_tracefirst($text),
1189             q{_alternation_1_of_production_1_of_rule_expression},
1190             $tracelevel)
1191             if defined $::RD_TRACE;
1192 0         0 $_matched = 1;
1193 0         0 last;
1194             }
1195              
1196              
1197 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
1198             {
1199              
1200              
1201 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1202 0 0       0 Parse::RecDescent::_trace(q{<>},
1203             Parse::RecDescent::_tracefirst($_[1]),
1204             q{_alternation_1_of_production_1_of_rule_expression},
1205             $tracelevel)
1206             if defined $::RD_TRACE;
1207 0         0 return undef;
1208             }
1209 0 0 0     0 if (!defined($return) && defined($score))
1210             {
1211 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1212             q{_alternation_1_of_production_1_of_rule_expression},
1213             $tracelevel)
1214             if defined $::RD_TRACE;
1215 0         0 $return = $score_return;
1216             }
1217 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
1218 0 0       0 $return = $item[$#item] unless defined $return;
1219 0 0       0 if (defined $::RD_TRACE)
1220             {
1221 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1222             $return . q{])}, "",
1223             q{_alternation_1_of_production_1_of_rule_expression},
1224             $tracelevel);
1225 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1226             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1227             Parse::RecDescent::_tracefirst($text),
1228             , q{_alternation_1_of_production_1_of_rule_expression},
1229             $tracelevel)
1230             }
1231 0         0 $_[1] = $text;
1232 0         0 return $return;
1233             }
1234              
1235             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1236             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA
1237             {
1238 0     0   0 my $thisparser = $_[0];
1239 1     1   7 use vars q{$tracelevel};
  1         3  
  1         964  
1240 0   0     0 local $tracelevel = ($tracelevel||0)+1;
1241 0         0 $ERRORS = 0;
1242 0         0 my $thisrule = $thisparser->{"rules"}{"SCHEMA"};
1243              
1244 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [SCHEMA]},
1245             Parse::RecDescent::_tracefirst($_[1]),
1246             q{SCHEMA},
1247             $tracelevel)
1248             if defined $::RD_TRACE;
1249              
1250              
1251 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
1252              
1253 0         0 my $score;
1254             my $score_return;
1255 0         0 my $_tok;
1256 0         0 my $return = undef;
1257 0         0 my $_matched=0;
1258 0         0 my $commit=0;
1259 0         0 my @item = ();
1260 0         0 my %item = ();
1261 0   0     0 my $repeating = defined($_[2]) && $_[2];
1262 0   0     0 my $_noactions = defined($_[3]) && $_[3];
1263 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
1264 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1265 0         0 my $text;
1266 0         0 my $lastsep="";
1267 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1268 0         0 $expectation->at($_[1]);
1269              
1270 0         0 my $thisline;
1271 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1272              
1273              
1274              
1275 0   0     0 while (!$_matched && !$commit)
1276             {
1277              
1278 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/\\w+/]},
1279             Parse::RecDescent::_tracefirst($_[1]),
1280             q{SCHEMA},
1281             $tracelevel)
1282             if defined $::RD_TRACE;
1283 0         0 my $thisprod = $thisrule->{"prods"}[0];
1284 0         0 $text = $_[1];
1285 0         0 my $_savetext;
1286 0         0 @item = (q{SCHEMA});
1287 0         0 %item = (__RULE__ => q{SCHEMA});
1288 0         0 my $repcount = 0;
1289              
1290              
1291 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/\\w+/]}, Parse::RecDescent::_tracefirst($text),
1292             q{SCHEMA},
1293             $tracelevel)
1294             if defined $::RD_TRACE;
1295 0         0 $lastsep = "";
1296 0         0 $expectation->is(q{})->at($text);
1297              
1298              
1299 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:\w+)//)
  0 0       0  
1300             {
1301              
1302 0         0 $expectation->failed();
1303 0 0       0 Parse::RecDescent::_trace(q{<>},
1304             Parse::RecDescent::_tracefirst($text))
1305             if defined $::RD_TRACE;
1306              
1307 0         0 last;
1308             }
1309 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1310             . $& . q{])},
1311             Parse::RecDescent::_tracefirst($text))
1312             if defined $::RD_TRACE;
1313 0         0 push @item, $item{__PATTERN1__}=$&;
1314              
1315              
1316              
1317 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/\\w+/]<<},
1318             Parse::RecDescent::_tracefirst($text),
1319             q{SCHEMA},
1320             $tracelevel)
1321             if defined $::RD_TRACE;
1322 0         0 $_matched = 1;
1323 0         0 last;
1324             }
1325              
1326              
1327 0   0     0 while (!$_matched && !$commit)
1328             {
1329              
1330 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/\\w\{1,128\}/]},
1331             Parse::RecDescent::_tracefirst($_[1]),
1332             q{SCHEMA},
1333             $tracelevel)
1334             if defined $::RD_TRACE;
1335 0         0 my $thisprod = $thisrule->{"prods"}[1];
1336 0         0 $text = $_[1];
1337 0         0 my $_savetext;
1338 0         0 @item = (q{SCHEMA});
1339 0         0 %item = (__RULE__ => q{SCHEMA});
1340 0         0 my $repcount = 0;
1341              
1342              
1343 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/\\w\{1,128\}/]}, Parse::RecDescent::_tracefirst($text),
1344             q{SCHEMA},
1345             $tracelevel)
1346             if defined $::RD_TRACE;
1347 0         0 $lastsep = "";
1348 0         0 $expectation->is(q{})->at($text);
1349              
1350              
1351 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:\w{1,128})//)
  0 0       0  
1352             {
1353              
1354 0         0 $expectation->failed();
1355 0 0       0 Parse::RecDescent::_trace(q{<>},
1356             Parse::RecDescent::_tracefirst($text))
1357             if defined $::RD_TRACE;
1358              
1359 0         0 last;
1360             }
1361 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1362             . $& . q{])},
1363             Parse::RecDescent::_tracefirst($text))
1364             if defined $::RD_TRACE;
1365 0         0 push @item, $item{__PATTERN1__}=$&;
1366              
1367              
1368              
1369 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/\\w\{1,128\}/]<<},
1370             Parse::RecDescent::_tracefirst($text),
1371             q{SCHEMA},
1372             $tracelevel)
1373             if defined $::RD_TRACE;
1374 0         0 $_matched = 1;
1375 0         0 last;
1376             }
1377              
1378              
1379 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
1380             {
1381              
1382              
1383 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1384 0 0       0 Parse::RecDescent::_trace(q{<>},
1385             Parse::RecDescent::_tracefirst($_[1]),
1386             q{SCHEMA},
1387             $tracelevel)
1388             if defined $::RD_TRACE;
1389 0         0 return undef;
1390             }
1391 0 0 0     0 if (!defined($return) && defined($score))
1392             {
1393 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1394             q{SCHEMA},
1395             $tracelevel)
1396             if defined $::RD_TRACE;
1397 0         0 $return = $score_return;
1398             }
1399 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
1400 0 0       0 $return = $item[$#item] unless defined $return;
1401 0 0       0 if (defined $::RD_TRACE)
1402             {
1403 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1404             $return . q{])}, "",
1405             q{SCHEMA},
1406             $tracelevel);
1407 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1408             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1409             Parse::RecDescent::_tracefirst($text),
1410             , q{SCHEMA},
1411             $tracelevel)
1412             }
1413 0         0 $_[1] = $text;
1414 0         0 return $return;
1415             }
1416              
1417             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1418             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_87_of_rule_sysibm_function
1419             {
1420 0     0   0 my $thisparser = $_[0];
1421 1     1   9 use vars q{$tracelevel};
  1         3  
  1         789  
1422 0   0     0 local $tracelevel = ($tracelevel||0)+1;
1423 0         0 $ERRORS = 0;
1424 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_87_of_rule_sysibm_function"};
1425              
1426 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_87_of_rule_sysibm_function]},
1427             Parse::RecDescent::_tracefirst($_[1]),
1428             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1429             $tracelevel)
1430             if defined $::RD_TRACE;
1431              
1432              
1433 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
1434              
1435 0         0 my $score;
1436             my $score_return;
1437 0         0 my $_tok;
1438 0         0 my $return = undef;
1439 0         0 my $_matched=0;
1440 0         0 my $commit=0;
1441 0         0 my @item = ();
1442 0         0 my %item = ();
1443 0   0     0 my $repeating = defined($_[2]) && $_[2];
1444 0   0     0 my $_noactions = defined($_[3]) && $_[3];
1445 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
1446 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1447 0         0 my $text;
1448 0         0 my $lastsep="";
1449 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1450 0         0 $expectation->at($_[1]);
1451              
1452 0         0 my $thisline;
1453 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1454              
1455              
1456              
1457 0   0     0 while (!$_matched && !$commit)
1458             {
1459              
1460 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/VARIANCE/i]},
1461             Parse::RecDescent::_tracefirst($_[1]),
1462             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1463             $tracelevel)
1464             if defined $::RD_TRACE;
1465 0         0 my $thisprod = $thisrule->{"prods"}[0];
1466 0         0 $text = $_[1];
1467 0         0 my $_savetext;
1468 0         0 @item = (q{_alternation_1_of_production_87_of_rule_sysibm_function});
1469 0         0 %item = (__RULE__ => q{_alternation_1_of_production_87_of_rule_sysibm_function});
1470 0         0 my $repcount = 0;
1471              
1472              
1473 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/VARIANCE/i]}, Parse::RecDescent::_tracefirst($text),
1474             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1475             $tracelevel)
1476             if defined $::RD_TRACE;
1477 0         0 $lastsep = "";
1478 0         0 $expectation->is(q{})->at($text);
1479              
1480              
1481 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:VARIANCE)//i)
  0 0       0  
1482             {
1483              
1484 0         0 $expectation->failed();
1485 0 0       0 Parse::RecDescent::_trace(q{<>},
1486             Parse::RecDescent::_tracefirst($text))
1487             if defined $::RD_TRACE;
1488              
1489 0         0 last;
1490             }
1491 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1492             . $& . q{])},
1493             Parse::RecDescent::_tracefirst($text))
1494             if defined $::RD_TRACE;
1495 0         0 push @item, $item{__PATTERN1__}=$&;
1496              
1497              
1498              
1499 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/VARIANCE/i]<<},
1500             Parse::RecDescent::_tracefirst($text),
1501             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1502             $tracelevel)
1503             if defined $::RD_TRACE;
1504 0         0 $_matched = 1;
1505 0         0 last;
1506             }
1507              
1508              
1509 0   0     0 while (!$_matched && !$commit)
1510             {
1511              
1512 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/VAR/i]},
1513             Parse::RecDescent::_tracefirst($_[1]),
1514             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1515             $tracelevel)
1516             if defined $::RD_TRACE;
1517 0         0 my $thisprod = $thisrule->{"prods"}[1];
1518 0         0 $text = $_[1];
1519 0         0 my $_savetext;
1520 0         0 @item = (q{_alternation_1_of_production_87_of_rule_sysibm_function});
1521 0         0 %item = (__RULE__ => q{_alternation_1_of_production_87_of_rule_sysibm_function});
1522 0         0 my $repcount = 0;
1523              
1524              
1525 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/VAR/i]}, Parse::RecDescent::_tracefirst($text),
1526             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1527             $tracelevel)
1528             if defined $::RD_TRACE;
1529 0         0 $lastsep = "";
1530 0         0 $expectation->is(q{})->at($text);
1531              
1532              
1533 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:VAR)//i)
  0 0       0  
1534             {
1535              
1536 0         0 $expectation->failed();
1537 0 0       0 Parse::RecDescent::_trace(q{<>},
1538             Parse::RecDescent::_tracefirst($text))
1539             if defined $::RD_TRACE;
1540              
1541 0         0 last;
1542             }
1543 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1544             . $& . q{])},
1545             Parse::RecDescent::_tracefirst($text))
1546             if defined $::RD_TRACE;
1547 0         0 push @item, $item{__PATTERN1__}=$&;
1548              
1549              
1550              
1551 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/VAR/i]<<},
1552             Parse::RecDescent::_tracefirst($text),
1553             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1554             $tracelevel)
1555             if defined $::RD_TRACE;
1556 0         0 $_matched = 1;
1557 0         0 last;
1558             }
1559              
1560              
1561 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
1562             {
1563              
1564              
1565 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1566 0 0       0 Parse::RecDescent::_trace(q{<>},
1567             Parse::RecDescent::_tracefirst($_[1]),
1568             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1569             $tracelevel)
1570             if defined $::RD_TRACE;
1571 0         0 return undef;
1572             }
1573 0 0 0     0 if (!defined($return) && defined($score))
1574             {
1575 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1576             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1577             $tracelevel)
1578             if defined $::RD_TRACE;
1579 0         0 $return = $score_return;
1580             }
1581 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
1582 0 0       0 $return = $item[$#item] unless defined $return;
1583 0 0       0 if (defined $::RD_TRACE)
1584             {
1585 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1586             $return . q{])}, "",
1587             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1588             $tracelevel);
1589 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1590             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1591             Parse::RecDescent::_tracefirst($text),
1592             , q{_alternation_1_of_production_87_of_rule_sysibm_function},
1593             $tracelevel)
1594             }
1595 0         0 $_[1] = $text;
1596 0         0 return $return;
1597             }
1598              
1599             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1600             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression
1601             {
1602 0     0   0 my $thisparser = $_[0];
1603 1     1   10 use vars q{$tracelevel};
  1         3  
  1         834  
1604 0   0     0 local $tracelevel = ($tracelevel||0)+1;
1605 0         0 $ERRORS = 0;
1606 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression"};
1607              
1608 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
1609             Parse::RecDescent::_tracefirst($_[1]),
1610             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1611             $tracelevel)
1612             if defined $::RD_TRACE;
1613              
1614              
1615 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
1616              
1617 0         0 my $score;
1618             my $score_return;
1619 0         0 my $_tok;
1620 0         0 my $return = undef;
1621 0         0 my $_matched=0;
1622 0         0 my $commit=0;
1623 0         0 my @item = ();
1624 0         0 my %item = ();
1625 0   0     0 my $repeating = defined($_[2]) && $_[2];
1626 0   0     0 my $_noactions = defined($_[3]) && $_[3];
1627 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
1628 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1629 0         0 my $text;
1630 0         0 my $lastsep="";
1631 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1632 0         0 $expectation->at($_[1]);
1633              
1634 0         0 my $thisline;
1635 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1636              
1637              
1638              
1639 0   0     0 while (!$_matched && !$commit)
1640             {
1641              
1642 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['+']},
1643             Parse::RecDescent::_tracefirst($_[1]),
1644             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1645             $tracelevel)
1646             if defined $::RD_TRACE;
1647 0         0 my $thisprod = $thisrule->{"prods"}[0];
1648 0         0 $text = $_[1];
1649 0         0 my $_savetext;
1650 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1651 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1652 0         0 my $repcount = 0;
1653              
1654              
1655 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['+']},
1656             Parse::RecDescent::_tracefirst($text),
1657             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1658             $tracelevel)
1659             if defined $::RD_TRACE;
1660 0         0 $lastsep = "";
1661 0         0 $expectation->is(q{})->at($text);
1662              
1663              
1664 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\+//)
  0 0       0  
1665             {
1666              
1667 0         0 $expectation->failed();
1668 0 0       0 Parse::RecDescent::_trace(qq{<>},
1669             Parse::RecDescent::_tracefirst($text))
1670             if defined $::RD_TRACE;
1671 0         0 last;
1672             }
1673 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1674             . $& . q{])},
1675             Parse::RecDescent::_tracefirst($text))
1676             if defined $::RD_TRACE;
1677 0         0 push @item, $item{__STRING1__}=$&;
1678              
1679              
1680              
1681 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['+']<<},
1682             Parse::RecDescent::_tracefirst($text),
1683             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1684             $tracelevel)
1685             if defined $::RD_TRACE;
1686 0         0 $_matched = 1;
1687 0         0 last;
1688             }
1689              
1690              
1691 0   0     0 while (!$_matched && !$commit)
1692             {
1693              
1694 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['-']},
1695             Parse::RecDescent::_tracefirst($_[1]),
1696             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1697             $tracelevel)
1698             if defined $::RD_TRACE;
1699 0         0 my $thisprod = $thisrule->{"prods"}[1];
1700 0         0 $text = $_[1];
1701 0         0 my $_savetext;
1702 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1703 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1704 0         0 my $repcount = 0;
1705              
1706              
1707 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['-']},
1708             Parse::RecDescent::_tracefirst($text),
1709             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1710             $tracelevel)
1711             if defined $::RD_TRACE;
1712 0         0 $lastsep = "";
1713 0         0 $expectation->is(q{})->at($text);
1714              
1715              
1716 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\-//)
  0 0       0  
1717             {
1718              
1719 0         0 $expectation->failed();
1720 0 0       0 Parse::RecDescent::_trace(qq{<>},
1721             Parse::RecDescent::_tracefirst($text))
1722             if defined $::RD_TRACE;
1723 0         0 last;
1724             }
1725 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1726             . $& . q{])},
1727             Parse::RecDescent::_tracefirst($text))
1728             if defined $::RD_TRACE;
1729 0         0 push @item, $item{__STRING1__}=$&;
1730              
1731              
1732              
1733 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['-']<<},
1734             Parse::RecDescent::_tracefirst($text),
1735             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1736             $tracelevel)
1737             if defined $::RD_TRACE;
1738 0         0 $_matched = 1;
1739 0         0 last;
1740             }
1741              
1742              
1743 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
1744             {
1745              
1746              
1747 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1748 0 0       0 Parse::RecDescent::_trace(q{<>},
1749             Parse::RecDescent::_tracefirst($_[1]),
1750             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1751             $tracelevel)
1752             if defined $::RD_TRACE;
1753 0         0 return undef;
1754             }
1755 0 0 0     0 if (!defined($return) && defined($score))
1756             {
1757 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1758             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1759             $tracelevel)
1760             if defined $::RD_TRACE;
1761 0         0 $return = $score_return;
1762             }
1763 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
1764 0 0       0 $return = $item[$#item] unless defined $return;
1765 0 0       0 if (defined $::RD_TRACE)
1766             {
1767 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1768             $return . q{])}, "",
1769             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1770             $tracelevel);
1771 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1772             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1773             Parse::RecDescent::_tracefirst($text),
1774             , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1775             $tracelevel)
1776             }
1777 0         0 $_[1] = $text;
1778 0         0 return $return;
1779             }
1780              
1781             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1782             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::get_bracketed
1783             {
1784 0     0   0 my $thisparser = $_[0];
1785 1     1   9 use vars q{$tracelevel};
  1         3  
  1         544  
1786 0   0     0 local $tracelevel = ($tracelevel||0)+1;
1787 0         0 $ERRORS = 0;
1788 0         0 my $thisrule = $thisparser->{"rules"}{"get_bracketed"};
1789              
1790 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [get_bracketed]},
1791             Parse::RecDescent::_tracefirst($_[1]),
1792             q{get_bracketed},
1793             $tracelevel)
1794             if defined $::RD_TRACE;
1795              
1796              
1797 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
1798              
1799 0         0 my $score;
1800             my $score_return;
1801 0         0 my $_tok;
1802 0         0 my $return = undef;
1803 0         0 my $_matched=0;
1804 0         0 my $commit=0;
1805 0         0 my @item = ();
1806 0         0 my %item = ();
1807 0   0     0 my $repeating = defined($_[2]) && $_[2];
1808 0   0     0 my $_noactions = defined($_[3]) && $_[3];
1809 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
1810 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1811 0         0 my $text;
1812 0         0 my $lastsep="";
1813 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1814 0         0 $expectation->at($_[1]);
1815              
1816 0         0 my $thisline;
1817 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1818              
1819              
1820              
1821 0   0     0 while (!$_matched && !$commit)
1822             {
1823              
1824 0 0       0 Parse::RecDescent::_trace(q{Trying production: []},
1825             Parse::RecDescent::_tracefirst($_[1]),
1826             q{get_bracketed},
1827             $tracelevel)
1828             if defined $::RD_TRACE;
1829 0         0 my $thisprod = $thisrule->{"prods"}[0];
1830 0         0 $text = $_[1];
1831 0         0 my $_savetext;
1832 0         0 @item = (q{get_bracketed});
1833 0         0 %item = (__RULE__ => q{get_bracketed});
1834 0         0 my $repcount = 0;
1835              
1836              
1837 0 0       0 Parse::RecDescent::_trace(q{Trying action},
1838             Parse::RecDescent::_tracefirst($text),
1839             q{get_bracketed},
1840             $tracelevel)
1841             if defined $::RD_TRACE;
1842              
1843              
1844 0 0       0 $_tok = ($_noactions) ? 0 : do {
1845 0         0 extract_bracketed($text, '(');
1846             };
1847 0 0       0 unless (defined $_tok)
1848             {
1849 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
1850             if defined $::RD_TRACE;
1851 0         0 last;
1852             }
1853 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1854             . $_tok . q{])},
1855             Parse::RecDescent::_tracefirst($text))
1856             if defined $::RD_TRACE;
1857 0         0 push @item, $_tok;
1858 0         0 $item{__ACTION1__}=$_tok;
1859              
1860              
1861              
1862 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: []<<},
1863             Parse::RecDescent::_tracefirst($text),
1864             q{get_bracketed},
1865             $tracelevel)
1866             if defined $::RD_TRACE;
1867 0         0 $_matched = 1;
1868 0         0 last;
1869             }
1870              
1871              
1872 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
1873             {
1874              
1875              
1876 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1877 0 0       0 Parse::RecDescent::_trace(q{<>},
1878             Parse::RecDescent::_tracefirst($_[1]),
1879             q{get_bracketed},
1880             $tracelevel)
1881             if defined $::RD_TRACE;
1882 0         0 return undef;
1883             }
1884 0 0 0     0 if (!defined($return) && defined($score))
1885             {
1886 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1887             q{get_bracketed},
1888             $tracelevel)
1889             if defined $::RD_TRACE;
1890 0         0 $return = $score_return;
1891             }
1892 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
1893 0 0       0 $return = $item[$#item] unless defined $return;
1894 0 0       0 if (defined $::RD_TRACE)
1895             {
1896 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1897             $return . q{])}, "",
1898             q{get_bracketed},
1899             $tracelevel);
1900 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1901             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1902             Parse::RecDescent::_tracefirst($text),
1903             , q{get_bracketed},
1904             $tracelevel)
1905             }
1906 0         0 $_[1] = $text;
1907 0         0 return $return;
1908             }
1909              
1910             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1911             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::labeled_duration
1912             {
1913 0     0   0 my $thisparser = $_[0];
1914 1     1   8 use vars q{$tracelevel};
  1         2  
  1         287  
1915 0   0     0 local $tracelevel = ($tracelevel||0)+1;
1916 0         0 $ERRORS = 0;
1917 0         0 my $thisrule = $thisparser->{"rules"}{"labeled_duration"};
1918              
1919 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [labeled_duration]},
1920             Parse::RecDescent::_tracefirst($_[1]),
1921             q{labeled_duration},
1922             $tracelevel)
1923             if defined $::RD_TRACE;
1924              
1925              
1926 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
1927              
1928 0         0 my $score;
1929             my $score_return;
1930 0         0 my $_tok;
1931 0         0 my $return = undef;
1932 0         0 my $_matched=0;
1933 0         0 my $commit=0;
1934 0         0 my @item = ();
1935 0         0 my %item = ();
1936 0   0     0 my $repeating = defined($_[2]) && $_[2];
1937 0   0     0 my $_noactions = defined($_[3]) && $_[3];
1938 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
1939 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1940 0         0 my $text;
1941 0         0 my $lastsep="";
1942 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1943 0         0 $expectation->at($_[1]);
1944              
1945 0         0 my $thisline;
1946 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1947              
1948              
1949              
1950 0   0     0 while (!$_matched && !$commit)
1951             {
1952              
1953 0 0       0 Parse::RecDescent::_trace(q{Trying production: [ld_type ld_duration]},
1954             Parse::RecDescent::_tracefirst($_[1]),
1955             q{labeled_duration},
1956             $tracelevel)
1957             if defined $::RD_TRACE;
1958 0         0 my $thisprod = $thisrule->{"prods"}[0];
1959 0         0 $text = $_[1];
1960 0         0 my $_savetext;
1961 0         0 @item = (q{labeled_duration});
1962 0         0 %item = (__RULE__ => q{labeled_duration});
1963 0         0 my $repcount = 0;
1964              
1965              
1966 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [ld_type]},
1967             Parse::RecDescent::_tracefirst($text),
1968             q{labeled_duration},
1969             $tracelevel)
1970             if defined $::RD_TRACE;
1971 1     1   8 if (1) { no strict qw{refs};
  1         47  
  1         174  
  0         0  
1972 0         0 $expectation->is(q{})->at($text);
1973 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
1974             {
1975              
1976 0 0       0 Parse::RecDescent::_trace(q{<>},
1977             Parse::RecDescent::_tracefirst($text),
1978             q{labeled_duration},
1979             $tracelevel)
1980             if defined $::RD_TRACE;
1981 0         0 $expectation->failed();
1982 0         0 last;
1983             }
1984 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [ld_type]<< (return value: [}
1985             . $_tok . q{]},
1986              
1987             Parse::RecDescent::_tracefirst($text),
1988             q{labeled_duration},
1989             $tracelevel)
1990             if defined $::RD_TRACE;
1991 0         0 $item{q{ld_type}} = $_tok;
1992 0         0 push @item, $_tok;
1993              
1994             }
1995              
1996 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [ld_duration]},
1997             Parse::RecDescent::_tracefirst($text),
1998             q{labeled_duration},
1999             $tracelevel)
2000             if defined $::RD_TRACE;
2001 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         381  
  0         0  
2002 0         0 $expectation->is(q{ld_duration})->at($text);
2003 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_duration($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
2004             {
2005              
2006 0 0       0 Parse::RecDescent::_trace(q{<>},
2007             Parse::RecDescent::_tracefirst($text),
2008             q{labeled_duration},
2009             $tracelevel)
2010             if defined $::RD_TRACE;
2011 0         0 $expectation->failed();
2012 0         0 last;
2013             }
2014 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [ld_duration]<< (return value: [}
2015             . $_tok . q{]},
2016              
2017             Parse::RecDescent::_tracefirst($text),
2018             q{labeled_duration},
2019             $tracelevel)
2020             if defined $::RD_TRACE;
2021 0         0 $item{q{ld_duration}} = $_tok;
2022 0         0 push @item, $_tok;
2023              
2024             }
2025              
2026              
2027 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [ld_type ld_duration]<<},
2028             Parse::RecDescent::_tracefirst($text),
2029             q{labeled_duration},
2030             $tracelevel)
2031             if defined $::RD_TRACE;
2032 0         0 $_matched = 1;
2033 0         0 last;
2034             }
2035              
2036              
2037 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
2038             {
2039              
2040              
2041 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2042 0 0       0 Parse::RecDescent::_trace(q{<>},
2043             Parse::RecDescent::_tracefirst($_[1]),
2044             q{labeled_duration},
2045             $tracelevel)
2046             if defined $::RD_TRACE;
2047 0         0 return undef;
2048             }
2049 0 0 0     0 if (!defined($return) && defined($score))
2050             {
2051 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2052             q{labeled_duration},
2053             $tracelevel)
2054             if defined $::RD_TRACE;
2055 0         0 $return = $score_return;
2056             }
2057 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
2058 0 0       0 $return = $item[$#item] unless defined $return;
2059 0 0       0 if (defined $::RD_TRACE)
2060             {
2061 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2062             $return . q{])}, "",
2063             q{labeled_duration},
2064             $tracelevel);
2065 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2066             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2067             Parse::RecDescent::_tracefirst($text),
2068             , q{labeled_duration},
2069             $tracelevel)
2070             }
2071 0         0 $_[1] = $text;
2072 0         0 return $return;
2073             }
2074              
2075             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2076             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_end
2077             {
2078 0     0   0 my $thisparser = $_[0];
2079 1     1   8 use vars q{$tracelevel};
  1         2  
  1         474  
2080 0   0     0 local $tracelevel = ($tracelevel||0)+1;
2081 0         0 $ERRORS = 0;
2082 0         0 my $thisrule = $thisparser->{"rules"}{"group_end"};
2083              
2084 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [group_end]},
2085             Parse::RecDescent::_tracefirst($_[1]),
2086             q{group_end},
2087             $tracelevel)
2088             if defined $::RD_TRACE;
2089              
2090              
2091 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
2092              
2093 0         0 my $score;
2094             my $score_return;
2095 0         0 my $_tok;
2096 0         0 my $return = undef;
2097 0         0 my $_matched=0;
2098 0         0 my $commit=0;
2099 0         0 my @item = ();
2100 0         0 my %item = ();
2101 0   0     0 my $repeating = defined($_[2]) && $_[2];
2102 0   0     0 my $_noactions = defined($_[3]) && $_[3];
2103 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
2104 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2105 0         0 my $text;
2106 0         0 my $lastsep="";
2107 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2108 0         0 $expectation->at($_[1]);
2109              
2110 0         0 my $thisline;
2111 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2112              
2113              
2114              
2115 0   0     0 while (!$_matched && !$commit)
2116             {
2117              
2118 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
2119             Parse::RecDescent::_tracefirst($_[1]),
2120             q{group_end},
2121             $tracelevel)
2122             if defined $::RD_TRACE;
2123 0         0 my $thisprod = $thisrule->{"prods"}[0];
2124 0         0 $text = $_[1];
2125 0         0 my $_savetext;
2126 0         0 @item = (q{group_end});
2127 0         0 %item = (__RULE__ => q{group_end});
2128 0         0 my $repcount = 0;
2129              
2130              
2131 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
2132             q{group_end},
2133             $tracelevel)
2134             if defined $::RD_TRACE;
2135 0         0 $lastsep = "";
2136 0         0 $expectation->is(q{})->at($text);
2137              
2138              
2139 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i)
  0 0       0  
2140             {
2141              
2142 0         0 $expectation->failed();
2143 0 0       0 Parse::RecDescent::_trace(q{<>},
2144             Parse::RecDescent::_tracefirst($text))
2145             if defined $::RD_TRACE;
2146              
2147 0         0 last;
2148             }
2149 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2150             . $& . q{])},
2151             Parse::RecDescent::_tracefirst($text))
2152             if defined $::RD_TRACE;
2153 0         0 push @item, $item{__PATTERN1__}=$&;
2154              
2155              
2156              
2157 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
2158             Parse::RecDescent::_tracefirst($text),
2159             q{group_end},
2160             $tracelevel)
2161             if defined $::RD_TRACE;
2162 0         0 $_matched = 1;
2163 0         0 last;
2164             }
2165              
2166              
2167 0   0     0 while (!$_matched && !$commit)
2168             {
2169              
2170 0 0       0 Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /FOLLOWING/i]},
2171             Parse::RecDescent::_tracefirst($_[1]),
2172             q{group_end},
2173             $tracelevel)
2174             if defined $::RD_TRACE;
2175 0         0 my $thisprod = $thisrule->{"prods"}[1];
2176 0         0 $text = $_[1];
2177 0         0 my $_savetext;
2178 0         0 @item = (q{group_end});
2179 0         0 %item = (__RULE__ => q{group_end});
2180 0         0 my $repcount = 0;
2181              
2182              
2183 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
2184             Parse::RecDescent::_tracefirst($text),
2185             q{group_end},
2186             $tracelevel)
2187             if defined $::RD_TRACE;
2188 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         514  
  0         0  
2189 0         0 $expectation->is(q{})->at($text);
2190 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
2191             {
2192              
2193 0 0       0 Parse::RecDescent::_trace(q{<>},
2194             Parse::RecDescent::_tracefirst($text),
2195             q{group_end},
2196             $tracelevel)
2197             if defined $::RD_TRACE;
2198 0         0 $expectation->failed();
2199 0         0 last;
2200             }
2201 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
2202             . $_tok . q{]},
2203              
2204             Parse::RecDescent::_tracefirst($text),
2205             q{group_end},
2206             $tracelevel)
2207             if defined $::RD_TRACE;
2208 0         0 $item{q{unsigned_constant}} = $_tok;
2209 0         0 push @item, $_tok;
2210              
2211             }
2212              
2213 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
2214             q{group_end},
2215             $tracelevel)
2216             if defined $::RD_TRACE;
2217 0         0 $lastsep = "";
2218 0         0 $expectation->is(q{/FOLLOWING/i})->at($text);
2219              
2220              
2221 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:FOLLOWING)//i)
  0 0       0  
2222             {
2223              
2224 0         0 $expectation->failed();
2225 0 0       0 Parse::RecDescent::_trace(q{<>},
2226             Parse::RecDescent::_tracefirst($text))
2227             if defined $::RD_TRACE;
2228              
2229 0         0 last;
2230             }
2231 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2232             . $& . q{])},
2233             Parse::RecDescent::_tracefirst($text))
2234             if defined $::RD_TRACE;
2235 0         0 push @item, $item{__PATTERN1__}=$&;
2236              
2237              
2238              
2239 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /FOLLOWING/i]<<},
2240             Parse::RecDescent::_tracefirst($text),
2241             q{group_end},
2242             $tracelevel)
2243             if defined $::RD_TRACE;
2244 0         0 $_matched = 1;
2245 0         0 last;
2246             }
2247              
2248              
2249 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
2250             {
2251              
2252              
2253 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2254 0 0       0 Parse::RecDescent::_trace(q{<>},
2255             Parse::RecDescent::_tracefirst($_[1]),
2256             q{group_end},
2257             $tracelevel)
2258             if defined $::RD_TRACE;
2259 0         0 return undef;
2260             }
2261 0 0 0     0 if (!defined($return) && defined($score))
2262             {
2263 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2264             q{group_end},
2265             $tracelevel)
2266             if defined $::RD_TRACE;
2267 0         0 $return = $score_return;
2268             }
2269 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
2270 0 0       0 $return = $item[$#item] unless defined $return;
2271 0 0       0 if (defined $::RD_TRACE)
2272             {
2273 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2274             $return . q{])}, "",
2275             q{group_end},
2276             $tracelevel);
2277 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2278             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2279             Parse::RecDescent::_tracefirst($text),
2280             , q{group_end},
2281             $tracelevel)
2282             }
2283 0         0 $_[1] = $text;
2284 0         0 return $return;
2285             }
2286              
2287             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2288             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::statement
2289             {
2290 1     1   23 my $thisparser = $_[0];
2291 1     1   8 use vars q{$tracelevel};
  1         2  
  1         287  
2292 1   50     5 local $tracelevel = ($tracelevel||0)+1;
2293 1         2 $ERRORS = 0;
2294 1         4 my $thisrule = $thisparser->{"rules"}{"statement"};
2295              
2296 1 50       4 Parse::RecDescent::_trace(q{Trying rule: [statement]},
2297             Parse::RecDescent::_tracefirst($_[1]),
2298             q{statement},
2299             $tracelevel)
2300             if defined $::RD_TRACE;
2301              
2302              
2303 1         2 my $err_at = @{$thisparser->{errors}};
  1         3  
2304              
2305 1         5 my $score;
2306             my $score_return;
2307 1         0 my $_tok;
2308 1         3 my $return = undef;
2309 1         2 my $_matched=0;
2310 1         2 my $commit=0;
2311 1         2 my @item = ();
2312 1         2 my %item = ();
2313 1   33     6 my $repeating = defined($_[2]) && $_[2];
2314 1   33     4 my $_noactions = defined($_[3]) && $_[3];
2315 1 50       4 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
2316 1 50       3 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2317 1         2 my $text;
2318 1         2 my $lastsep="";
2319 1         4 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2320 1         73 $expectation->at($_[1]);
2321              
2322 1         4 my $thisline;
2323 1         5 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2324              
2325              
2326              
2327 1   33     10 while (!$_matched && !$commit)
2328             {
2329              
2330 1 50       3 Parse::RecDescent::_trace(q{Trying production: [comment]},
2331             Parse::RecDescent::_tracefirst($_[1]),
2332             q{statement},
2333             $tracelevel)
2334             if defined $::RD_TRACE;
2335 1         3 my $thisprod = $thisrule->{"prods"}[0];
2336 1         2 $text = $_[1];
2337 1         2 my $_savetext;
2338 1         3 @item = (q{statement});
2339 1         8 %item = (__RULE__ => q{statement});
2340 1         3 my $repcount = 0;
2341              
2342              
2343 1 50       5 Parse::RecDescent::_trace(q{Trying subrule: [comment]},
2344             Parse::RecDescent::_tracefirst($text),
2345             q{statement},
2346             $tracelevel)
2347             if defined $::RD_TRACE;
2348 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         234  
  1         1  
2349 1         3 $expectation->is(q{})->at($text);
2350 1 50   1   13 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::comment($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  1         11  
2351             {
2352              
2353 1 50       3 Parse::RecDescent::_trace(q{<>},
2354             Parse::RecDescent::_tracefirst($text),
2355             q{statement},
2356             $tracelevel)
2357             if defined $::RD_TRACE;
2358 1         4 $expectation->failed();
2359 1         4 last;
2360             }
2361 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [comment]<< (return value: [}
2362             . $_tok . q{]},
2363              
2364             Parse::RecDescent::_tracefirst($text),
2365             q{statement},
2366             $tracelevel)
2367             if defined $::RD_TRACE;
2368 0         0 $item{q{comment}} = $_tok;
2369 0         0 push @item, $_tok;
2370              
2371             }
2372              
2373              
2374 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [comment]<<},
2375             Parse::RecDescent::_tracefirst($text),
2376             q{statement},
2377             $tracelevel)
2378             if defined $::RD_TRACE;
2379 0         0 $_matched = 1;
2380 0         0 last;
2381             }
2382              
2383              
2384 1   33     8 while (!$_matched && !$commit)
2385             {
2386              
2387 1 50       4 Parse::RecDescent::_trace(q{Trying production: [create]},
2388             Parse::RecDescent::_tracefirst($_[1]),
2389             q{statement},
2390             $tracelevel)
2391             if defined $::RD_TRACE;
2392 1         3 my $thisprod = $thisrule->{"prods"}[1];
2393 1         3 $text = $_[1];
2394 1         2 my $_savetext;
2395 1         2 @item = (q{statement});
2396 1         4 %item = (__RULE__ => q{statement});
2397 1         3 my $repcount = 0;
2398              
2399              
2400 1 50       3 Parse::RecDescent::_trace(q{Trying subrule: [create]},
2401             Parse::RecDescent::_tracefirst($text),
2402             q{statement},
2403             $tracelevel)
2404             if defined $::RD_TRACE;
2405 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         582  
  1         4  
2406 1         3 $expectation->is(q{})->at($text);
2407 1 50   1   12 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::create($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  1         3  
2408             {
2409              
2410 1 50       3 Parse::RecDescent::_trace(q{<>},
2411             Parse::RecDescent::_tracefirst($text),
2412             q{statement},
2413             $tracelevel)
2414             if defined $::RD_TRACE;
2415 1         3 $expectation->failed();
2416 1         4 last;
2417             }
2418 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [create]<< (return value: [}
2419             . $_tok . q{]},
2420              
2421             Parse::RecDescent::_tracefirst($text),
2422             q{statement},
2423             $tracelevel)
2424             if defined $::RD_TRACE;
2425 0         0 $item{q{create}} = $_tok;
2426 0         0 push @item, $_tok;
2427              
2428             }
2429              
2430              
2431 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [create]<<},
2432             Parse::RecDescent::_tracefirst($text),
2433             q{statement},
2434             $tracelevel)
2435             if defined $::RD_TRACE;
2436 0         0 $_matched = 1;
2437 0         0 last;
2438             }
2439              
2440              
2441 1         5 while (!$_matched)
2442             {
2443              
2444 1 50       4 Parse::RecDescent::_trace(q{Trying production: []},
2445             Parse::RecDescent::_tracefirst($_[1]),
2446             q{statement},
2447             $tracelevel)
2448             if defined $::RD_TRACE;
2449 1         3 my $thisprod = $thisrule->{"prods"}[2];
2450              
2451 1         2 my $_savetext;
2452 1         3 @item = (q{statement});
2453 1         4 %item = (__RULE__ => q{statement});
2454 1         2 my $repcount = 0;
2455              
2456              
2457              
2458              
2459 1 50       4 Parse::RecDescent::_trace(q{Trying directive: []},
2460             Parse::RecDescent::_tracefirst($text),
2461             q{statement},
2462             $tracelevel)
2463             if defined $::RD_TRACE;
2464 1 50       1 $_tok = do { if (1) { do {
  1         2  
  1         4  
2465 1         2 my $rule = $item[0];
2466 1         4 $rule =~ s/_/ /g;
2467             #WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
2468 1         7 push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
  1         7  
2469 1         48 } unless $_noactions; undef } else {0} };
2470 1 50       3 if (defined($_tok))
2471             {
2472 0 0       0 Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
2473             . $_tok . q{])},
2474             Parse::RecDescent::_tracefirst($text))
2475             if defined $::RD_TRACE;
2476             }
2477             else
2478             {
2479 1 50       3 Parse::RecDescent::_trace(q{<>},
2480             Parse::RecDescent::_tracefirst($text))
2481             if defined $::RD_TRACE;
2482             }
2483              
2484 1 50       3 last unless defined $_tok;
2485 0         0 push @item, $item{__DIRECTIVE1__}=$_tok;
2486              
2487              
2488              
2489 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: []<<},
2490             Parse::RecDescent::_tracefirst($text),
2491             q{statement},
2492             $tracelevel)
2493             if defined $::RD_TRACE;
2494 0         0 $_matched = 1;
2495 0         0 last;
2496             }
2497              
2498              
2499 1 50 33     10 unless ( $_matched || defined($return) || defined($score) )
      33        
2500             {
2501              
2502              
2503 1         2 $_[1] = $text; # NOT SURE THIS IS NEEDED
2504 1 50       3 Parse::RecDescent::_trace(q{<>},
2505             Parse::RecDescent::_tracefirst($_[1]),
2506             q{statement},
2507             $tracelevel)
2508             if defined $::RD_TRACE;
2509 1         6 return undef;
2510             }
2511 0 0 0     0 if (!defined($return) && defined($score))
2512             {
2513 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2514             q{statement},
2515             $tracelevel)
2516             if defined $::RD_TRACE;
2517 0         0 $return = $score_return;
2518             }
2519 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
2520 0 0       0 $return = $item[$#item] unless defined $return;
2521 0 0       0 if (defined $::RD_TRACE)
2522             {
2523 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2524             $return . q{])}, "",
2525             q{statement},
2526             $tracelevel);
2527 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2528             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2529             Parse::RecDescent::_tracefirst($text),
2530             , q{statement},
2531             $tracelevel)
2532             }
2533 0         0 $_[1] = $text;
2534 0         0 return $return;
2535             }
2536              
2537             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2538             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause
2539             {
2540 0     0   0 my $thisparser = $_[0];
2541 1     1   7 use vars q{$tracelevel};
  1         10  
  1         290  
2542 0   0     0 local $tracelevel = ($tracelevel||0)+1;
2543 0         0 $ERRORS = 0;
2544 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause"};
2545              
2546 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]},
2547             Parse::RecDescent::_tracefirst($_[1]),
2548             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2549             $tracelevel)
2550             if defined $::RD_TRACE;
2551              
2552              
2553 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
2554              
2555 0         0 my $score;
2556             my $score_return;
2557 0         0 my $_tok;
2558 0         0 my $return = undef;
2559 0         0 my $_matched=0;
2560 0         0 my $commit=0;
2561 0         0 my @item = ();
2562 0         0 my %item = ();
2563 0   0     0 my $repeating = defined($_[2]) && $_[2];
2564 0   0     0 my $_noactions = defined($_[3]) && $_[3];
2565 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
2566 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2567 0         0 my $text;
2568 0         0 my $lastsep="";
2569 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2570 0         0 $expectation->at($_[1]);
2571              
2572 0         0 my $thisline;
2573 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2574              
2575              
2576              
2577 0   0     0 while (!$_matched && !$commit)
2578             {
2579              
2580 0 0       0 Parse::RecDescent::_trace(q{Trying production: [result_expression]},
2581             Parse::RecDescent::_tracefirst($_[1]),
2582             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2583             $tracelevel)
2584             if defined $::RD_TRACE;
2585 0         0 my $thisprod = $thisrule->{"prods"}[0];
2586 0         0 $text = $_[1];
2587 0         0 my $_savetext;
2588 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2589 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2590 0         0 my $repcount = 0;
2591              
2592              
2593 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [result_expression]},
2594             Parse::RecDescent::_tracefirst($text),
2595             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2596             $tracelevel)
2597             if defined $::RD_TRACE;
2598 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         567  
  0         0  
2599 0         0 $expectation->is(q{})->at($text);
2600 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
2601             {
2602              
2603 0 0       0 Parse::RecDescent::_trace(q{<>},
2604             Parse::RecDescent::_tracefirst($text),
2605             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2606             $tracelevel)
2607             if defined $::RD_TRACE;
2608 0         0 $expectation->failed();
2609 0         0 last;
2610             }
2611 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [result_expression]<< (return value: [}
2612             . $_tok . q{]},
2613              
2614             Parse::RecDescent::_tracefirst($text),
2615             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2616             $tracelevel)
2617             if defined $::RD_TRACE;
2618 0         0 $item{q{result_expression}} = $_tok;
2619 0         0 push @item, $_tok;
2620              
2621             }
2622              
2623              
2624 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [result_expression]<<},
2625             Parse::RecDescent::_tracefirst($text),
2626             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2627             $tracelevel)
2628             if defined $::RD_TRACE;
2629 0         0 $_matched = 1;
2630 0         0 last;
2631             }
2632              
2633              
2634 0   0     0 while (!$_matched && !$commit)
2635             {
2636              
2637 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NULL/i]},
2638             Parse::RecDescent::_tracefirst($_[1]),
2639             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2640             $tracelevel)
2641             if defined $::RD_TRACE;
2642 0         0 my $thisprod = $thisrule->{"prods"}[1];
2643 0         0 $text = $_[1];
2644 0         0 my $_savetext;
2645 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2646 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2647 0         0 my $repcount = 0;
2648              
2649              
2650 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NULL/i]}, Parse::RecDescent::_tracefirst($text),
2651             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2652             $tracelevel)
2653             if defined $::RD_TRACE;
2654 0         0 $lastsep = "";
2655 0         0 $expectation->is(q{})->at($text);
2656              
2657              
2658 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NULL)//i)
  0 0       0  
2659             {
2660              
2661 0         0 $expectation->failed();
2662 0 0       0 Parse::RecDescent::_trace(q{<>},
2663             Parse::RecDescent::_tracefirst($text))
2664             if defined $::RD_TRACE;
2665              
2666 0         0 last;
2667             }
2668 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2669             . $& . q{])},
2670             Parse::RecDescent::_tracefirst($text))
2671             if defined $::RD_TRACE;
2672 0         0 push @item, $item{__PATTERN1__}=$&;
2673              
2674              
2675              
2676 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NULL/i]<<},
2677             Parse::RecDescent::_tracefirst($text),
2678             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2679             $tracelevel)
2680             if defined $::RD_TRACE;
2681 0         0 $_matched = 1;
2682 0         0 last;
2683             }
2684              
2685              
2686 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
2687             {
2688              
2689              
2690 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2691 0 0       0 Parse::RecDescent::_trace(q{<>},
2692             Parse::RecDescent::_tracefirst($_[1]),
2693             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2694             $tracelevel)
2695             if defined $::RD_TRACE;
2696 0         0 return undef;
2697             }
2698 0 0 0     0 if (!defined($return) && defined($score))
2699             {
2700 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2701             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2702             $tracelevel)
2703             if defined $::RD_TRACE;
2704 0         0 $return = $score_return;
2705             }
2706 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
2707 0 0       0 $return = $item[$#item] unless defined $return;
2708 0 0       0 if (defined $::RD_TRACE)
2709             {
2710 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2711             $return . q{])}, "",
2712             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2713             $tracelevel);
2714 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2715             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2716             Parse::RecDescent::_tracefirst($text),
2717             , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2718             $tracelevel)
2719             }
2720 0         0 $_[1] = $text;
2721 0         0 return $return;
2722             }
2723              
2724             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2725             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_case_expression
2726             {
2727 0     0   0 my $thisparser = $_[0];
2728 1     1   8 use vars q{$tracelevel};
  1         3  
  1         624  
2729 0   0     0 local $tracelevel = ($tracelevel||0)+1;
2730 0         0 $ERRORS = 0;
2731 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_case_expression"};
2732              
2733 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_case_expression]},
2734             Parse::RecDescent::_tracefirst($_[1]),
2735             q{_alternation_2_of_production_1_of_rule_case_expression},
2736             $tracelevel)
2737             if defined $::RD_TRACE;
2738              
2739              
2740 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
2741              
2742 0         0 my $score;
2743             my $score_return;
2744 0         0 my $_tok;
2745 0         0 my $return = undef;
2746 0         0 my $_matched=0;
2747 0         0 my $commit=0;
2748 0         0 my @item = ();
2749 0         0 my %item = ();
2750 0   0     0 my $repeating = defined($_[2]) && $_[2];
2751 0   0     0 my $_noactions = defined($_[3]) && $_[3];
2752 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
2753 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2754 0         0 my $text;
2755 0         0 my $lastsep="";
2756 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2757 0         0 $expectation->at($_[1]);
2758              
2759 0         0 my $thisline;
2760 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2761              
2762              
2763              
2764 0   0     0 while (!$_matched && !$commit)
2765             {
2766              
2767 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ELSE\\s+NULL/i]},
2768             Parse::RecDescent::_tracefirst($_[1]),
2769             q{_alternation_2_of_production_1_of_rule_case_expression},
2770             $tracelevel)
2771             if defined $::RD_TRACE;
2772 0         0 my $thisprod = $thisrule->{"prods"}[0];
2773 0         0 $text = $_[1];
2774 0         0 my $_savetext;
2775 0         0 @item = (q{_alternation_2_of_production_1_of_rule_case_expression});
2776 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_case_expression});
2777 0         0 my $repcount = 0;
2778              
2779              
2780 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ELSE\\s+NULL/i]}, Parse::RecDescent::_tracefirst($text),
2781             q{_alternation_2_of_production_1_of_rule_case_expression},
2782             $tracelevel)
2783             if defined $::RD_TRACE;
2784 0         0 $lastsep = "";
2785 0         0 $expectation->is(q{})->at($text);
2786              
2787              
2788 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ELSE\s+NULL)//i)
  0 0       0  
2789             {
2790              
2791 0         0 $expectation->failed();
2792 0 0       0 Parse::RecDescent::_trace(q{<>},
2793             Parse::RecDescent::_tracefirst($text))
2794             if defined $::RD_TRACE;
2795              
2796 0         0 last;
2797             }
2798 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2799             . $& . q{])},
2800             Parse::RecDescent::_tracefirst($text))
2801             if defined $::RD_TRACE;
2802 0         0 push @item, $item{__PATTERN1__}=$&;
2803              
2804              
2805              
2806 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ELSE\\s+NULL/i]<<},
2807             Parse::RecDescent::_tracefirst($text),
2808             q{_alternation_2_of_production_1_of_rule_case_expression},
2809             $tracelevel)
2810             if defined $::RD_TRACE;
2811 0         0 $_matched = 1;
2812 0         0 last;
2813             }
2814              
2815              
2816 0   0     0 while (!$_matched && !$commit)
2817             {
2818              
2819 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ELSE/i result_expression]},
2820             Parse::RecDescent::_tracefirst($_[1]),
2821             q{_alternation_2_of_production_1_of_rule_case_expression},
2822             $tracelevel)
2823             if defined $::RD_TRACE;
2824 0         0 my $thisprod = $thisrule->{"prods"}[1];
2825 0         0 $text = $_[1];
2826 0         0 my $_savetext;
2827 0         0 @item = (q{_alternation_2_of_production_1_of_rule_case_expression});
2828 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_case_expression});
2829 0         0 my $repcount = 0;
2830              
2831              
2832 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ELSE/i]}, Parse::RecDescent::_tracefirst($text),
2833             q{_alternation_2_of_production_1_of_rule_case_expression},
2834             $tracelevel)
2835             if defined $::RD_TRACE;
2836 0         0 $lastsep = "";
2837 0         0 $expectation->is(q{})->at($text);
2838              
2839              
2840 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ELSE)//i)
  0 0       0  
2841             {
2842              
2843 0         0 $expectation->failed();
2844 0 0       0 Parse::RecDescent::_trace(q{<>},
2845             Parse::RecDescent::_tracefirst($text))
2846             if defined $::RD_TRACE;
2847              
2848 0         0 last;
2849             }
2850 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2851             . $& . q{])},
2852             Parse::RecDescent::_tracefirst($text))
2853             if defined $::RD_TRACE;
2854 0         0 push @item, $item{__PATTERN1__}=$&;
2855              
2856              
2857 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [result_expression]},
2858             Parse::RecDescent::_tracefirst($text),
2859             q{_alternation_2_of_production_1_of_rule_case_expression},
2860             $tracelevel)
2861             if defined $::RD_TRACE;
2862 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         400  
  0         0  
2863 0         0 $expectation->is(q{result_expression})->at($text);
2864 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
2865             {
2866              
2867 0 0       0 Parse::RecDescent::_trace(q{<>},
2868             Parse::RecDescent::_tracefirst($text),
2869             q{_alternation_2_of_production_1_of_rule_case_expression},
2870             $tracelevel)
2871             if defined $::RD_TRACE;
2872 0         0 $expectation->failed();
2873 0         0 last;
2874             }
2875 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [result_expression]<< (return value: [}
2876             . $_tok . q{]},
2877              
2878             Parse::RecDescent::_tracefirst($text),
2879             q{_alternation_2_of_production_1_of_rule_case_expression},
2880             $tracelevel)
2881             if defined $::RD_TRACE;
2882 0         0 $item{q{result_expression}} = $_tok;
2883 0         0 push @item, $_tok;
2884              
2885             }
2886              
2887              
2888 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ELSE/i result_expression]<<},
2889             Parse::RecDescent::_tracefirst($text),
2890             q{_alternation_2_of_production_1_of_rule_case_expression},
2891             $tracelevel)
2892             if defined $::RD_TRACE;
2893 0         0 $_matched = 1;
2894 0         0 last;
2895             }
2896              
2897              
2898 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
2899             {
2900              
2901              
2902 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2903 0 0       0 Parse::RecDescent::_trace(q{<>},
2904             Parse::RecDescent::_tracefirst($_[1]),
2905             q{_alternation_2_of_production_1_of_rule_case_expression},
2906             $tracelevel)
2907             if defined $::RD_TRACE;
2908 0         0 return undef;
2909             }
2910 0 0 0     0 if (!defined($return) && defined($score))
2911             {
2912 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2913             q{_alternation_2_of_production_1_of_rule_case_expression},
2914             $tracelevel)
2915             if defined $::RD_TRACE;
2916 0         0 $return = $score_return;
2917             }
2918 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
2919 0 0       0 $return = $item[$#item] unless defined $return;
2920 0 0       0 if (defined $::RD_TRACE)
2921             {
2922 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2923             $return . q{])}, "",
2924             q{_alternation_2_of_production_1_of_rule_case_expression},
2925             $tracelevel);
2926 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2927             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2928             Parse::RecDescent::_tracefirst($text),
2929             , q{_alternation_2_of_production_1_of_rule_case_expression},
2930             $tracelevel)
2931             }
2932 0         0 $_[1] = $text;
2933 0         0 return $return;
2934             }
2935              
2936             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2937             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subject_expression
2938             {
2939 0     0   0 my $thisparser = $_[0];
2940 1     1   8 use vars q{$tracelevel};
  1         3  
  1         286  
2941 0   0     0 local $tracelevel = ($tracelevel||0)+1;
2942 0         0 $ERRORS = 0;
2943 0         0 my $thisrule = $thisparser->{"rules"}{"subject_expression"};
2944              
2945 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [subject_expression]},
2946             Parse::RecDescent::_tracefirst($_[1]),
2947             q{subject_expression},
2948             $tracelevel)
2949             if defined $::RD_TRACE;
2950              
2951              
2952 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
2953              
2954 0         0 my $score;
2955             my $score_return;
2956 0         0 my $_tok;
2957 0         0 my $return = undef;
2958 0         0 my $_matched=0;
2959 0         0 my $commit=0;
2960 0         0 my @item = ();
2961 0         0 my %item = ();
2962 0   0     0 my $repeating = defined($_[2]) && $_[2];
2963 0   0     0 my $_noactions = defined($_[3]) && $_[3];
2964 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
2965 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2966 0         0 my $text;
2967 0         0 my $lastsep="";
2968 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2969 0         0 $expectation->at($_[1]);
2970              
2971 0         0 my $thisline;
2972 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2973              
2974              
2975              
2976 0   0     0 while (!$_matched && !$commit)
2977             {
2978              
2979 0 0       0 Parse::RecDescent::_trace(q{Trying production: [expression]},
2980             Parse::RecDescent::_tracefirst($_[1]),
2981             q{subject_expression},
2982             $tracelevel)
2983             if defined $::RD_TRACE;
2984 0         0 my $thisprod = $thisrule->{"prods"}[0];
2985 0         0 $text = $_[1];
2986 0         0 my $_savetext;
2987 0         0 @item = (q{subject_expression});
2988 0         0 %item = (__RULE__ => q{subject_expression});
2989 0         0 my $repcount = 0;
2990              
2991              
2992 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
2993             Parse::RecDescent::_tracefirst($text),
2994             q{subject_expression},
2995             $tracelevel)
2996             if defined $::RD_TRACE;
2997 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         437  
  0         0  
2998 0         0 $expectation->is(q{})->at($text);
2999 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
3000             {
3001              
3002 0 0       0 Parse::RecDescent::_trace(q{<>},
3003             Parse::RecDescent::_tracefirst($text),
3004             q{subject_expression},
3005             $tracelevel)
3006             if defined $::RD_TRACE;
3007 0         0 $expectation->failed();
3008 0         0 last;
3009             }
3010 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
3011             . $_tok . q{]},
3012              
3013             Parse::RecDescent::_tracefirst($text),
3014             q{subject_expression},
3015             $tracelevel)
3016             if defined $::RD_TRACE;
3017 0         0 $item{q{expression}} = $_tok;
3018 0         0 push @item, $_tok;
3019              
3020             }
3021              
3022 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3023             Parse::RecDescent::_tracefirst($text),
3024             q{subject_expression},
3025             $tracelevel)
3026             if defined $::RD_TRACE;
3027              
3028              
3029 0 0       0 $_tok = ($_noactions) ? 0 : do { # with static result type that is a used-defined struct type
3030             };
3031 0 0       0 unless (defined $_tok)
3032             {
3033 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
3034             if defined $::RD_TRACE;
3035 0         0 last;
3036             }
3037 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3038             . $_tok . q{])},
3039             Parse::RecDescent::_tracefirst($text))
3040             if defined $::RD_TRACE;
3041 0         0 push @item, $_tok;
3042 0         0 $item{__ACTION1__}=$_tok;
3043              
3044              
3045              
3046 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
3047             Parse::RecDescent::_tracefirst($text),
3048             q{subject_expression},
3049             $tracelevel)
3050             if defined $::RD_TRACE;
3051 0         0 $_matched = 1;
3052 0         0 last;
3053             }
3054              
3055              
3056 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
3057             {
3058              
3059              
3060 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
3061 0 0       0 Parse::RecDescent::_trace(q{<>},
3062             Parse::RecDescent::_tracefirst($_[1]),
3063             q{subject_expression},
3064             $tracelevel)
3065             if defined $::RD_TRACE;
3066 0         0 return undef;
3067             }
3068 0 0 0     0 if (!defined($return) && defined($score))
3069             {
3070 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3071             q{subject_expression},
3072             $tracelevel)
3073             if defined $::RD_TRACE;
3074 0         0 $return = $score_return;
3075             }
3076 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
3077 0 0       0 $return = $item[$#item] unless defined $return;
3078 0 0       0 if (defined $::RD_TRACE)
3079             {
3080 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3081             $return . q{])}, "",
3082             q{subject_expression},
3083             $tracelevel);
3084 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
3085             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3086             Parse::RecDescent::_tracefirst($text),
3087             , q{subject_expression},
3088             $tracelevel)
3089             }
3090 0         0 $_[1] = $text;
3091 0         0 return $return;
3092             }
3093              
3094             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3095             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_desc_option
3096             {
3097 0     0   0 my $thisparser = $_[0];
3098 1     1   8 use vars q{$tracelevel};
  1         2  
  1         809  
3099 0   0     0 local $tracelevel = ($tracelevel||0)+1;
3100 0         0 $ERRORS = 0;
3101 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_desc_option"};
3102              
3103 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_desc_option]},
3104             Parse::RecDescent::_tracefirst($_[1]),
3105             q{_alternation_1_of_production_1_of_rule_desc_option},
3106             $tracelevel)
3107             if defined $::RD_TRACE;
3108              
3109              
3110 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
3111              
3112 0         0 my $score;
3113             my $score_return;
3114 0         0 my $_tok;
3115 0         0 my $return = undef;
3116 0         0 my $_matched=0;
3117 0         0 my $commit=0;
3118 0         0 my @item = ();
3119 0         0 my %item = ();
3120 0   0     0 my $repeating = defined($_[2]) && $_[2];
3121 0   0     0 my $_noactions = defined($_[3]) && $_[3];
3122 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
3123 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3124 0         0 my $text;
3125 0         0 my $lastsep="";
3126 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3127 0         0 $expectation->at($_[1]);
3128              
3129 0         0 my $thisline;
3130 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3131              
3132              
3133              
3134 0   0     0 while (!$_matched && !$commit)
3135             {
3136              
3137 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+FIRST/i]},
3138             Parse::RecDescent::_tracefirst($_[1]),
3139             q{_alternation_1_of_production_1_of_rule_desc_option},
3140             $tracelevel)
3141             if defined $::RD_TRACE;
3142 0         0 my $thisprod = $thisrule->{"prods"}[0];
3143 0         0 $text = $_[1];
3144 0         0 my $_savetext;
3145 0         0 @item = (q{_alternation_1_of_production_1_of_rule_desc_option});
3146 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_desc_option});
3147 0         0 my $repcount = 0;
3148              
3149              
3150 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+FIRST/i]}, Parse::RecDescent::_tracefirst($text),
3151             q{_alternation_1_of_production_1_of_rule_desc_option},
3152             $tracelevel)
3153             if defined $::RD_TRACE;
3154 0         0 $lastsep = "";
3155 0         0 $expectation->is(q{})->at($text);
3156              
3157              
3158 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NULLS\s+FIRST)//i)
  0 0       0  
3159             {
3160              
3161 0         0 $expectation->failed();
3162 0 0       0 Parse::RecDescent::_trace(q{<>},
3163             Parse::RecDescent::_tracefirst($text))
3164             if defined $::RD_TRACE;
3165              
3166 0         0 last;
3167             }
3168 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3169             . $& . q{])},
3170             Parse::RecDescent::_tracefirst($text))
3171             if defined $::RD_TRACE;
3172 0         0 push @item, $item{__PATTERN1__}=$&;
3173              
3174              
3175              
3176 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NULLS\\s+FIRST/i]<<},
3177             Parse::RecDescent::_tracefirst($text),
3178             q{_alternation_1_of_production_1_of_rule_desc_option},
3179             $tracelevel)
3180             if defined $::RD_TRACE;
3181 0         0 $_matched = 1;
3182 0         0 last;
3183             }
3184              
3185              
3186 0   0     0 while (!$_matched && !$commit)
3187             {
3188              
3189 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+LAST/i]},
3190             Parse::RecDescent::_tracefirst($_[1]),
3191             q{_alternation_1_of_production_1_of_rule_desc_option},
3192             $tracelevel)
3193             if defined $::RD_TRACE;
3194 0         0 my $thisprod = $thisrule->{"prods"}[1];
3195 0         0 $text = $_[1];
3196 0         0 my $_savetext;
3197 0         0 @item = (q{_alternation_1_of_production_1_of_rule_desc_option});
3198 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_desc_option});
3199 0         0 my $repcount = 0;
3200              
3201              
3202 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+LAST/i]}, Parse::RecDescent::_tracefirst($text),
3203             q{_alternation_1_of_production_1_of_rule_desc_option},
3204             $tracelevel)
3205             if defined $::RD_TRACE;
3206 0         0 $lastsep = "";
3207 0         0 $expectation->is(q{})->at($text);
3208              
3209              
3210 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NULLS\s+LAST)//i)
  0 0       0  
3211             {
3212              
3213 0         0 $expectation->failed();
3214 0 0       0 Parse::RecDescent::_trace(q{<>},
3215             Parse::RecDescent::_tracefirst($text))
3216             if defined $::RD_TRACE;
3217              
3218 0         0 last;
3219             }
3220 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3221             . $& . q{])},
3222             Parse::RecDescent::_tracefirst($text))
3223             if defined $::RD_TRACE;
3224 0         0 push @item, $item{__PATTERN1__}=$&;
3225              
3226              
3227              
3228 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NULLS\\s+LAST/i]<<},
3229             Parse::RecDescent::_tracefirst($text),
3230             q{_alternation_1_of_production_1_of_rule_desc_option},
3231             $tracelevel)
3232             if defined $::RD_TRACE;
3233 0         0 $_matched = 1;
3234 0         0 last;
3235             }
3236              
3237              
3238 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
3239             {
3240              
3241              
3242 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
3243 0 0       0 Parse::RecDescent::_trace(q{<>},
3244             Parse::RecDescent::_tracefirst($_[1]),
3245             q{_alternation_1_of_production_1_of_rule_desc_option},
3246             $tracelevel)
3247             if defined $::RD_TRACE;
3248 0         0 return undef;
3249             }
3250 0 0 0     0 if (!defined($return) && defined($score))
3251             {
3252 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3253             q{_alternation_1_of_production_1_of_rule_desc_option},
3254             $tracelevel)
3255             if defined $::RD_TRACE;
3256 0         0 $return = $score_return;
3257             }
3258 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
3259 0 0       0 $return = $item[$#item] unless defined $return;
3260 0 0       0 if (defined $::RD_TRACE)
3261             {
3262 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3263             $return . q{])}, "",
3264             q{_alternation_1_of_production_1_of_rule_desc_option},
3265             $tracelevel);
3266 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
3267             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3268             Parse::RecDescent::_tracefirst($text),
3269             , q{_alternation_1_of_production_1_of_rule_desc_option},
3270             $tracelevel)
3271             }
3272 0         0 $_[1] = $text;
3273 0         0 return $return;
3274             }
3275              
3276             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3277             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::view_name
3278             {
3279 0     0   0 my $thisparser = $_[0];
3280 1     1   9 use vars q{$tracelevel};
  1         2  
  1         287  
3281 0   0     0 local $tracelevel = ($tracelevel||0)+1;
3282 0         0 $ERRORS = 0;
3283 0         0 my $thisrule = $thisparser->{"rules"}{"view_name"};
3284              
3285 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [view_name]},
3286             Parse::RecDescent::_tracefirst($_[1]),
3287             q{view_name},
3288             $tracelevel)
3289             if defined $::RD_TRACE;
3290              
3291              
3292 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
3293              
3294 0         0 my $score;
3295             my $score_return;
3296 0         0 my $_tok;
3297 0         0 my $return = undef;
3298 0         0 my $_matched=0;
3299 0         0 my $commit=0;
3300 0         0 my @item = ();
3301 0         0 my %item = ();
3302 0   0     0 my $repeating = defined($_[2]) && $_[2];
3303 0   0     0 my $_noactions = defined($_[3]) && $_[3];
3304 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
3305 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3306 0         0 my $text;
3307 0         0 my $lastsep="";
3308 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3309 0         0 $expectation->at($_[1]);
3310              
3311 0         0 my $thisline;
3312 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3313              
3314              
3315              
3316 0   0     0 while (!$_matched && !$commit)
3317             {
3318              
3319 0 0       0 Parse::RecDescent::_trace(q{Trying production: [SCHEMA '.' NAME]},
3320             Parse::RecDescent::_tracefirst($_[1]),
3321             q{view_name},
3322             $tracelevel)
3323             if defined $::RD_TRACE;
3324 0         0 my $thisprod = $thisrule->{"prods"}[0];
3325 0         0 $text = $_[1];
3326 0         0 my $_savetext;
3327 0         0 @item = (q{view_name});
3328 0         0 %item = (__RULE__ => q{view_name});
3329 0         0 my $repcount = 0;
3330              
3331              
3332 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [SCHEMA]},
3333             Parse::RecDescent::_tracefirst($text),
3334             q{view_name},
3335             $tracelevel)
3336             if defined $::RD_TRACE;
3337 1     1   8 if (1) { no strict qw{refs};
  1         5  
  1         260  
  0         0  
3338 0         0 $expectation->is(q{})->at($text);
3339 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
3340             {
3341              
3342 0 0       0 Parse::RecDescent::_trace(q{<>},
3343             Parse::RecDescent::_tracefirst($text),
3344             q{view_name},
3345             $tracelevel)
3346             if defined $::RD_TRACE;
3347 0         0 $expectation->failed();
3348 0         0 last;
3349             }
3350 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [SCHEMA]<< (return value: [}
3351             . $_tok . q{]},
3352              
3353             Parse::RecDescent::_tracefirst($text),
3354             q{view_name},
3355             $tracelevel)
3356             if defined $::RD_TRACE;
3357 0         0 $item{q{SCHEMA}} = $_tok;
3358 0         0 push @item, $_tok;
3359              
3360             }
3361              
3362 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['.']},
3363             Parse::RecDescent::_tracefirst($text),
3364             q{view_name},
3365             $tracelevel)
3366             if defined $::RD_TRACE;
3367 0         0 $lastsep = "";
3368 0         0 $expectation->is(q{'.'})->at($text);
3369              
3370              
3371 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\.//)
  0 0       0  
3372             {
3373              
3374 0         0 $expectation->failed();
3375 0 0       0 Parse::RecDescent::_trace(qq{<>},
3376             Parse::RecDescent::_tracefirst($text))
3377             if defined $::RD_TRACE;
3378 0         0 last;
3379             }
3380 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3381             . $& . q{])},
3382             Parse::RecDescent::_tracefirst($text))
3383             if defined $::RD_TRACE;
3384 0         0 push @item, $item{__STRING1__}=$&;
3385              
3386              
3387 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
3388             Parse::RecDescent::_tracefirst($text),
3389             q{view_name},
3390             $tracelevel)
3391             if defined $::RD_TRACE;
3392 1     1   7 if (1) { no strict qw{refs};
  1         4  
  1         290  
  0         0  
3393 0         0 $expectation->is(q{NAME})->at($text);
3394 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
3395             {
3396              
3397 0 0       0 Parse::RecDescent::_trace(q{<>},
3398             Parse::RecDescent::_tracefirst($text),
3399             q{view_name},
3400             $tracelevel)
3401             if defined $::RD_TRACE;
3402 0         0 $expectation->failed();
3403 0         0 last;
3404             }
3405 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
3406             . $_tok . q{]},
3407              
3408             Parse::RecDescent::_tracefirst($text),
3409             q{view_name},
3410             $tracelevel)
3411             if defined $::RD_TRACE;
3412 0         0 $item{q{NAME}} = $_tok;
3413 0         0 push @item, $_tok;
3414              
3415             }
3416              
3417 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3418             Parse::RecDescent::_tracefirst($text),
3419             q{view_name},
3420             $tracelevel)
3421             if defined $::RD_TRACE;
3422              
3423              
3424 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = { schema => $item[1], name => $item[3] } };
  0         0  
3425 0 0       0 unless (defined $_tok)
3426             {
3427 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
3428             if defined $::RD_TRACE;
3429 0         0 last;
3430             }
3431 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3432             . $_tok . q{])},
3433             Parse::RecDescent::_tracefirst($text))
3434             if defined $::RD_TRACE;
3435 0         0 push @item, $_tok;
3436 0         0 $item{__ACTION1__}=$_tok;
3437              
3438              
3439              
3440 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [SCHEMA '.' NAME]<<},
3441             Parse::RecDescent::_tracefirst($text),
3442             q{view_name},
3443             $tracelevel)
3444             if defined $::RD_TRACE;
3445 0         0 $_matched = 1;
3446 0         0 last;
3447             }
3448              
3449              
3450 0   0     0 while (!$_matched && !$commit)
3451             {
3452              
3453 0 0       0 Parse::RecDescent::_trace(q{Trying production: [NAME]},
3454             Parse::RecDescent::_tracefirst($_[1]),
3455             q{view_name},
3456             $tracelevel)
3457             if defined $::RD_TRACE;
3458 0         0 my $thisprod = $thisrule->{"prods"}[1];
3459 0         0 $text = $_[1];
3460 0         0 my $_savetext;
3461 0         0 @item = (q{view_name});
3462 0         0 %item = (__RULE__ => q{view_name});
3463 0         0 my $repcount = 0;
3464              
3465              
3466 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
3467             Parse::RecDescent::_tracefirst($text),
3468             q{view_name},
3469             $tracelevel)
3470             if defined $::RD_TRACE;
3471 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         481  
  0         0  
3472 0         0 $expectation->is(q{})->at($text);
3473 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
3474             {
3475              
3476 0 0       0 Parse::RecDescent::_trace(q{<>},
3477             Parse::RecDescent::_tracefirst($text),
3478             q{view_name},
3479             $tracelevel)
3480             if defined $::RD_TRACE;
3481 0         0 $expectation->failed();
3482 0         0 last;
3483             }
3484 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
3485             . $_tok . q{]},
3486              
3487             Parse::RecDescent::_tracefirst($text),
3488             q{view_name},
3489             $tracelevel)
3490             if defined $::RD_TRACE;
3491 0         0 $item{q{NAME}} = $_tok;
3492 0         0 push @item, $_tok;
3493              
3494             }
3495              
3496 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3497             Parse::RecDescent::_tracefirst($text),
3498             q{view_name},
3499             $tracelevel)
3500             if defined $::RD_TRACE;
3501              
3502              
3503 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = { name => $item[1] } };
  0         0  
3504 0 0       0 unless (defined $_tok)
3505             {
3506 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
3507             if defined $::RD_TRACE;
3508 0         0 last;
3509             }
3510 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3511             . $_tok . q{])},
3512             Parse::RecDescent::_tracefirst($text))
3513             if defined $::RD_TRACE;
3514 0         0 push @item, $_tok;
3515 0         0 $item{__ACTION1__}=$_tok;
3516              
3517              
3518              
3519 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
3520             Parse::RecDescent::_tracefirst($text),
3521             q{view_name},
3522             $tracelevel)
3523             if defined $::RD_TRACE;
3524 0         0 $_matched = 1;
3525 0         0 last;
3526             }
3527              
3528              
3529 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
3530             {
3531              
3532              
3533 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
3534 0 0       0 Parse::RecDescent::_trace(q{<>},
3535             Parse::RecDescent::_tracefirst($_[1]),
3536             q{view_name},
3537             $tracelevel)
3538             if defined $::RD_TRACE;
3539 0         0 return undef;
3540             }
3541 0 0 0     0 if (!defined($return) && defined($score))
3542             {
3543 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3544             q{view_name},
3545             $tracelevel)
3546             if defined $::RD_TRACE;
3547 0         0 $return = $score_return;
3548             }
3549 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
3550 0 0       0 $return = $item[$#item] unless defined $return;
3551 0 0       0 if (defined $::RD_TRACE)
3552             {
3553 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3554             $return . q{])}, "",
3555             q{view_name},
3556             $tracelevel);
3557 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
3558             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3559             Parse::RecDescent::_tracefirst($text),
3560             , q{view_name},
3561             $tracelevel)
3562             }
3563 0         0 $_[1] = $text;
3564 0         0 return $return;
3565             }
3566              
3567             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3568             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cond
3569             {
3570 0     0   0 my $thisparser = $_[0];
3571 1     1   8 use vars q{$tracelevel};
  1         3  
  1         838  
3572 0   0     0 local $tracelevel = ($tracelevel||0)+1;
3573 0         0 $ERRORS = 0;
3574 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_cond"};
3575              
3576 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_cond]},
3577             Parse::RecDescent::_tracefirst($_[1]),
3578             q{_alternation_1_of_production_1_of_rule_cond},
3579             $tracelevel)
3580             if defined $::RD_TRACE;
3581              
3582              
3583 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
3584              
3585 0         0 my $score;
3586             my $score_return;
3587 0         0 my $_tok;
3588 0         0 my $return = undef;
3589 0         0 my $_matched=0;
3590 0         0 my $commit=0;
3591 0         0 my @item = ();
3592 0         0 my %item = ();
3593 0   0     0 my $repeating = defined($_[2]) && $_[2];
3594 0   0     0 my $_noactions = defined($_[3]) && $_[3];
3595 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
3596 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3597 0         0 my $text;
3598 0         0 my $lastsep="";
3599 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3600 0         0 $expectation->at($_[1]);
3601              
3602 0         0 my $thisline;
3603 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3604              
3605              
3606              
3607 0   0     0 while (!$_matched && !$commit)
3608             {
3609              
3610 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/AND/i]},
3611             Parse::RecDescent::_tracefirst($_[1]),
3612             q{_alternation_1_of_production_1_of_rule_cond},
3613             $tracelevel)
3614             if defined $::RD_TRACE;
3615 0         0 my $thisprod = $thisrule->{"prods"}[0];
3616 0         0 $text = $_[1];
3617 0         0 my $_savetext;
3618 0         0 @item = (q{_alternation_1_of_production_1_of_rule_cond});
3619 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cond});
3620 0         0 my $repcount = 0;
3621              
3622              
3623 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/AND/i]}, Parse::RecDescent::_tracefirst($text),
3624             q{_alternation_1_of_production_1_of_rule_cond},
3625             $tracelevel)
3626             if defined $::RD_TRACE;
3627 0         0 $lastsep = "";
3628 0         0 $expectation->is(q{})->at($text);
3629              
3630              
3631 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:AND)//i)
  0 0       0  
3632             {
3633              
3634 0         0 $expectation->failed();
3635 0 0       0 Parse::RecDescent::_trace(q{<>},
3636             Parse::RecDescent::_tracefirst($text))
3637             if defined $::RD_TRACE;
3638              
3639 0         0 last;
3640             }
3641 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3642             . $& . q{])},
3643             Parse::RecDescent::_tracefirst($text))
3644             if defined $::RD_TRACE;
3645 0         0 push @item, $item{__PATTERN1__}=$&;
3646              
3647              
3648              
3649 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/AND/i]<<},
3650             Parse::RecDescent::_tracefirst($text),
3651             q{_alternation_1_of_production_1_of_rule_cond},
3652             $tracelevel)
3653             if defined $::RD_TRACE;
3654 0         0 $_matched = 1;
3655 0         0 last;
3656             }
3657              
3658              
3659 0   0     0 while (!$_matched && !$commit)
3660             {
3661              
3662 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/OR/i]},
3663             Parse::RecDescent::_tracefirst($_[1]),
3664             q{_alternation_1_of_production_1_of_rule_cond},
3665             $tracelevel)
3666             if defined $::RD_TRACE;
3667 0         0 my $thisprod = $thisrule->{"prods"}[1];
3668 0         0 $text = $_[1];
3669 0         0 my $_savetext;
3670 0         0 @item = (q{_alternation_1_of_production_1_of_rule_cond});
3671 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cond});
3672 0         0 my $repcount = 0;
3673              
3674              
3675 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/OR/i]}, Parse::RecDescent::_tracefirst($text),
3676             q{_alternation_1_of_production_1_of_rule_cond},
3677             $tracelevel)
3678             if defined $::RD_TRACE;
3679 0         0 $lastsep = "";
3680 0         0 $expectation->is(q{})->at($text);
3681              
3682              
3683 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:OR)//i)
  0 0       0  
3684             {
3685              
3686 0         0 $expectation->failed();
3687 0 0       0 Parse::RecDescent::_trace(q{<>},
3688             Parse::RecDescent::_tracefirst($text))
3689             if defined $::RD_TRACE;
3690              
3691 0         0 last;
3692             }
3693 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3694             . $& . q{])},
3695             Parse::RecDescent::_tracefirst($text))
3696             if defined $::RD_TRACE;
3697 0         0 push @item, $item{__PATTERN1__}=$&;
3698              
3699              
3700              
3701 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/OR/i]<<},
3702             Parse::RecDescent::_tracefirst($text),
3703             q{_alternation_1_of_production_1_of_rule_cond},
3704             $tracelevel)
3705             if defined $::RD_TRACE;
3706 0         0 $_matched = 1;
3707 0         0 last;
3708             }
3709              
3710              
3711 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
3712             {
3713              
3714              
3715 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
3716 0 0       0 Parse::RecDescent::_trace(q{<>},
3717             Parse::RecDescent::_tracefirst($_[1]),
3718             q{_alternation_1_of_production_1_of_rule_cond},
3719             $tracelevel)
3720             if defined $::RD_TRACE;
3721 0         0 return undef;
3722             }
3723 0 0 0     0 if (!defined($return) && defined($score))
3724             {
3725 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3726             q{_alternation_1_of_production_1_of_rule_cond},
3727             $tracelevel)
3728             if defined $::RD_TRACE;
3729 0         0 $return = $score_return;
3730             }
3731 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
3732 0 0       0 $return = $item[$#item] unless defined $return;
3733 0 0       0 if (defined $::RD_TRACE)
3734             {
3735 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3736             $return . q{])}, "",
3737             q{_alternation_1_of_production_1_of_rule_cond},
3738             $tracelevel);
3739 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
3740             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3741             Parse::RecDescent::_tracefirst($text),
3742             , q{_alternation_1_of_production_1_of_rule_cond},
3743             $tracelevel)
3744             }
3745 0         0 $_[1] = $text;
3746 0         0 return $return;
3747             }
3748              
3749             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3750             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numbering_function
3751             {
3752 0     0   0 my $thisparser = $_[0];
3753 1     1   7 use vars q{$tracelevel};
  1         2  
  1         1434  
3754 0   0     0 local $tracelevel = ($tracelevel||0)+1;
3755 0         0 $ERRORS = 0;
3756 0         0 my $thisrule = $thisparser->{"rules"}{"numbering_function"};
3757              
3758 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [numbering_function]},
3759             Parse::RecDescent::_tracefirst($_[1]),
3760             q{numbering_function},
3761             $tracelevel)
3762             if defined $::RD_TRACE;
3763              
3764              
3765 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
3766              
3767 0         0 my $score;
3768             my $score_return;
3769 0         0 my $_tok;
3770 0         0 my $return = undef;
3771 0         0 my $_matched=0;
3772 0         0 my $commit=0;
3773 0         0 my @item = ();
3774 0         0 my %item = ();
3775 0   0     0 my $repeating = defined($_[2]) && $_[2];
3776 0   0     0 my $_noactions = defined($_[3]) && $_[3];
3777 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
3778 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3779 0         0 my $text;
3780 0         0 my $lastsep="";
3781 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3782 0         0 $expectation->at($_[1]);
3783              
3784 0         0 my $thisline;
3785 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3786              
3787              
3788              
3789 0   0     0 while (!$_matched && !$commit)
3790             {
3791              
3792 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ROW_NUMBER|ROWNUMBER/i '()' /OVER/i '(' window_partition_clause window_order_clause /RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause ')']},
3793             Parse::RecDescent::_tracefirst($_[1]),
3794             q{numbering_function},
3795             $tracelevel)
3796             if defined $::RD_TRACE;
3797 0         0 my $thisprod = $thisrule->{"prods"}[0];
3798 0         0 $text = $_[1];
3799 0         0 my $_savetext;
3800 0         0 @item = (q{numbering_function});
3801 0         0 %item = (__RULE__ => q{numbering_function});
3802 0         0 my $repcount = 0;
3803              
3804              
3805 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ROW_NUMBER|ROWNUMBER/i]}, Parse::RecDescent::_tracefirst($text),
3806             q{numbering_function},
3807             $tracelevel)
3808             if defined $::RD_TRACE;
3809 0         0 $lastsep = "";
3810 0         0 $expectation->is(q{})->at($text);
3811              
3812              
3813 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ROW_NUMBER|ROWNUMBER)//i)
  0 0       0  
3814             {
3815              
3816 0         0 $expectation->failed();
3817 0 0       0 Parse::RecDescent::_trace(q{<>},
3818             Parse::RecDescent::_tracefirst($text))
3819             if defined $::RD_TRACE;
3820              
3821 0         0 last;
3822             }
3823 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3824             . $& . q{])},
3825             Parse::RecDescent::_tracefirst($text))
3826             if defined $::RD_TRACE;
3827 0         0 push @item, $item{__PATTERN1__}=$&;
3828              
3829              
3830 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['()']},
3831             Parse::RecDescent::_tracefirst($text),
3832             q{numbering_function},
3833             $tracelevel)
3834             if defined $::RD_TRACE;
3835 0         0 $lastsep = "";
3836 0         0 $expectation->is(q{'()'})->at($text);
3837              
3838              
3839 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(\)//)
  0 0       0  
3840             {
3841              
3842 0         0 $expectation->failed();
3843 0 0       0 Parse::RecDescent::_trace(qq{<>},
3844             Parse::RecDescent::_tracefirst($text))
3845             if defined $::RD_TRACE;
3846 0         0 last;
3847             }
3848 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3849             . $& . q{])},
3850             Parse::RecDescent::_tracefirst($text))
3851             if defined $::RD_TRACE;
3852 0         0 push @item, $item{__STRING1__}=$&;
3853              
3854              
3855 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/OVER/i]}, Parse::RecDescent::_tracefirst($text),
3856             q{numbering_function},
3857             $tracelevel)
3858             if defined $::RD_TRACE;
3859 0         0 $lastsep = "";
3860 0         0 $expectation->is(q{/OVER/i})->at($text);
3861              
3862              
3863 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:OVER)//i)
  0 0       0  
3864             {
3865              
3866 0         0 $expectation->failed();
3867 0 0       0 Parse::RecDescent::_trace(q{<>},
3868             Parse::RecDescent::_tracefirst($text))
3869             if defined $::RD_TRACE;
3870              
3871 0         0 last;
3872             }
3873 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3874             . $& . q{])},
3875             Parse::RecDescent::_tracefirst($text))
3876             if defined $::RD_TRACE;
3877 0         0 push @item, $item{__PATTERN2__}=$&;
3878              
3879              
3880 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
3881             Parse::RecDescent::_tracefirst($text),
3882             q{numbering_function},
3883             $tracelevel)
3884             if defined $::RD_TRACE;
3885 0         0 $lastsep = "";
3886 0         0 $expectation->is(q{'('})->at($text);
3887              
3888              
3889 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
3890             {
3891              
3892 0         0 $expectation->failed();
3893 0 0       0 Parse::RecDescent::_trace(qq{<>},
3894             Parse::RecDescent::_tracefirst($text))
3895             if defined $::RD_TRACE;
3896 0         0 last;
3897             }
3898 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3899             . $& . q{])},
3900             Parse::RecDescent::_tracefirst($text))
3901             if defined $::RD_TRACE;
3902 0         0 push @item, $item{__STRING2__}=$&;
3903              
3904              
3905 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [window_partition_clause]},
3906             Parse::RecDescent::_tracefirst($text),
3907             q{numbering_function},
3908             $tracelevel)
3909             if defined $::RD_TRACE;
3910 0         0 $expectation->is(q{window_partition_clause})->at($text);
3911              
3912 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause, 0, 1, $_noactions,$expectation,undef)))
3913             {
3914 0 0       0 Parse::RecDescent::_trace(q{<>},
3915             Parse::RecDescent::_tracefirst($text),
3916             q{numbering_function},
3917             $tracelevel)
3918             if defined $::RD_TRACE;
3919 0         0 last;
3920             }
3921 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [window_partition_clause]<< (}
3922             . @$_tok . q{ times)},
3923              
3924             Parse::RecDescent::_tracefirst($text),
3925             q{numbering_function},
3926             $tracelevel)
3927             if defined $::RD_TRACE;
3928 0         0 $item{q{window_partition_clause(?)}} = $_tok;
3929 0         0 push @item, $_tok;
3930              
3931              
3932              
3933 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [window_order_clause]},
3934             Parse::RecDescent::_tracefirst($text),
3935             q{numbering_function},
3936             $tracelevel)
3937             if defined $::RD_TRACE;
3938 0         0 $expectation->is(q{window_order_clause})->at($text);
3939              
3940 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_numbering_function, 0, 1, $_noactions,$expectation,undef)))
3941             {
3942 0 0       0 Parse::RecDescent::_trace(q{<>},
3943             Parse::RecDescent::_tracefirst($text),
3944             q{numbering_function},
3945             $tracelevel)
3946             if defined $::RD_TRACE;
3947 0         0 last;
3948             }
3949 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_numbering_function]<< (}
3950             . @$_tok . q{ times)},
3951              
3952             Parse::RecDescent::_tracefirst($text),
3953             q{numbering_function},
3954             $tracelevel)
3955             if defined $::RD_TRACE;
3956 0         0 $item{q{_alternation_1_of_production_1_of_rule_numbering_function(?)}} = $_tok;
3957 0         0 push @item, $_tok;
3958              
3959              
3960              
3961 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause]},
3962             Parse::RecDescent::_tracefirst($text),
3963             q{numbering_function},
3964             $tracelevel)
3965             if defined $::RD_TRACE;
3966 0         0 $expectation->is(q{/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause})->at($text);
3967              
3968 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_numbering_function, 0, 1, $_noactions,$expectation,undef)))
3969             {
3970 0 0       0 Parse::RecDescent::_trace(q{<>},
3971             Parse::RecDescent::_tracefirst($text),
3972             q{numbering_function},
3973             $tracelevel)
3974             if defined $::RD_TRACE;
3975 0         0 last;
3976             }
3977 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_numbering_function]<< (}
3978             . @$_tok . q{ times)},
3979              
3980             Parse::RecDescent::_tracefirst($text),
3981             q{numbering_function},
3982             $tracelevel)
3983             if defined $::RD_TRACE;
3984 0         0 $item{q{_alternation_2_of_production_1_of_rule_numbering_function(?)}} = $_tok;
3985 0         0 push @item, $_tok;
3986              
3987              
3988              
3989 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
3990             Parse::RecDescent::_tracefirst($text),
3991             q{numbering_function},
3992             $tracelevel)
3993             if defined $::RD_TRACE;
3994 0         0 $lastsep = "";
3995 0         0 $expectation->is(q{')'})->at($text);
3996              
3997              
3998 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
3999             {
4000              
4001 0         0 $expectation->failed();
4002 0 0       0 Parse::RecDescent::_trace(qq{<>},
4003             Parse::RecDescent::_tracefirst($text))
4004             if defined $::RD_TRACE;
4005 0         0 last;
4006             }
4007 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4008             . $& . q{])},
4009             Parse::RecDescent::_tracefirst($text))
4010             if defined $::RD_TRACE;
4011 0         0 push @item, $item{__STRING3__}=$&;
4012              
4013              
4014              
4015 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ROW_NUMBER|ROWNUMBER/i '()' /OVER/i '(' window_partition_clause window_order_clause /RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause ')']<<},
4016             Parse::RecDescent::_tracefirst($text),
4017             q{numbering_function},
4018             $tracelevel)
4019             if defined $::RD_TRACE;
4020 0         0 $_matched = 1;
4021 0         0 last;
4022             }
4023              
4024              
4025 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
4026             {
4027              
4028              
4029 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
4030 0 0       0 Parse::RecDescent::_trace(q{<>},
4031             Parse::RecDescent::_tracefirst($_[1]),
4032             q{numbering_function},
4033             $tracelevel)
4034             if defined $::RD_TRACE;
4035 0         0 return undef;
4036             }
4037 0 0 0     0 if (!defined($return) && defined($score))
4038             {
4039 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4040             q{numbering_function},
4041             $tracelevel)
4042             if defined $::RD_TRACE;
4043 0         0 $return = $score_return;
4044             }
4045 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
4046 0 0       0 $return = $item[$#item] unless defined $return;
4047 0 0       0 if (defined $::RD_TRACE)
4048             {
4049 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4050             $return . q{])}, "",
4051             q{numbering_function},
4052             $tracelevel);
4053 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
4054             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4055             Parse::RecDescent::_tracefirst($text),
4056             , q{numbering_function},
4057             $tracelevel)
4058             }
4059 0         0 $_[1] = $text;
4060 0         0 return $return;
4061             }
4062              
4063             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4064             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_aggregation_group_clause
4065             {
4066 0     0   0 my $thisparser = $_[0];
4067 1     1   9 use vars q{$tracelevel};
  1         3  
  1         856  
4068 0   0     0 local $tracelevel = ($tracelevel||0)+1;
4069 0         0 $ERRORS = 0;
4070 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_window_aggregation_group_clause"};
4071              
4072 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]},
4073             Parse::RecDescent::_tracefirst($_[1]),
4074             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4075             $tracelevel)
4076             if defined $::RD_TRACE;
4077              
4078              
4079 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
4080              
4081 0         0 my $score;
4082             my $score_return;
4083 0         0 my $_tok;
4084 0         0 my $return = undef;
4085 0         0 my $_matched=0;
4086 0         0 my $commit=0;
4087 0         0 my @item = ();
4088 0         0 my %item = ();
4089 0   0     0 my $repeating = defined($_[2]) && $_[2];
4090 0   0     0 my $_noactions = defined($_[3]) && $_[3];
4091 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
4092 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4093 0         0 my $text;
4094 0         0 my $lastsep="";
4095 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4096 0         0 $expectation->at($_[1]);
4097              
4098 0         0 my $thisline;
4099 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4100              
4101              
4102              
4103 0   0     0 while (!$_matched && !$commit)
4104             {
4105              
4106 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ROWS/i]},
4107             Parse::RecDescent::_tracefirst($_[1]),
4108             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4109             $tracelevel)
4110             if defined $::RD_TRACE;
4111 0         0 my $thisprod = $thisrule->{"prods"}[0];
4112 0         0 $text = $_[1];
4113 0         0 my $_savetext;
4114 0         0 @item = (q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
4115 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
4116 0         0 my $repcount = 0;
4117              
4118              
4119 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ROWS/i]}, Parse::RecDescent::_tracefirst($text),
4120             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4121             $tracelevel)
4122             if defined $::RD_TRACE;
4123 0         0 $lastsep = "";
4124 0         0 $expectation->is(q{})->at($text);
4125              
4126              
4127 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ROWS)//i)
  0 0       0  
4128             {
4129              
4130 0         0 $expectation->failed();
4131 0 0       0 Parse::RecDescent::_trace(q{<>},
4132             Parse::RecDescent::_tracefirst($text))
4133             if defined $::RD_TRACE;
4134              
4135 0         0 last;
4136             }
4137 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4138             . $& . q{])},
4139             Parse::RecDescent::_tracefirst($text))
4140             if defined $::RD_TRACE;
4141 0         0 push @item, $item{__PATTERN1__}=$&;
4142              
4143              
4144              
4145 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ROWS/i]<<},
4146             Parse::RecDescent::_tracefirst($text),
4147             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4148             $tracelevel)
4149             if defined $::RD_TRACE;
4150 0         0 $_matched = 1;
4151 0         0 last;
4152             }
4153              
4154              
4155 0   0     0 while (!$_matched && !$commit)
4156             {
4157              
4158 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/RANGE/i]},
4159             Parse::RecDescent::_tracefirst($_[1]),
4160             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4161             $tracelevel)
4162             if defined $::RD_TRACE;
4163 0         0 my $thisprod = $thisrule->{"prods"}[1];
4164 0         0 $text = $_[1];
4165 0         0 my $_savetext;
4166 0         0 @item = (q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
4167 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
4168 0         0 my $repcount = 0;
4169              
4170              
4171 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/RANGE/i]}, Parse::RecDescent::_tracefirst($text),
4172             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4173             $tracelevel)
4174             if defined $::RD_TRACE;
4175 0         0 $lastsep = "";
4176 0         0 $expectation->is(q{})->at($text);
4177              
4178              
4179 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:RANGE)//i)
  0 0       0  
4180             {
4181              
4182 0         0 $expectation->failed();
4183 0 0       0 Parse::RecDescent::_trace(q{<>},
4184             Parse::RecDescent::_tracefirst($text))
4185             if defined $::RD_TRACE;
4186              
4187 0         0 last;
4188             }
4189 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4190             . $& . q{])},
4191             Parse::RecDescent::_tracefirst($text))
4192             if defined $::RD_TRACE;
4193 0         0 push @item, $item{__PATTERN1__}=$&;
4194              
4195              
4196              
4197 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/RANGE/i]<<},
4198             Parse::RecDescent::_tracefirst($text),
4199             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4200             $tracelevel)
4201             if defined $::RD_TRACE;
4202 0         0 $_matched = 1;
4203 0         0 last;
4204             }
4205              
4206              
4207 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
4208             {
4209              
4210              
4211 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
4212 0 0       0 Parse::RecDescent::_trace(q{<>},
4213             Parse::RecDescent::_tracefirst($_[1]),
4214             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4215             $tracelevel)
4216             if defined $::RD_TRACE;
4217 0         0 return undef;
4218             }
4219 0 0 0     0 if (!defined($return) && defined($score))
4220             {
4221 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4222             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4223             $tracelevel)
4224             if defined $::RD_TRACE;
4225 0         0 $return = $score_return;
4226             }
4227 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
4228 0 0       0 $return = $item[$#item] unless defined $return;
4229 0 0       0 if (defined $::RD_TRACE)
4230             {
4231 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4232             $return . q{])}, "",
4233             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4234             $tracelevel);
4235 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
4236             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4237             Parse::RecDescent::_tracefirst($text),
4238             , q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4239             $tracelevel)
4240             }
4241 0         0 $_[1] = $text;
4242 0         0 return $return;
4243             }
4244              
4245             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4246             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound1
4247             {
4248 0     0   0 my $thisparser = $_[0];
4249 1     1   8 use vars q{$tracelevel};
  1         2  
  1         484  
4250 0   0     0 local $tracelevel = ($tracelevel||0)+1;
4251 0         0 $ERRORS = 0;
4252 0         0 my $thisrule = $thisparser->{"rules"}{"group_bound1"};
4253              
4254 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [group_bound1]},
4255             Parse::RecDescent::_tracefirst($_[1]),
4256             q{group_bound1},
4257             $tracelevel)
4258             if defined $::RD_TRACE;
4259              
4260              
4261 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
4262              
4263 0         0 my $score;
4264             my $score_return;
4265 0         0 my $_tok;
4266 0         0 my $return = undef;
4267 0         0 my $_matched=0;
4268 0         0 my $commit=0;
4269 0         0 my @item = ();
4270 0         0 my %item = ();
4271 0   0     0 my $repeating = defined($_[2]) && $_[2];
4272 0   0     0 my $_noactions = defined($_[3]) && $_[3];
4273 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
4274 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4275 0         0 my $text;
4276 0         0 my $lastsep="";
4277 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4278 0         0 $expectation->at($_[1]);
4279              
4280 0         0 my $thisline;
4281 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4282              
4283              
4284              
4285 0   0     0 while (!$_matched && !$commit)
4286             {
4287              
4288 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
4289             Parse::RecDescent::_tracefirst($_[1]),
4290             q{group_bound1},
4291             $tracelevel)
4292             if defined $::RD_TRACE;
4293 0         0 my $thisprod = $thisrule->{"prods"}[0];
4294 0         0 $text = $_[1];
4295 0         0 my $_savetext;
4296 0         0 @item = (q{group_bound1});
4297 0         0 %item = (__RULE__ => q{group_bound1});
4298 0         0 my $repcount = 0;
4299              
4300              
4301 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
4302             q{group_bound1},
4303             $tracelevel)
4304             if defined $::RD_TRACE;
4305 0         0 $lastsep = "";
4306 0         0 $expectation->is(q{})->at($text);
4307              
4308              
4309 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i)
  0 0       0  
4310             {
4311              
4312 0         0 $expectation->failed();
4313 0 0       0 Parse::RecDescent::_trace(q{<>},
4314             Parse::RecDescent::_tracefirst($text))
4315             if defined $::RD_TRACE;
4316              
4317 0         0 last;
4318             }
4319 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4320             . $& . q{])},
4321             Parse::RecDescent::_tracefirst($text))
4322             if defined $::RD_TRACE;
4323 0         0 push @item, $item{__PATTERN1__}=$&;
4324              
4325              
4326              
4327 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
4328             Parse::RecDescent::_tracefirst($text),
4329             q{group_bound1},
4330             $tracelevel)
4331             if defined $::RD_TRACE;
4332 0         0 $_matched = 1;
4333 0         0 last;
4334             }
4335              
4336              
4337 0   0     0 while (!$_matched && !$commit)
4338             {
4339              
4340 0 0       0 Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /PRECEDING/i]},
4341             Parse::RecDescent::_tracefirst($_[1]),
4342             q{group_bound1},
4343             $tracelevel)
4344             if defined $::RD_TRACE;
4345 0         0 my $thisprod = $thisrule->{"prods"}[1];
4346 0         0 $text = $_[1];
4347 0         0 my $_savetext;
4348 0         0 @item = (q{group_bound1});
4349 0         0 %item = (__RULE__ => q{group_bound1});
4350 0         0 my $repcount = 0;
4351              
4352              
4353 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
4354             Parse::RecDescent::_tracefirst($text),
4355             q{group_bound1},
4356             $tracelevel)
4357             if defined $::RD_TRACE;
4358 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         360  
  0         0  
4359 0         0 $expectation->is(q{})->at($text);
4360 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
4361             {
4362              
4363 0 0       0 Parse::RecDescent::_trace(q{<>},
4364             Parse::RecDescent::_tracefirst($text),
4365             q{group_bound1},
4366             $tracelevel)
4367             if defined $::RD_TRACE;
4368 0         0 $expectation->failed();
4369 0         0 last;
4370             }
4371 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
4372             . $_tok . q{]},
4373              
4374             Parse::RecDescent::_tracefirst($text),
4375             q{group_bound1},
4376             $tracelevel)
4377             if defined $::RD_TRACE;
4378 0         0 $item{q{unsigned_constant}} = $_tok;
4379 0         0 push @item, $_tok;
4380              
4381             }
4382              
4383 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
4384             q{group_bound1},
4385             $tracelevel)
4386             if defined $::RD_TRACE;
4387 0         0 $lastsep = "";
4388 0         0 $expectation->is(q{/PRECEDING/i})->at($text);
4389              
4390              
4391 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:PRECEDING)//i)
  0 0       0  
4392             {
4393              
4394 0         0 $expectation->failed();
4395 0 0       0 Parse::RecDescent::_trace(q{<>},
4396             Parse::RecDescent::_tracefirst($text))
4397             if defined $::RD_TRACE;
4398              
4399 0         0 last;
4400             }
4401 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4402             . $& . q{])},
4403             Parse::RecDescent::_tracefirst($text))
4404             if defined $::RD_TRACE;
4405 0         0 push @item, $item{__PATTERN1__}=$&;
4406              
4407              
4408              
4409 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /PRECEDING/i]<<},
4410             Parse::RecDescent::_tracefirst($text),
4411             q{group_bound1},
4412             $tracelevel)
4413             if defined $::RD_TRACE;
4414 0         0 $_matched = 1;
4415 0         0 last;
4416             }
4417              
4418              
4419 0   0     0 while (!$_matched && !$commit)
4420             {
4421              
4422 0 0       0 Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /FOLLOWING/i]},
4423             Parse::RecDescent::_tracefirst($_[1]),
4424             q{group_bound1},
4425             $tracelevel)
4426             if defined $::RD_TRACE;
4427 0         0 my $thisprod = $thisrule->{"prods"}[2];
4428 0         0 $text = $_[1];
4429 0         0 my $_savetext;
4430 0         0 @item = (q{group_bound1});
4431 0         0 %item = (__RULE__ => q{group_bound1});
4432 0         0 my $repcount = 0;
4433              
4434              
4435 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
4436             Parse::RecDescent::_tracefirst($text),
4437             q{group_bound1},
4438             $tracelevel)
4439             if defined $::RD_TRACE;
4440 1     1   7 if (1) { no strict qw{refs};
  1         4  
  1         812  
  0         0  
4441 0         0 $expectation->is(q{})->at($text);
4442 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
4443             {
4444              
4445 0 0       0 Parse::RecDescent::_trace(q{<>},
4446             Parse::RecDescent::_tracefirst($text),
4447             q{group_bound1},
4448             $tracelevel)
4449             if defined $::RD_TRACE;
4450 0         0 $expectation->failed();
4451 0         0 last;
4452             }
4453 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
4454             . $_tok . q{]},
4455              
4456             Parse::RecDescent::_tracefirst($text),
4457             q{group_bound1},
4458             $tracelevel)
4459             if defined $::RD_TRACE;
4460 0         0 $item{q{unsigned_constant}} = $_tok;
4461 0         0 push @item, $_tok;
4462              
4463             }
4464              
4465 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
4466             q{group_bound1},
4467             $tracelevel)
4468             if defined $::RD_TRACE;
4469 0         0 $lastsep = "";
4470 0         0 $expectation->is(q{/FOLLOWING/i})->at($text);
4471              
4472              
4473 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:FOLLOWING)//i)
  0 0       0  
4474             {
4475              
4476 0         0 $expectation->failed();
4477 0 0       0 Parse::RecDescent::_trace(q{<>},
4478             Parse::RecDescent::_tracefirst($text))
4479             if defined $::RD_TRACE;
4480              
4481 0         0 last;
4482             }
4483 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4484             . $& . q{])},
4485             Parse::RecDescent::_tracefirst($text))
4486             if defined $::RD_TRACE;
4487 0         0 push @item, $item{__PATTERN1__}=$&;
4488              
4489              
4490              
4491 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /FOLLOWING/i]<<},
4492             Parse::RecDescent::_tracefirst($text),
4493             q{group_bound1},
4494             $tracelevel)
4495             if defined $::RD_TRACE;
4496 0         0 $_matched = 1;
4497 0         0 last;
4498             }
4499              
4500              
4501 0   0     0 while (!$_matched && !$commit)
4502             {
4503              
4504 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CURRENT\\s+ROW/i]},
4505             Parse::RecDescent::_tracefirst($_[1]),
4506             q{group_bound1},
4507             $tracelevel)
4508             if defined $::RD_TRACE;
4509 0         0 my $thisprod = $thisrule->{"prods"}[3];
4510 0         0 $text = $_[1];
4511 0         0 my $_savetext;
4512 0         0 @item = (q{group_bound1});
4513 0         0 %item = (__RULE__ => q{group_bound1});
4514 0         0 my $repcount = 0;
4515              
4516              
4517 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CURRENT\\s+ROW/i]}, Parse::RecDescent::_tracefirst($text),
4518             q{group_bound1},
4519             $tracelevel)
4520             if defined $::RD_TRACE;
4521 0         0 $lastsep = "";
4522 0         0 $expectation->is(q{})->at($text);
4523              
4524              
4525 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CURRENT\s+ROW)//i)
  0 0       0  
4526             {
4527              
4528 0         0 $expectation->failed();
4529 0 0       0 Parse::RecDescent::_trace(q{<>},
4530             Parse::RecDescent::_tracefirst($text))
4531             if defined $::RD_TRACE;
4532              
4533 0         0 last;
4534             }
4535 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4536             . $& . q{])},
4537             Parse::RecDescent::_tracefirst($text))
4538             if defined $::RD_TRACE;
4539 0         0 push @item, $item{__PATTERN1__}=$&;
4540              
4541              
4542              
4543 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CURRENT\\s+ROW/i]<<},
4544             Parse::RecDescent::_tracefirst($text),
4545             q{group_bound1},
4546             $tracelevel)
4547             if defined $::RD_TRACE;
4548 0         0 $_matched = 1;
4549 0         0 last;
4550             }
4551              
4552              
4553 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
4554             {
4555              
4556              
4557 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
4558 0 0       0 Parse::RecDescent::_trace(q{<>},
4559             Parse::RecDescent::_tracefirst($_[1]),
4560             q{group_bound1},
4561             $tracelevel)
4562             if defined $::RD_TRACE;
4563 0         0 return undef;
4564             }
4565 0 0 0     0 if (!defined($return) && defined($score))
4566             {
4567 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4568             q{group_bound1},
4569             $tracelevel)
4570             if defined $::RD_TRACE;
4571 0         0 $return = $score_return;
4572             }
4573 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
4574 0 0       0 $return = $item[$#item] unless defined $return;
4575 0 0       0 if (defined $::RD_TRACE)
4576             {
4577 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4578             $return . q{])}, "",
4579             q{group_bound1},
4580             $tracelevel);
4581 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
4582             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4583             Parse::RecDescent::_tracefirst($text),
4584             , q{group_bound1},
4585             $tracelevel)
4586             }
4587 0         0 $_[1] = $text;
4588 0         0 return $return;
4589             }
4590              
4591             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4592             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OLAP_function
4593             {
4594 0     0   0 my $thisparser = $_[0];
4595 1     1   9 use vars q{$tracelevel};
  1         2  
  1         285  
4596 0   0     0 local $tracelevel = ($tracelevel||0)+1;
4597 0         0 $ERRORS = 0;
4598 0         0 my $thisrule = $thisparser->{"rules"}{"OLAP_function"};
4599              
4600 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [OLAP_function]},
4601             Parse::RecDescent::_tracefirst($_[1]),
4602             q{OLAP_function},
4603             $tracelevel)
4604             if defined $::RD_TRACE;
4605              
4606              
4607 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
4608              
4609 0         0 my $score;
4610             my $score_return;
4611 0         0 my $_tok;
4612 0         0 my $return = undef;
4613 0         0 my $_matched=0;
4614 0         0 my $commit=0;
4615 0         0 my @item = ();
4616 0         0 my %item = ();
4617 0   0     0 my $repeating = defined($_[2]) && $_[2];
4618 0   0     0 my $_noactions = defined($_[3]) && $_[3];
4619 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
4620 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4621 0         0 my $text;
4622 0         0 my $lastsep="";
4623 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4624 0         0 $expectation->at($_[1]);
4625              
4626 0         0 my $thisline;
4627 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4628              
4629              
4630              
4631 0   0     0 while (!$_matched && !$commit)
4632             {
4633              
4634 0 0       0 Parse::RecDescent::_trace(q{Trying production: [ranking_function]},
4635             Parse::RecDescent::_tracefirst($_[1]),
4636             q{OLAP_function},
4637             $tracelevel)
4638             if defined $::RD_TRACE;
4639 0         0 my $thisprod = $thisrule->{"prods"}[0];
4640 0         0 $text = $_[1];
4641 0         0 my $_savetext;
4642 0         0 @item = (q{OLAP_function});
4643 0         0 %item = (__RULE__ => q{OLAP_function});
4644 0         0 my $repcount = 0;
4645              
4646              
4647 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [ranking_function]},
4648             Parse::RecDescent::_tracefirst($text),
4649             q{OLAP_function},
4650             $tracelevel)
4651             if defined $::RD_TRACE;
4652 1     1   7 if (1) { no strict qw{refs};
  1         8  
  1         220  
  0         0  
4653 0         0 $expectation->is(q{})->at($text);
4654 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ranking_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
4655             {
4656              
4657 0 0       0 Parse::RecDescent::_trace(q{<>},
4658             Parse::RecDescent::_tracefirst($text),
4659             q{OLAP_function},
4660             $tracelevel)
4661             if defined $::RD_TRACE;
4662 0         0 $expectation->failed();
4663 0         0 last;
4664             }
4665 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [ranking_function]<< (return value: [}
4666             . $_tok . q{]},
4667              
4668             Parse::RecDescent::_tracefirst($text),
4669             q{OLAP_function},
4670             $tracelevel)
4671             if defined $::RD_TRACE;
4672 0         0 $item{q{ranking_function}} = $_tok;
4673 0         0 push @item, $_tok;
4674              
4675             }
4676              
4677              
4678 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [ranking_function]<<},
4679             Parse::RecDescent::_tracefirst($text),
4680             q{OLAP_function},
4681             $tracelevel)
4682             if defined $::RD_TRACE;
4683 0         0 $_matched = 1;
4684 0         0 last;
4685             }
4686              
4687              
4688 0   0     0 while (!$_matched && !$commit)
4689             {
4690              
4691 0 0       0 Parse::RecDescent::_trace(q{Trying production: [numbering_function]},
4692             Parse::RecDescent::_tracefirst($_[1]),
4693             q{OLAP_function},
4694             $tracelevel)
4695             if defined $::RD_TRACE;
4696 0         0 my $thisprod = $thisrule->{"prods"}[1];
4697 0         0 $text = $_[1];
4698 0         0 my $_savetext;
4699 0         0 @item = (q{OLAP_function});
4700 0         0 %item = (__RULE__ => q{OLAP_function});
4701 0         0 my $repcount = 0;
4702              
4703              
4704 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [numbering_function]},
4705             Parse::RecDescent::_tracefirst($text),
4706             q{OLAP_function},
4707             $tracelevel)
4708             if defined $::RD_TRACE;
4709 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         245  
  0         0  
4710 0         0 $expectation->is(q{})->at($text);
4711 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numbering_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
4712             {
4713              
4714 0 0       0 Parse::RecDescent::_trace(q{<>},
4715             Parse::RecDescent::_tracefirst($text),
4716             q{OLAP_function},
4717             $tracelevel)
4718             if defined $::RD_TRACE;
4719 0         0 $expectation->failed();
4720 0         0 last;
4721             }
4722 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [numbering_function]<< (return value: [}
4723             . $_tok . q{]},
4724              
4725             Parse::RecDescent::_tracefirst($text),
4726             q{OLAP_function},
4727             $tracelevel)
4728             if defined $::RD_TRACE;
4729 0         0 $item{q{numbering_function}} = $_tok;
4730 0         0 push @item, $_tok;
4731              
4732             }
4733              
4734              
4735 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [numbering_function]<<},
4736             Parse::RecDescent::_tracefirst($text),
4737             q{OLAP_function},
4738             $tracelevel)
4739             if defined $::RD_TRACE;
4740 0         0 $_matched = 1;
4741 0         0 last;
4742             }
4743              
4744              
4745 0   0     0 while (!$_matched && !$commit)
4746             {
4747              
4748 0 0       0 Parse::RecDescent::_trace(q{Trying production: [aggregation_function]},
4749             Parse::RecDescent::_tracefirst($_[1]),
4750             q{OLAP_function},
4751             $tracelevel)
4752             if defined $::RD_TRACE;
4753 0         0 my $thisprod = $thisrule->{"prods"}[2];
4754 0         0 $text = $_[1];
4755 0         0 my $_savetext;
4756 0         0 @item = (q{OLAP_function});
4757 0         0 %item = (__RULE__ => q{OLAP_function});
4758 0         0 my $repcount = 0;
4759              
4760              
4761 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [aggregation_function]},
4762             Parse::RecDescent::_tracefirst($text),
4763             q{OLAP_function},
4764             $tracelevel)
4765             if defined $::RD_TRACE;
4766 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         445  
  0         0  
4767 0         0 $expectation->is(q{})->at($text);
4768 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::aggregation_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
4769             {
4770              
4771 0 0       0 Parse::RecDescent::_trace(q{<>},
4772             Parse::RecDescent::_tracefirst($text),
4773             q{OLAP_function},
4774             $tracelevel)
4775             if defined $::RD_TRACE;
4776 0         0 $expectation->failed();
4777 0         0 last;
4778             }
4779 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [aggregation_function]<< (return value: [}
4780             . $_tok . q{]},
4781              
4782             Parse::RecDescent::_tracefirst($text),
4783             q{OLAP_function},
4784             $tracelevel)
4785             if defined $::RD_TRACE;
4786 0         0 $item{q{aggregation_function}} = $_tok;
4787 0         0 push @item, $_tok;
4788              
4789             }
4790              
4791              
4792 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [aggregation_function]<<},
4793             Parse::RecDescent::_tracefirst($text),
4794             q{OLAP_function},
4795             $tracelevel)
4796             if defined $::RD_TRACE;
4797 0         0 $_matched = 1;
4798 0         0 last;
4799             }
4800              
4801              
4802 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
4803             {
4804              
4805              
4806 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
4807 0 0       0 Parse::RecDescent::_trace(q{<>},
4808             Parse::RecDescent::_tracefirst($_[1]),
4809             q{OLAP_function},
4810             $tracelevel)
4811             if defined $::RD_TRACE;
4812 0         0 return undef;
4813             }
4814 0 0 0     0 if (!defined($return) && defined($score))
4815             {
4816 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4817             q{OLAP_function},
4818             $tracelevel)
4819             if defined $::RD_TRACE;
4820 0         0 $return = $score_return;
4821             }
4822 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
4823 0 0       0 $return = $item[$#item] unless defined $return;
4824 0 0       0 if (defined $::RD_TRACE)
4825             {
4826 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4827             $return . q{])}, "",
4828             q{OLAP_function},
4829             $tracelevel);
4830 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
4831             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4832             Parse::RecDescent::_tracefirst($text),
4833             , q{OLAP_function},
4834             $tracelevel)
4835             }
4836 0         0 $_[1] = $text;
4837 0         0 return $return;
4838             }
4839              
4840             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4841             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_30_of_rule_sysibm_function
4842             {
4843 0     0   0 my $thisparser = $_[0];
4844 1     1   8 use vars q{$tracelevel};
  1         3  
  1         772  
4845 0   0     0 local $tracelevel = ($tracelevel||0)+1;
4846 0         0 $ERRORS = 0;
4847 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_30_of_rule_sysibm_function"};
4848              
4849 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_30_of_rule_sysibm_function]},
4850             Parse::RecDescent::_tracefirst($_[1]),
4851             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4852             $tracelevel)
4853             if defined $::RD_TRACE;
4854              
4855              
4856 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
4857              
4858 0         0 my $score;
4859             my $score_return;
4860 0         0 my $_tok;
4861 0         0 my $return = undef;
4862 0         0 my $_matched=0;
4863 0         0 my $commit=0;
4864 0         0 my @item = ();
4865 0         0 my %item = ();
4866 0   0     0 my $repeating = defined($_[2]) && $_[2];
4867 0   0     0 my $_noactions = defined($_[3]) && $_[3];
4868 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
4869 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4870 0         0 my $text;
4871 0         0 my $lastsep="";
4872 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4873 0         0 $expectation->at($_[1]);
4874              
4875 0         0 my $thisline;
4876 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4877              
4878              
4879              
4880 0   0     0 while (!$_matched && !$commit)
4881             {
4882              
4883 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DOUBLE/i]},
4884             Parse::RecDescent::_tracefirst($_[1]),
4885             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4886             $tracelevel)
4887             if defined $::RD_TRACE;
4888 0         0 my $thisprod = $thisrule->{"prods"}[0];
4889 0         0 $text = $_[1];
4890 0         0 my $_savetext;
4891 0         0 @item = (q{_alternation_1_of_production_30_of_rule_sysibm_function});
4892 0         0 %item = (__RULE__ => q{_alternation_1_of_production_30_of_rule_sysibm_function});
4893 0         0 my $repcount = 0;
4894              
4895              
4896 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DOUBLE/i]}, Parse::RecDescent::_tracefirst($text),
4897             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4898             $tracelevel)
4899             if defined $::RD_TRACE;
4900 0         0 $lastsep = "";
4901 0         0 $expectation->is(q{})->at($text);
4902              
4903              
4904 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DOUBLE)//i)
  0 0       0  
4905             {
4906              
4907 0         0 $expectation->failed();
4908 0 0       0 Parse::RecDescent::_trace(q{<>},
4909             Parse::RecDescent::_tracefirst($text))
4910             if defined $::RD_TRACE;
4911              
4912 0         0 last;
4913             }
4914 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4915             . $& . q{])},
4916             Parse::RecDescent::_tracefirst($text))
4917             if defined $::RD_TRACE;
4918 0         0 push @item, $item{__PATTERN1__}=$&;
4919              
4920              
4921              
4922 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DOUBLE/i]<<},
4923             Parse::RecDescent::_tracefirst($text),
4924             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4925             $tracelevel)
4926             if defined $::RD_TRACE;
4927 0         0 $_matched = 1;
4928 0         0 last;
4929             }
4930              
4931              
4932 0   0     0 while (!$_matched && !$commit)
4933             {
4934              
4935 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DOUBLE_PRECISION/i]},
4936             Parse::RecDescent::_tracefirst($_[1]),
4937             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4938             $tracelevel)
4939             if defined $::RD_TRACE;
4940 0         0 my $thisprod = $thisrule->{"prods"}[1];
4941 0         0 $text = $_[1];
4942 0         0 my $_savetext;
4943 0         0 @item = (q{_alternation_1_of_production_30_of_rule_sysibm_function});
4944 0         0 %item = (__RULE__ => q{_alternation_1_of_production_30_of_rule_sysibm_function});
4945 0         0 my $repcount = 0;
4946              
4947              
4948 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DOUBLE_PRECISION/i]}, Parse::RecDescent::_tracefirst($text),
4949             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4950             $tracelevel)
4951             if defined $::RD_TRACE;
4952 0         0 $lastsep = "";
4953 0         0 $expectation->is(q{})->at($text);
4954              
4955              
4956 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DOUBLE_PRECISION)//i)
  0 0       0  
4957             {
4958              
4959 0         0 $expectation->failed();
4960 0 0       0 Parse::RecDescent::_trace(q{<>},
4961             Parse::RecDescent::_tracefirst($text))
4962             if defined $::RD_TRACE;
4963              
4964 0         0 last;
4965             }
4966 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4967             . $& . q{])},
4968             Parse::RecDescent::_tracefirst($text))
4969             if defined $::RD_TRACE;
4970 0         0 push @item, $item{__PATTERN1__}=$&;
4971              
4972              
4973              
4974 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DOUBLE_PRECISION/i]<<},
4975             Parse::RecDescent::_tracefirst($text),
4976             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4977             $tracelevel)
4978             if defined $::RD_TRACE;
4979 0         0 $_matched = 1;
4980 0         0 last;
4981             }
4982              
4983              
4984 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
4985             {
4986              
4987              
4988 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
4989 0 0       0 Parse::RecDescent::_trace(q{<>},
4990             Parse::RecDescent::_tracefirst($_[1]),
4991             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4992             $tracelevel)
4993             if defined $::RD_TRACE;
4994 0         0 return undef;
4995             }
4996 0 0 0     0 if (!defined($return) && defined($score))
4997             {
4998 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4999             q{_alternation_1_of_production_30_of_rule_sysibm_function},
5000             $tracelevel)
5001             if defined $::RD_TRACE;
5002 0         0 $return = $score_return;
5003             }
5004 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
5005 0 0       0 $return = $item[$#item] unless defined $return;
5006 0 0       0 if (defined $::RD_TRACE)
5007             {
5008 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5009             $return . q{])}, "",
5010             q{_alternation_1_of_production_30_of_rule_sysibm_function},
5011             $tracelevel);
5012 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5013             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5014             Parse::RecDescent::_tracefirst($text),
5015             , q{_alternation_1_of_production_30_of_rule_sysibm_function},
5016             $tracelevel)
5017             }
5018 0         0 $_[1] = $text;
5019 0         0 return $return;
5020             }
5021              
5022             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5023             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::FULL
5024             {
5025 0     0   0 my $thisparser = $_[0];
5026 1     1   7 use vars q{$tracelevel};
  1         2  
  1         608  
5027 0   0     0 local $tracelevel = ($tracelevel||0)+1;
5028 0         0 $ERRORS = 0;
5029 0         0 my $thisrule = $thisparser->{"rules"}{"FULL"};
5030              
5031 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [FULL]},
5032             Parse::RecDescent::_tracefirst($_[1]),
5033             q{FULL},
5034             $tracelevel)
5035             if defined $::RD_TRACE;
5036              
5037              
5038 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
5039              
5040 0         0 my $score;
5041             my $score_return;
5042 0         0 my $_tok;
5043 0         0 my $return = undef;
5044 0         0 my $_matched=0;
5045 0         0 my $commit=0;
5046 0         0 my @item = ();
5047 0         0 my %item = ();
5048 0   0     0 my $repeating = defined($_[2]) && $_[2];
5049 0   0     0 my $_noactions = defined($_[3]) && $_[3];
5050 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
5051 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5052 0         0 my $text;
5053 0         0 my $lastsep="";
5054 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5055 0         0 $expectation->at($_[1]);
5056              
5057 0         0 my $thisline;
5058 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5059              
5060              
5061              
5062 0   0     0 while (!$_matched && !$commit)
5063             {
5064              
5065 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/full/i]},
5066             Parse::RecDescent::_tracefirst($_[1]),
5067             q{FULL},
5068             $tracelevel)
5069             if defined $::RD_TRACE;
5070 0         0 my $thisprod = $thisrule->{"prods"}[0];
5071 0         0 $text = $_[1];
5072 0         0 my $_savetext;
5073 0         0 @item = (q{FULL});
5074 0         0 %item = (__RULE__ => q{FULL});
5075 0         0 my $repcount = 0;
5076              
5077              
5078 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/full/i]}, Parse::RecDescent::_tracefirst($text),
5079             q{FULL},
5080             $tracelevel)
5081             if defined $::RD_TRACE;
5082 0         0 $lastsep = "";
5083 0         0 $expectation->is(q{})->at($text);
5084              
5085              
5086 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:full)//i)
  0 0       0  
5087             {
5088              
5089 0         0 $expectation->failed();
5090 0 0       0 Parse::RecDescent::_trace(q{<>},
5091             Parse::RecDescent::_tracefirst($text))
5092             if defined $::RD_TRACE;
5093              
5094 0         0 last;
5095             }
5096 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5097             . $& . q{])},
5098             Parse::RecDescent::_tracefirst($text))
5099             if defined $::RD_TRACE;
5100 0         0 push @item, $item{__PATTERN1__}=$&;
5101              
5102              
5103              
5104 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/full/i]<<},
5105             Parse::RecDescent::_tracefirst($text),
5106             q{FULL},
5107             $tracelevel)
5108             if defined $::RD_TRACE;
5109 0         0 $_matched = 1;
5110 0         0 last;
5111             }
5112              
5113              
5114 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
5115             {
5116              
5117              
5118 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
5119 0 0       0 Parse::RecDescent::_trace(q{<>},
5120             Parse::RecDescent::_tracefirst($_[1]),
5121             q{FULL},
5122             $tracelevel)
5123             if defined $::RD_TRACE;
5124 0         0 return undef;
5125             }
5126 0 0 0     0 if (!defined($return) && defined($score))
5127             {
5128 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5129             q{FULL},
5130             $tracelevel)
5131             if defined $::RD_TRACE;
5132 0         0 $return = $score_return;
5133             }
5134 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
5135 0 0       0 $return = $item[$#item] unless defined $return;
5136 0 0       0 if (defined $::RD_TRACE)
5137             {
5138 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5139             $return . q{])}, "",
5140             q{FULL},
5141             $tracelevel);
5142 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5143             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5144             Parse::RecDescent::_tracefirst($text),
5145             , q{FULL},
5146             $tracelevel)
5147             }
5148 0         0 $_[1] = $text;
5149 0         0 return $return;
5150             }
5151              
5152             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5153             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cast_specification
5154             {
5155 0     0   0 my $thisparser = $_[0];
5156 1     1   15 use vars q{$tracelevel};
  1         4  
  1         386  
5157 0   0     0 local $tracelevel = ($tracelevel||0)+1;
5158 0         0 $ERRORS = 0;
5159 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_cast_specification"};
5160              
5161 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_cast_specification]},
5162             Parse::RecDescent::_tracefirst($_[1]),
5163             q{_alternation_2_of_production_1_of_rule_cast_specification},
5164             $tracelevel)
5165             if defined $::RD_TRACE;
5166              
5167              
5168 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
5169              
5170 0         0 my $score;
5171             my $score_return;
5172 0         0 my $_tok;
5173 0         0 my $return = undef;
5174 0         0 my $_matched=0;
5175 0         0 my $commit=0;
5176 0         0 my @item = ();
5177 0         0 my %item = ();
5178 0   0     0 my $repeating = defined($_[2]) && $_[2];
5179 0   0     0 my $_noactions = defined($_[3]) && $_[3];
5180 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
5181 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5182 0         0 my $text;
5183 0         0 my $lastsep="";
5184 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5185 0         0 $expectation->at($_[1]);
5186              
5187 0         0 my $thisline;
5188 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5189              
5190              
5191              
5192 0   0     0 while (!$_matched && !$commit)
5193             {
5194              
5195 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SCOPE/ typed_table_name, or typed_view_name]},
5196             Parse::RecDescent::_tracefirst($_[1]),
5197             q{_alternation_2_of_production_1_of_rule_cast_specification},
5198             $tracelevel)
5199             if defined $::RD_TRACE;
5200 0         0 my $thisprod = $thisrule->{"prods"}[0];
5201 0         0 $text = $_[1];
5202 0         0 my $_savetext;
5203 0         0 @item = (q{_alternation_2_of_production_1_of_rule_cast_specification});
5204 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cast_specification});
5205 0         0 my $repcount = 0;
5206              
5207              
5208 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SCOPE/]}, Parse::RecDescent::_tracefirst($text),
5209             q{_alternation_2_of_production_1_of_rule_cast_specification},
5210             $tracelevel)
5211             if defined $::RD_TRACE;
5212 0         0 $lastsep = "";
5213 0         0 $expectation->is(q{})->at($text);
5214              
5215              
5216 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SCOPE)//)
  0 0       0  
5217             {
5218              
5219 0         0 $expectation->failed();
5220 0 0       0 Parse::RecDescent::_trace(q{<>},
5221             Parse::RecDescent::_tracefirst($text))
5222             if defined $::RD_TRACE;
5223              
5224 0         0 last;
5225             }
5226 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5227             . $& . q{])},
5228             Parse::RecDescent::_tracefirst($text))
5229             if defined $::RD_TRACE;
5230 0         0 push @item, $item{__PATTERN1__}=$&;
5231              
5232              
5233 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]},
5234             Parse::RecDescent::_tracefirst($text),
5235             q{_alternation_2_of_production_1_of_rule_cast_specification},
5236             $tracelevel)
5237             if defined $::RD_TRACE;
5238 1     1   9 if (1) { no strict qw{refs};
  1         2  
  1         379  
  0         0  
5239 0         0 $expectation->is(q{typed_table_name, or typed_view_name})->at($text);
5240 0 0   0   0 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 })))
  0         0  
5241             {
5242              
5243 0 0       0 Parse::RecDescent::_trace(q{<>},
5244             Parse::RecDescent::_tracefirst($text),
5245             q{_alternation_2_of_production_1_of_rule_cast_specification},
5246             $tracelevel)
5247             if defined $::RD_TRACE;
5248 0         0 $expectation->failed();
5249 0         0 last;
5250             }
5251 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]<< (return value: [}
5252             . $_tok . q{]},
5253              
5254             Parse::RecDescent::_tracefirst($text),
5255             q{_alternation_2_of_production_1_of_rule_cast_specification},
5256             $tracelevel)
5257             if defined $::RD_TRACE;
5258 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification}} = $_tok;
5259 0         0 push @item, $_tok;
5260              
5261             }
5262              
5263              
5264 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SCOPE/ typed_table_name, or typed_view_name]<<},
5265             Parse::RecDescent::_tracefirst($text),
5266             q{_alternation_2_of_production_1_of_rule_cast_specification},
5267             $tracelevel)
5268             if defined $::RD_TRACE;
5269 0         0 $_matched = 1;
5270 0         0 last;
5271             }
5272              
5273              
5274 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
5275             {
5276              
5277              
5278 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
5279 0 0       0 Parse::RecDescent::_trace(q{<>},
5280             Parse::RecDescent::_tracefirst($_[1]),
5281             q{_alternation_2_of_production_1_of_rule_cast_specification},
5282             $tracelevel)
5283             if defined $::RD_TRACE;
5284 0         0 return undef;
5285             }
5286 0 0 0     0 if (!defined($return) && defined($score))
5287             {
5288 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5289             q{_alternation_2_of_production_1_of_rule_cast_specification},
5290             $tracelevel)
5291             if defined $::RD_TRACE;
5292 0         0 $return = $score_return;
5293             }
5294 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
5295 0 0       0 $return = $item[$#item] unless defined $return;
5296 0 0       0 if (defined $::RD_TRACE)
5297             {
5298 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5299             $return . q{])}, "",
5300             q{_alternation_2_of_production_1_of_rule_cast_specification},
5301             $tracelevel);
5302 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5303             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5304             Parse::RecDescent::_tracefirst($text),
5305             , q{_alternation_2_of_production_1_of_rule_cast_specification},
5306             $tracelevel)
5307             }
5308 0         0 $_[1] = $text;
5309 0         0 return $return;
5310             }
5311              
5312             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5313             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::case_expression
5314             {
5315 0     0   0 my $thisparser = $_[0];
5316 1     1   7 use vars q{$tracelevel};
  1         2  
  1         442  
5317 0   0     0 local $tracelevel = ($tracelevel||0)+1;
5318 0         0 $ERRORS = 0;
5319 0         0 my $thisrule = $thisparser->{"rules"}{"case_expression"};
5320              
5321 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [case_expression]},
5322             Parse::RecDescent::_tracefirst($_[1]),
5323             q{case_expression},
5324             $tracelevel)
5325             if defined $::RD_TRACE;
5326              
5327              
5328 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
5329              
5330 0         0 my $score;
5331             my $score_return;
5332 0         0 my $_tok;
5333 0         0 my $return = undef;
5334 0         0 my $_matched=0;
5335 0         0 my $commit=0;
5336 0         0 my @item = ();
5337 0         0 my %item = ();
5338 0   0     0 my $repeating = defined($_[2]) && $_[2];
5339 0   0     0 my $_noactions = defined($_[3]) && $_[3];
5340 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
5341 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5342 0         0 my $text;
5343 0         0 my $lastsep="";
5344 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5345 0         0 $expectation->at($_[1]);
5346              
5347 0         0 my $thisline;
5348 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5349              
5350              
5351              
5352 0   0     0 while (!$_matched && !$commit)
5353             {
5354              
5355 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CASE/i searched_when_clause, or simple_when_clause /ELSE\\s+NULL/i, or /ELSE/i /END/i]},
5356             Parse::RecDescent::_tracefirst($_[1]),
5357             q{case_expression},
5358             $tracelevel)
5359             if defined $::RD_TRACE;
5360 0         0 my $thisprod = $thisrule->{"prods"}[0];
5361 0         0 $text = $_[1];
5362 0         0 my $_savetext;
5363 0         0 @item = (q{case_expression});
5364 0         0 %item = (__RULE__ => q{case_expression});
5365 0         0 my $repcount = 0;
5366              
5367              
5368 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CASE/i]}, Parse::RecDescent::_tracefirst($text),
5369             q{case_expression},
5370             $tracelevel)
5371             if defined $::RD_TRACE;
5372 0         0 $lastsep = "";
5373 0         0 $expectation->is(q{})->at($text);
5374              
5375              
5376 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CASE)//i)
  0 0       0  
5377             {
5378              
5379 0         0 $expectation->failed();
5380 0 0       0 Parse::RecDescent::_trace(q{<>},
5381             Parse::RecDescent::_tracefirst($text))
5382             if defined $::RD_TRACE;
5383              
5384 0         0 last;
5385             }
5386 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5387             . $& . q{])},
5388             Parse::RecDescent::_tracefirst($text))
5389             if defined $::RD_TRACE;
5390 0         0 push @item, $item{__PATTERN1__}=$&;
5391              
5392              
5393 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_case_expression]},
5394             Parse::RecDescent::_tracefirst($text),
5395             q{case_expression},
5396             $tracelevel)
5397             if defined $::RD_TRACE;
5398 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         584  
  0         0  
5399 0         0 $expectation->is(q{searched_when_clause, or simple_when_clause})->at($text);
5400 0 0   0   0 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 })))
  0         0  
5401             {
5402              
5403 0 0       0 Parse::RecDescent::_trace(q{<>},
5404             Parse::RecDescent::_tracefirst($text),
5405             q{case_expression},
5406             $tracelevel)
5407             if defined $::RD_TRACE;
5408 0         0 $expectation->failed();
5409 0         0 last;
5410             }
5411 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_case_expression]<< (return value: [}
5412             . $_tok . q{]},
5413              
5414             Parse::RecDescent::_tracefirst($text),
5415             q{case_expression},
5416             $tracelevel)
5417             if defined $::RD_TRACE;
5418 0         0 $item{q{_alternation_1_of_production_1_of_rule_case_expression}} = $_tok;
5419 0         0 push @item, $_tok;
5420              
5421             }
5422              
5423 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [/ELSE\\s+NULL/i, or /ELSE/i]},
5424             Parse::RecDescent::_tracefirst($text),
5425             q{case_expression},
5426             $tracelevel)
5427             if defined $::RD_TRACE;
5428 0         0 $expectation->is(q{/ELSE\\s+NULL/i, or /ELSE/i})->at($text);
5429              
5430 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_case_expression, 0, 1, $_noactions,$expectation,undef)))
5431             {
5432 0 0       0 Parse::RecDescent::_trace(q{<>},
5433             Parse::RecDescent::_tracefirst($text),
5434             q{case_expression},
5435             $tracelevel)
5436             if defined $::RD_TRACE;
5437 0         0 last;
5438             }
5439 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_case_expression]<< (}
5440             . @$_tok . q{ times)},
5441              
5442             Parse::RecDescent::_tracefirst($text),
5443             q{case_expression},
5444             $tracelevel)
5445             if defined $::RD_TRACE;
5446 0         0 $item{q{_alternation_2_of_production_1_of_rule_case_expression(?)}} = $_tok;
5447 0         0 push @item, $_tok;
5448              
5449              
5450              
5451 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/END/i]}, Parse::RecDescent::_tracefirst($text),
5452             q{case_expression},
5453             $tracelevel)
5454             if defined $::RD_TRACE;
5455 0         0 $lastsep = "";
5456 0         0 $expectation->is(q{/END/i})->at($text);
5457              
5458              
5459 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:END)//i)
  0 0       0  
5460             {
5461              
5462 0         0 $expectation->failed();
5463 0 0       0 Parse::RecDescent::_trace(q{<>},
5464             Parse::RecDescent::_tracefirst($text))
5465             if defined $::RD_TRACE;
5466              
5467 0         0 last;
5468             }
5469 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5470             . $& . q{])},
5471             Parse::RecDescent::_tracefirst($text))
5472             if defined $::RD_TRACE;
5473 0         0 push @item, $item{__PATTERN2__}=$&;
5474              
5475              
5476              
5477 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CASE/i searched_when_clause, or simple_when_clause /ELSE\\s+NULL/i, or /ELSE/i /END/i]<<},
5478             Parse::RecDescent::_tracefirst($text),
5479             q{case_expression},
5480             $tracelevel)
5481             if defined $::RD_TRACE;
5482 0         0 $_matched = 1;
5483 0         0 last;
5484             }
5485              
5486              
5487 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
5488             {
5489              
5490              
5491 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
5492 0 0       0 Parse::RecDescent::_trace(q{<>},
5493             Parse::RecDescent::_tracefirst($_[1]),
5494             q{case_expression},
5495             $tracelevel)
5496             if defined $::RD_TRACE;
5497 0         0 return undef;
5498             }
5499 0 0 0     0 if (!defined($return) && defined($score))
5500             {
5501 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5502             q{case_expression},
5503             $tracelevel)
5504             if defined $::RD_TRACE;
5505 0         0 $return = $score_return;
5506             }
5507 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
5508 0 0       0 $return = $item[$#item] unless defined $return;
5509 0 0       0 if (defined $::RD_TRACE)
5510             {
5511 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5512             $return . q{])}, "",
5513             q{case_expression},
5514             $tracelevel);
5515 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5516             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5517             Parse::RecDescent::_tracefirst($text),
5518             , q{case_expression},
5519             $tracelevel)
5520             }
5521 0         0 $_[1] = $text;
5522 0         0 return $return;
5523             }
5524              
5525             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5526             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::operator
5527             {
5528 0     0   0 my $thisparser = $_[0];
5529 1     1   8 use vars q{$tracelevel};
  1         8  
  1         299  
5530 0   0     0 local $tracelevel = ($tracelevel||0)+1;
5531 0         0 $ERRORS = 0;
5532 0         0 my $thisrule = $thisparser->{"rules"}{"operator"};
5533              
5534 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [operator]},
5535             Parse::RecDescent::_tracefirst($_[1]),
5536             q{operator},
5537             $tracelevel)
5538             if defined $::RD_TRACE;
5539              
5540              
5541 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
5542              
5543 0         0 my $score;
5544             my $score_return;
5545 0         0 my $_tok;
5546 0         0 my $return = undef;
5547 0         0 my $_matched=0;
5548 0         0 my $commit=0;
5549 0         0 my @item = ();
5550 0         0 my %item = ();
5551 0   0     0 my $repeating = defined($_[2]) && $_[2];
5552 0   0     0 my $_noactions = defined($_[3]) && $_[3];
5553 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
5554 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5555 0         0 my $text;
5556 0         0 my $lastsep="";
5557 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5558 0         0 $expectation->at($_[1]);
5559              
5560 0         0 my $thisline;
5561 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5562              
5563              
5564              
5565 0   0     0 while (!$_matched && !$commit)
5566             {
5567              
5568 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CONCAT/i, or '||']},
5569             Parse::RecDescent::_tracefirst($_[1]),
5570             q{operator},
5571             $tracelevel)
5572             if defined $::RD_TRACE;
5573 0         0 my $thisprod = $thisrule->{"prods"}[0];
5574 0         0 $text = $_[1];
5575 0         0 my $_savetext;
5576 0         0 @item = (q{operator});
5577 0         0 %item = (__RULE__ => q{operator});
5578 0         0 my $repcount = 0;
5579              
5580              
5581 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_operator]},
5582             Parse::RecDescent::_tracefirst($text),
5583             q{operator},
5584             $tracelevel)
5585             if defined $::RD_TRACE;
5586 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         1228  
  0         0  
5587 0         0 $expectation->is(q{})->at($text);
5588 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_operator($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
5589             {
5590              
5591 0 0       0 Parse::RecDescent::_trace(q{<>},
5592             Parse::RecDescent::_tracefirst($text),
5593             q{operator},
5594             $tracelevel)
5595             if defined $::RD_TRACE;
5596 0         0 $expectation->failed();
5597 0         0 last;
5598             }
5599 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_operator]<< (return value: [}
5600             . $_tok . q{]},
5601              
5602             Parse::RecDescent::_tracefirst($text),
5603             q{operator},
5604             $tracelevel)
5605             if defined $::RD_TRACE;
5606 0         0 $item{q{_alternation_1_of_production_1_of_rule_operator}} = $_tok;
5607 0         0 push @item, $_tok;
5608              
5609             }
5610              
5611              
5612 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/i, or '||']<<},
5613             Parse::RecDescent::_tracefirst($text),
5614             q{operator},
5615             $tracelevel)
5616             if defined $::RD_TRACE;
5617 0         0 $_matched = 1;
5618 0         0 last;
5619             }
5620              
5621              
5622 0   0     0 while (!$_matched && !$commit)
5623             {
5624              
5625 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['/']},
5626             Parse::RecDescent::_tracefirst($_[1]),
5627             q{operator},
5628             $tracelevel)
5629             if defined $::RD_TRACE;
5630 0         0 my $thisprod = $thisrule->{"prods"}[1];
5631 0         0 $text = $_[1];
5632 0         0 my $_savetext;
5633 0         0 @item = (q{operator});
5634 0         0 %item = (__RULE__ => q{operator});
5635 0         0 my $repcount = 0;
5636              
5637              
5638 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['/']},
5639             Parse::RecDescent::_tracefirst($text),
5640             q{operator},
5641             $tracelevel)
5642             if defined $::RD_TRACE;
5643 0         0 $lastsep = "";
5644 0         0 $expectation->is(q{})->at($text);
5645              
5646              
5647 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\///)
  0 0       0  
5648             {
5649              
5650 0         0 $expectation->failed();
5651 0 0       0 Parse::RecDescent::_trace(qq{<>},
5652             Parse::RecDescent::_tracefirst($text))
5653             if defined $::RD_TRACE;
5654 0         0 last;
5655             }
5656 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5657             . $& . q{])},
5658             Parse::RecDescent::_tracefirst($text))
5659             if defined $::RD_TRACE;
5660 0         0 push @item, $item{__STRING1__}=$&;
5661              
5662              
5663              
5664 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['/']<<},
5665             Parse::RecDescent::_tracefirst($text),
5666             q{operator},
5667             $tracelevel)
5668             if defined $::RD_TRACE;
5669 0         0 $_matched = 1;
5670 0         0 last;
5671             }
5672              
5673              
5674 0   0     0 while (!$_matched && !$commit)
5675             {
5676              
5677 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['*']},
5678             Parse::RecDescent::_tracefirst($_[1]),
5679             q{operator},
5680             $tracelevel)
5681             if defined $::RD_TRACE;
5682 0         0 my $thisprod = $thisrule->{"prods"}[2];
5683 0         0 $text = $_[1];
5684 0         0 my $_savetext;
5685 0         0 @item = (q{operator});
5686 0         0 %item = (__RULE__ => q{operator});
5687 0         0 my $repcount = 0;
5688              
5689              
5690 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['*']},
5691             Parse::RecDescent::_tracefirst($text),
5692             q{operator},
5693             $tracelevel)
5694             if defined $::RD_TRACE;
5695 0         0 $lastsep = "";
5696 0         0 $expectation->is(q{})->at($text);
5697              
5698              
5699 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\*//)
  0 0       0  
5700             {
5701              
5702 0         0 $expectation->failed();
5703 0 0       0 Parse::RecDescent::_trace(qq{<>},
5704             Parse::RecDescent::_tracefirst($text))
5705             if defined $::RD_TRACE;
5706 0         0 last;
5707             }
5708 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5709             . $& . q{])},
5710             Parse::RecDescent::_tracefirst($text))
5711             if defined $::RD_TRACE;
5712 0         0 push @item, $item{__STRING1__}=$&;
5713              
5714              
5715              
5716 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['*']<<},
5717             Parse::RecDescent::_tracefirst($text),
5718             q{operator},
5719             $tracelevel)
5720             if defined $::RD_TRACE;
5721 0         0 $_matched = 1;
5722 0         0 last;
5723             }
5724              
5725              
5726 0   0     0 while (!$_matched && !$commit)
5727             {
5728              
5729 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['+']},
5730             Parse::RecDescent::_tracefirst($_[1]),
5731             q{operator},
5732             $tracelevel)
5733             if defined $::RD_TRACE;
5734 0         0 my $thisprod = $thisrule->{"prods"}[3];
5735 0         0 $text = $_[1];
5736 0         0 my $_savetext;
5737 0         0 @item = (q{operator});
5738 0         0 %item = (__RULE__ => q{operator});
5739 0         0 my $repcount = 0;
5740              
5741              
5742 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['+']},
5743             Parse::RecDescent::_tracefirst($text),
5744             q{operator},
5745             $tracelevel)
5746             if defined $::RD_TRACE;
5747 0         0 $lastsep = "";
5748 0         0 $expectation->is(q{})->at($text);
5749              
5750              
5751 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\+//)
  0 0       0  
5752             {
5753              
5754 0         0 $expectation->failed();
5755 0 0       0 Parse::RecDescent::_trace(qq{<>},
5756             Parse::RecDescent::_tracefirst($text))
5757             if defined $::RD_TRACE;
5758 0         0 last;
5759             }
5760 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5761             . $& . q{])},
5762             Parse::RecDescent::_tracefirst($text))
5763             if defined $::RD_TRACE;
5764 0         0 push @item, $item{__STRING1__}=$&;
5765              
5766              
5767              
5768 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['+']<<},
5769             Parse::RecDescent::_tracefirst($text),
5770             q{operator},
5771             $tracelevel)
5772             if defined $::RD_TRACE;
5773 0         0 $_matched = 1;
5774 0         0 last;
5775             }
5776              
5777              
5778 0   0     0 while (!$_matched && !$commit)
5779             {
5780              
5781 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['-']},
5782             Parse::RecDescent::_tracefirst($_[1]),
5783             q{operator},
5784             $tracelevel)
5785             if defined $::RD_TRACE;
5786 0         0 my $thisprod = $thisrule->{"prods"}[4];
5787 0         0 $text = $_[1];
5788 0         0 my $_savetext;
5789 0         0 @item = (q{operator});
5790 0         0 %item = (__RULE__ => q{operator});
5791 0         0 my $repcount = 0;
5792              
5793              
5794 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['-']},
5795             Parse::RecDescent::_tracefirst($text),
5796             q{operator},
5797             $tracelevel)
5798             if defined $::RD_TRACE;
5799 0         0 $lastsep = "";
5800 0         0 $expectation->is(q{})->at($text);
5801              
5802              
5803 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\-//)
  0 0       0  
5804             {
5805              
5806 0         0 $expectation->failed();
5807 0 0       0 Parse::RecDescent::_trace(qq{<>},
5808             Parse::RecDescent::_tracefirst($text))
5809             if defined $::RD_TRACE;
5810 0         0 last;
5811             }
5812 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5813             . $& . q{])},
5814             Parse::RecDescent::_tracefirst($text))
5815             if defined $::RD_TRACE;
5816 0         0 push @item, $item{__STRING1__}=$&;
5817              
5818              
5819              
5820 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['-']<<},
5821             Parse::RecDescent::_tracefirst($text),
5822             q{operator},
5823             $tracelevel)
5824             if defined $::RD_TRACE;
5825 0         0 $_matched = 1;
5826 0         0 last;
5827             }
5828              
5829              
5830 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
5831             {
5832              
5833              
5834 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
5835 0 0       0 Parse::RecDescent::_trace(q{<>},
5836             Parse::RecDescent::_tracefirst($_[1]),
5837             q{operator},
5838             $tracelevel)
5839             if defined $::RD_TRACE;
5840 0         0 return undef;
5841             }
5842 0 0 0     0 if (!defined($return) && defined($score))
5843             {
5844 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5845             q{operator},
5846             $tracelevel)
5847             if defined $::RD_TRACE;
5848 0         0 $return = $score_return;
5849             }
5850 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
5851 0 0       0 $return = $item[$#item] unless defined $return;
5852 0 0       0 if (defined $::RD_TRACE)
5853             {
5854 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5855             $return . q{])}, "",
5856             q{operator},
5857             $tracelevel);
5858 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5859             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5860             Parse::RecDescent::_tracefirst($text),
5861             , q{operator},
5862             $tracelevel)
5863             }
5864 0         0 $_[1] = $text;
5865 0         0 return $return;
5866             }
5867              
5868             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5869             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_type
5870             {
5871 0     0   0 my $thisparser = $_[0];
5872 1     1   9 use vars q{$tracelevel};
  1         2  
  1         986  
5873 0   0     0 local $tracelevel = ($tracelevel||0)+1;
5874 0         0 $ERRORS = 0;
5875 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_2_of_rule_type"};
5876              
5877 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_2_of_rule_type]},
5878             Parse::RecDescent::_tracefirst($_[1]),
5879             q{_alternation_1_of_production_2_of_rule_type},
5880             $tracelevel)
5881             if defined $::RD_TRACE;
5882              
5883              
5884 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
5885              
5886 0         0 my $score;
5887             my $score_return;
5888 0         0 my $_tok;
5889 0         0 my $return = undef;
5890 0         0 my $_matched=0;
5891 0         0 my $commit=0;
5892 0         0 my @item = ();
5893 0         0 my %item = ();
5894 0   0     0 my $repeating = defined($_[2]) && $_[2];
5895 0   0     0 my $_noactions = defined($_[3]) && $_[3];
5896 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
5897 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5898 0         0 my $text;
5899 0         0 my $lastsep="";
5900 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5901 0         0 $expectation->at($_[1]);
5902              
5903 0         0 my $thisline;
5904 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5905              
5906              
5907              
5908 0   0     0 while (!$_matched && !$commit)
5909             {
5910              
5911 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/INSERT/i]},
5912             Parse::RecDescent::_tracefirst($_[1]),
5913             q{_alternation_1_of_production_2_of_rule_type},
5914             $tracelevel)
5915             if defined $::RD_TRACE;
5916 0         0 my $thisprod = $thisrule->{"prods"}[0];
5917 0         0 $text = $_[1];
5918 0         0 my $_savetext;
5919 0         0 @item = (q{_alternation_1_of_production_2_of_rule_type});
5920 0         0 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
5921 0         0 my $repcount = 0;
5922              
5923              
5924 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/INSERT/i]}, Parse::RecDescent::_tracefirst($text),
5925             q{_alternation_1_of_production_2_of_rule_type},
5926             $tracelevel)
5927             if defined $::RD_TRACE;
5928 0         0 $lastsep = "";
5929 0         0 $expectation->is(q{})->at($text);
5930              
5931              
5932 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:INSERT)//i)
  0 0       0  
5933             {
5934              
5935 0         0 $expectation->failed();
5936 0 0       0 Parse::RecDescent::_trace(q{<>},
5937             Parse::RecDescent::_tracefirst($text))
5938             if defined $::RD_TRACE;
5939              
5940 0         0 last;
5941             }
5942 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5943             . $& . q{])},
5944             Parse::RecDescent::_tracefirst($text))
5945             if defined $::RD_TRACE;
5946 0         0 push @item, $item{__PATTERN1__}=$&;
5947              
5948              
5949              
5950 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/INSERT/i]<<},
5951             Parse::RecDescent::_tracefirst($text),
5952             q{_alternation_1_of_production_2_of_rule_type},
5953             $tracelevel)
5954             if defined $::RD_TRACE;
5955 0         0 $_matched = 1;
5956 0         0 last;
5957             }
5958              
5959              
5960 0   0     0 while (!$_matched && !$commit)
5961             {
5962              
5963 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DELETE/i]},
5964             Parse::RecDescent::_tracefirst($_[1]),
5965             q{_alternation_1_of_production_2_of_rule_type},
5966             $tracelevel)
5967             if defined $::RD_TRACE;
5968 0         0 my $thisprod = $thisrule->{"prods"}[1];
5969 0         0 $text = $_[1];
5970 0         0 my $_savetext;
5971 0         0 @item = (q{_alternation_1_of_production_2_of_rule_type});
5972 0         0 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
5973 0         0 my $repcount = 0;
5974              
5975              
5976 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DELETE/i]}, Parse::RecDescent::_tracefirst($text),
5977             q{_alternation_1_of_production_2_of_rule_type},
5978             $tracelevel)
5979             if defined $::RD_TRACE;
5980 0         0 $lastsep = "";
5981 0         0 $expectation->is(q{})->at($text);
5982              
5983              
5984 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DELETE)//i)
  0 0       0  
5985             {
5986              
5987 0         0 $expectation->failed();
5988 0 0       0 Parse::RecDescent::_trace(q{<>},
5989             Parse::RecDescent::_tracefirst($text))
5990             if defined $::RD_TRACE;
5991              
5992 0         0 last;
5993             }
5994 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5995             . $& . q{])},
5996             Parse::RecDescent::_tracefirst($text))
5997             if defined $::RD_TRACE;
5998 0         0 push @item, $item{__PATTERN1__}=$&;
5999              
6000              
6001              
6002 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DELETE/i]<<},
6003             Parse::RecDescent::_tracefirst($text),
6004             q{_alternation_1_of_production_2_of_rule_type},
6005             $tracelevel)
6006             if defined $::RD_TRACE;
6007 0         0 $_matched = 1;
6008 0         0 last;
6009             }
6010              
6011              
6012 0   0     0 while (!$_matched && !$commit)
6013             {
6014              
6015 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/UPDATE/i]},
6016             Parse::RecDescent::_tracefirst($_[1]),
6017             q{_alternation_1_of_production_2_of_rule_type},
6018             $tracelevel)
6019             if defined $::RD_TRACE;
6020 0         0 my $thisprod = $thisrule->{"prods"}[2];
6021 0         0 $text = $_[1];
6022 0         0 my $_savetext;
6023 0         0 @item = (q{_alternation_1_of_production_2_of_rule_type});
6024 0         0 %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
6025 0         0 my $repcount = 0;
6026              
6027              
6028 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/UPDATE/i]}, Parse::RecDescent::_tracefirst($text),
6029             q{_alternation_1_of_production_2_of_rule_type},
6030             $tracelevel)
6031             if defined $::RD_TRACE;
6032 0         0 $lastsep = "";
6033 0         0 $expectation->is(q{})->at($text);
6034              
6035              
6036 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:UPDATE)//i)
  0 0       0  
6037             {
6038              
6039 0         0 $expectation->failed();
6040 0 0       0 Parse::RecDescent::_trace(q{<>},
6041             Parse::RecDescent::_tracefirst($text))
6042             if defined $::RD_TRACE;
6043              
6044 0         0 last;
6045             }
6046 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6047             . $& . q{])},
6048             Parse::RecDescent::_tracefirst($text))
6049             if defined $::RD_TRACE;
6050 0         0 push @item, $item{__PATTERN1__}=$&;
6051              
6052              
6053              
6054 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/UPDATE/i]<<},
6055             Parse::RecDescent::_tracefirst($text),
6056             q{_alternation_1_of_production_2_of_rule_type},
6057             $tracelevel)
6058             if defined $::RD_TRACE;
6059 0         0 $_matched = 1;
6060 0         0 last;
6061             }
6062              
6063              
6064 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
6065             {
6066              
6067              
6068 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
6069 0 0       0 Parse::RecDescent::_trace(q{<>},
6070             Parse::RecDescent::_tracefirst($_[1]),
6071             q{_alternation_1_of_production_2_of_rule_type},
6072             $tracelevel)
6073             if defined $::RD_TRACE;
6074 0         0 return undef;
6075             }
6076 0 0 0     0 if (!defined($return) && defined($score))
6077             {
6078 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6079             q{_alternation_1_of_production_2_of_rule_type},
6080             $tracelevel)
6081             if defined $::RD_TRACE;
6082 0         0 $return = $score_return;
6083             }
6084 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
6085 0 0       0 $return = $item[$#item] unless defined $return;
6086 0 0       0 if (defined $::RD_TRACE)
6087             {
6088 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6089             $return . q{])}, "",
6090             q{_alternation_1_of_production_2_of_rule_type},
6091             $tracelevel);
6092 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
6093             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6094             Parse::RecDescent::_tracefirst($text),
6095             , q{_alternation_1_of_production_2_of_rule_type},
6096             $tracelevel)
6097             }
6098 0         0 $_[1] = $text;
6099 0         0 return $return;
6100             }
6101              
6102             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6103             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_8_of_rule_sysibm_function
6104             {
6105 0     0   0 my $thisparser = $_[0];
6106 1     1   7 use vars q{$tracelevel};
  1         3  
  1         891  
6107 0   0     0 local $tracelevel = ($tracelevel||0)+1;
6108 0         0 $ERRORS = 0;
6109 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_8_of_rule_sysibm_function"};
6110              
6111 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_8_of_rule_sysibm_function]},
6112             Parse::RecDescent::_tracefirst($_[1]),
6113             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6114             $tracelevel)
6115             if defined $::RD_TRACE;
6116              
6117              
6118 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
6119              
6120 0         0 my $score;
6121             my $score_return;
6122 0         0 my $_tok;
6123 0         0 my $return = undef;
6124 0         0 my $_matched=0;
6125 0         0 my $commit=0;
6126 0         0 my @item = ();
6127 0         0 my %item = ();
6128 0   0     0 my $repeating = defined($_[2]) && $_[2];
6129 0   0     0 my $_noactions = defined($_[3]) && $_[3];
6130 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
6131 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6132 0         0 my $text;
6133 0         0 my $lastsep="";
6134 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6135 0         0 $expectation->at($_[1]);
6136              
6137 0         0 my $thisline;
6138 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6139              
6140              
6141              
6142 0   0     0 while (!$_matched && !$commit)
6143             {
6144              
6145 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CONCAT/]},
6146             Parse::RecDescent::_tracefirst($_[1]),
6147             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6148             $tracelevel)
6149             if defined $::RD_TRACE;
6150 0         0 my $thisprod = $thisrule->{"prods"}[0];
6151 0         0 $text = $_[1];
6152 0         0 my $_savetext;
6153 0         0 @item = (q{_alternation_1_of_production_8_of_rule_sysibm_function});
6154 0         0 %item = (__RULE__ => q{_alternation_1_of_production_8_of_rule_sysibm_function});
6155 0         0 my $repcount = 0;
6156              
6157              
6158 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CONCAT/]}, Parse::RecDescent::_tracefirst($text),
6159             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6160             $tracelevel)
6161             if defined $::RD_TRACE;
6162 0         0 $lastsep = "";
6163 0         0 $expectation->is(q{})->at($text);
6164              
6165              
6166 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CONCAT)//)
  0 0       0  
6167             {
6168              
6169 0         0 $expectation->failed();
6170 0 0       0 Parse::RecDescent::_trace(q{<>},
6171             Parse::RecDescent::_tracefirst($text))
6172             if defined $::RD_TRACE;
6173              
6174 0         0 last;
6175             }
6176 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6177             . $& . q{])},
6178             Parse::RecDescent::_tracefirst($text))
6179             if defined $::RD_TRACE;
6180 0         0 push @item, $item{__PATTERN1__}=$&;
6181              
6182              
6183              
6184 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/]<<},
6185             Parse::RecDescent::_tracefirst($text),
6186             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6187             $tracelevel)
6188             if defined $::RD_TRACE;
6189 0         0 $_matched = 1;
6190 0         0 last;
6191             }
6192              
6193              
6194 0   0     0 while (!$_matched && !$commit)
6195             {
6196              
6197 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['||']},
6198             Parse::RecDescent::_tracefirst($_[1]),
6199             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6200             $tracelevel)
6201             if defined $::RD_TRACE;
6202 0         0 my $thisprod = $thisrule->{"prods"}[1];
6203 0         0 $text = $_[1];
6204 0         0 my $_savetext;
6205 0         0 @item = (q{_alternation_1_of_production_8_of_rule_sysibm_function});
6206 0         0 %item = (__RULE__ => q{_alternation_1_of_production_8_of_rule_sysibm_function});
6207 0         0 my $repcount = 0;
6208              
6209              
6210 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['||']},
6211             Parse::RecDescent::_tracefirst($text),
6212             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6213             $tracelevel)
6214             if defined $::RD_TRACE;
6215 0         0 $lastsep = "";
6216 0         0 $expectation->is(q{})->at($text);
6217              
6218              
6219 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\|\|//)
  0 0       0  
6220             {
6221              
6222 0         0 $expectation->failed();
6223 0 0       0 Parse::RecDescent::_trace(qq{<>},
6224             Parse::RecDescent::_tracefirst($text))
6225             if defined $::RD_TRACE;
6226 0         0 last;
6227             }
6228 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6229             . $& . q{])},
6230             Parse::RecDescent::_tracefirst($text))
6231             if defined $::RD_TRACE;
6232 0         0 push @item, $item{__STRING1__}=$&;
6233              
6234              
6235              
6236 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['||']<<},
6237             Parse::RecDescent::_tracefirst($text),
6238             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6239             $tracelevel)
6240             if defined $::RD_TRACE;
6241 0         0 $_matched = 1;
6242 0         0 last;
6243             }
6244              
6245              
6246 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
6247             {
6248              
6249              
6250 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
6251 0 0       0 Parse::RecDescent::_trace(q{<>},
6252             Parse::RecDescent::_tracefirst($_[1]),
6253             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6254             $tracelevel)
6255             if defined $::RD_TRACE;
6256 0         0 return undef;
6257             }
6258 0 0 0     0 if (!defined($return) && defined($score))
6259             {
6260 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6261             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6262             $tracelevel)
6263             if defined $::RD_TRACE;
6264 0         0 $return = $score_return;
6265             }
6266 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
6267 0 0       0 $return = $item[$#item] unless defined $return;
6268 0 0       0 if (defined $::RD_TRACE)
6269             {
6270 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6271             $return . q{])}, "",
6272             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6273             $tracelevel);
6274 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
6275             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6276             Parse::RecDescent::_tracefirst($text),
6277             , q{_alternation_1_of_production_8_of_rule_sysibm_function},
6278             $tracelevel)
6279             }
6280 0         0 $_[1] = $text;
6281 0         0 return $return;
6282             }
6283              
6284             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6285             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_reference
6286             {
6287 0     0   0 my $thisparser = $_[0];
6288 1     1   9 use vars q{$tracelevel};
  1         2  
  1         276  
6289 0   0     0 local $tracelevel = ($tracelevel||0)+1;
6290 0         0 $ERRORS = 0;
6291 0         0 my $thisrule = $thisparser->{"rules"}{"sequence_reference"};
6292              
6293 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [sequence_reference]},
6294             Parse::RecDescent::_tracefirst($_[1]),
6295             q{sequence_reference},
6296             $tracelevel)
6297             if defined $::RD_TRACE;
6298              
6299              
6300 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
6301              
6302 0         0 my $score;
6303             my $score_return;
6304 0         0 my $_tok;
6305 0         0 my $return = undef;
6306 0         0 my $_matched=0;
6307 0         0 my $commit=0;
6308 0         0 my @item = ();
6309 0         0 my %item = ();
6310 0   0     0 my $repeating = defined($_[2]) && $_[2];
6311 0   0     0 my $_noactions = defined($_[3]) && $_[3];
6312 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
6313 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6314 0         0 my $text;
6315 0         0 my $lastsep="";
6316 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6317 0         0 $expectation->at($_[1]);
6318              
6319 0         0 my $thisline;
6320 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6321              
6322              
6323              
6324 0   0     0 while (!$_matched && !$commit)
6325             {
6326              
6327 0 0       0 Parse::RecDescent::_trace(q{Trying production: [nextval_expression]},
6328             Parse::RecDescent::_tracefirst($_[1]),
6329             q{sequence_reference},
6330             $tracelevel)
6331             if defined $::RD_TRACE;
6332 0         0 my $thisprod = $thisrule->{"prods"}[0];
6333 0         0 $text = $_[1];
6334 0         0 my $_savetext;
6335 0         0 @item = (q{sequence_reference});
6336 0         0 %item = (__RULE__ => q{sequence_reference});
6337 0         0 my $repcount = 0;
6338              
6339              
6340 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [nextval_expression]},
6341             Parse::RecDescent::_tracefirst($text),
6342             q{sequence_reference},
6343             $tracelevel)
6344             if defined $::RD_TRACE;
6345 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         246  
  0         0  
6346 0         0 $expectation->is(q{})->at($text);
6347 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::nextval_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
6348             {
6349              
6350 0 0       0 Parse::RecDescent::_trace(q{<>},
6351             Parse::RecDescent::_tracefirst($text),
6352             q{sequence_reference},
6353             $tracelevel)
6354             if defined $::RD_TRACE;
6355 0         0 $expectation->failed();
6356 0         0 last;
6357             }
6358 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [nextval_expression]<< (return value: [}
6359             . $_tok . q{]},
6360              
6361             Parse::RecDescent::_tracefirst($text),
6362             q{sequence_reference},
6363             $tracelevel)
6364             if defined $::RD_TRACE;
6365 0         0 $item{q{nextval_expression}} = $_tok;
6366 0         0 push @item, $_tok;
6367              
6368             }
6369              
6370              
6371 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [nextval_expression]<<},
6372             Parse::RecDescent::_tracefirst($text),
6373             q{sequence_reference},
6374             $tracelevel)
6375             if defined $::RD_TRACE;
6376 0         0 $_matched = 1;
6377 0         0 last;
6378             }
6379              
6380              
6381 0   0     0 while (!$_matched && !$commit)
6382             {
6383              
6384 0 0       0 Parse::RecDescent::_trace(q{Trying production: [prevval_expression]},
6385             Parse::RecDescent::_tracefirst($_[1]),
6386             q{sequence_reference},
6387             $tracelevel)
6388             if defined $::RD_TRACE;
6389 0         0 my $thisprod = $thisrule->{"prods"}[1];
6390 0         0 $text = $_[1];
6391 0         0 my $_savetext;
6392 0         0 @item = (q{sequence_reference});
6393 0         0 %item = (__RULE__ => q{sequence_reference});
6394 0         0 my $repcount = 0;
6395              
6396              
6397 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [prevval_expression]},
6398             Parse::RecDescent::_tracefirst($text),
6399             q{sequence_reference},
6400             $tracelevel)
6401             if defined $::RD_TRACE;
6402 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         361  
  0         0  
6403 0         0 $expectation->is(q{})->at($text);
6404 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::prevval_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
6405             {
6406              
6407 0 0       0 Parse::RecDescent::_trace(q{<>},
6408             Parse::RecDescent::_tracefirst($text),
6409             q{sequence_reference},
6410             $tracelevel)
6411             if defined $::RD_TRACE;
6412 0         0 $expectation->failed();
6413 0         0 last;
6414             }
6415 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [prevval_expression]<< (return value: [}
6416             . $_tok . q{]},
6417              
6418             Parse::RecDescent::_tracefirst($text),
6419             q{sequence_reference},
6420             $tracelevel)
6421             if defined $::RD_TRACE;
6422 0         0 $item{q{prevval_expression}} = $_tok;
6423 0         0 push @item, $_tok;
6424              
6425             }
6426              
6427              
6428 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [prevval_expression]<<},
6429             Parse::RecDescent::_tracefirst($text),
6430             q{sequence_reference},
6431             $tracelevel)
6432             if defined $::RD_TRACE;
6433 0         0 $_matched = 1;
6434 0         0 last;
6435             }
6436              
6437              
6438 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
6439             {
6440              
6441              
6442 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
6443 0 0       0 Parse::RecDescent::_trace(q{<>},
6444             Parse::RecDescent::_tracefirst($_[1]),
6445             q{sequence_reference},
6446             $tracelevel)
6447             if defined $::RD_TRACE;
6448 0         0 return undef;
6449             }
6450 0 0 0     0 if (!defined($return) && defined($score))
6451             {
6452 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6453             q{sequence_reference},
6454             $tracelevel)
6455             if defined $::RD_TRACE;
6456 0         0 $return = $score_return;
6457             }
6458 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
6459 0 0       0 $return = $item[$#item] unless defined $return;
6460 0 0       0 if (defined $::RD_TRACE)
6461             {
6462 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6463             $return . q{])}, "",
6464             q{sequence_reference},
6465             $tracelevel);
6466 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
6467             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6468             Parse::RecDescent::_tracefirst($text),
6469             , q{sequence_reference},
6470             $tracelevel)
6471             }
6472 0         0 $_[1] = $text;
6473 0         0 return $return;
6474             }
6475              
6476             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6477             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysibm_function
6478             {
6479 0     0   0 my $thisparser = $_[0];
6480 1     1   8 use vars q{$tracelevel};
  1         2  
  1         295  
6481 0   0     0 local $tracelevel = ($tracelevel||0)+1;
6482 0         0 $ERRORS = 0;
6483 0         0 my $thisrule = $thisparser->{"rules"}{"sysibm_function"};
6484              
6485 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [sysibm_function]},
6486             Parse::RecDescent::_tracefirst($_[1]),
6487             q{sysibm_function},
6488             $tracelevel)
6489             if defined $::RD_TRACE;
6490              
6491              
6492 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
6493              
6494 0         0 my $score;
6495             my $score_return;
6496 0         0 my $_tok;
6497 0         0 my $return = undef;
6498 0         0 my $_matched=0;
6499 0         0 my $commit=0;
6500 0         0 my @item = ();
6501 0         0 my %item = ();
6502 0   0     0 my $repeating = defined($_[2]) && $_[2];
6503 0   0     0 my $_noactions = defined($_[3]) && $_[3];
6504 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
6505 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6506 0         0 my $text;
6507 0         0 my $lastsep="";
6508 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6509 0         0 $expectation->at($_[1]);
6510              
6511 0         0 my $thisline;
6512 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6513              
6514              
6515              
6516 0   0     0 while (!$_matched && !$commit)
6517             {
6518              
6519 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ABS/i, or /ABSVAL/i]},
6520             Parse::RecDescent::_tracefirst($_[1]),
6521             q{sysibm_function},
6522             $tracelevel)
6523             if defined $::RD_TRACE;
6524 0         0 my $thisprod = $thisrule->{"prods"}[0];
6525 0         0 $text = $_[1];
6526 0         0 my $_savetext;
6527 0         0 @item = (q{sysibm_function});
6528 0         0 %item = (__RULE__ => q{sysibm_function});
6529 0         0 my $repcount = 0;
6530              
6531              
6532 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_sysibm_function]},
6533             Parse::RecDescent::_tracefirst($text),
6534             q{sysibm_function},
6535             $tracelevel)
6536             if defined $::RD_TRACE;
6537 1     1   7 if (1) { no strict qw{refs};
  1         4  
  1         1404  
  0         0  
6538 0         0 $expectation->is(q{})->at($text);
6539 0 0   0   0 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 })))
  0         0  
6540             {
6541              
6542 0 0       0 Parse::RecDescent::_trace(q{<>},
6543             Parse::RecDescent::_tracefirst($text),
6544             q{sysibm_function},
6545             $tracelevel)
6546             if defined $::RD_TRACE;
6547 0         0 $expectation->failed();
6548 0         0 last;
6549             }
6550 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_sysibm_function]<< (return value: [}
6551             . $_tok . q{]},
6552              
6553             Parse::RecDescent::_tracefirst($text),
6554             q{sysibm_function},
6555             $tracelevel)
6556             if defined $::RD_TRACE;
6557 0         0 $item{q{_alternation_1_of_production_1_of_rule_sysibm_function}} = $_tok;
6558 0         0 push @item, $_tok;
6559              
6560             }
6561              
6562              
6563 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i, or /ABSVAL/i]<<},
6564             Parse::RecDescent::_tracefirst($text),
6565             q{sysibm_function},
6566             $tracelevel)
6567             if defined $::RD_TRACE;
6568 0         0 $_matched = 1;
6569 0         0 last;
6570             }
6571              
6572              
6573 0   0     0 while (!$_matched && !$commit)
6574             {
6575              
6576 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/AVG/i]},
6577             Parse::RecDescent::_tracefirst($_[1]),
6578             q{sysibm_function},
6579             $tracelevel)
6580             if defined $::RD_TRACE;
6581 0         0 my $thisprod = $thisrule->{"prods"}[1];
6582 0         0 $text = $_[1];
6583 0         0 my $_savetext;
6584 0         0 @item = (q{sysibm_function});
6585 0         0 %item = (__RULE__ => q{sysibm_function});
6586 0         0 my $repcount = 0;
6587              
6588              
6589 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/AVG/i]}, Parse::RecDescent::_tracefirst($text),
6590             q{sysibm_function},
6591             $tracelevel)
6592             if defined $::RD_TRACE;
6593 0         0 $lastsep = "";
6594 0         0 $expectation->is(q{})->at($text);
6595              
6596              
6597 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:AVG)//i)
  0 0       0  
6598             {
6599              
6600 0         0 $expectation->failed();
6601 0 0       0 Parse::RecDescent::_trace(q{<>},
6602             Parse::RecDescent::_tracefirst($text))
6603             if defined $::RD_TRACE;
6604              
6605 0         0 last;
6606             }
6607 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6608             . $& . q{])},
6609             Parse::RecDescent::_tracefirst($text))
6610             if defined $::RD_TRACE;
6611 0         0 push @item, $item{__PATTERN1__}=$&;
6612              
6613              
6614              
6615 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/AVG/i]<<},
6616             Parse::RecDescent::_tracefirst($text),
6617             q{sysibm_function},
6618             $tracelevel)
6619             if defined $::RD_TRACE;
6620 0         0 $_matched = 1;
6621 0         0 last;
6622             }
6623              
6624              
6625 0   0     0 while (!$_matched && !$commit)
6626             {
6627              
6628 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/BIGINT/i]},
6629             Parse::RecDescent::_tracefirst($_[1]),
6630             q{sysibm_function},
6631             $tracelevel)
6632             if defined $::RD_TRACE;
6633 0         0 my $thisprod = $thisrule->{"prods"}[2];
6634 0         0 $text = $_[1];
6635 0         0 my $_savetext;
6636 0         0 @item = (q{sysibm_function});
6637 0         0 %item = (__RULE__ => q{sysibm_function});
6638 0         0 my $repcount = 0;
6639              
6640              
6641 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/BIGINT/i]}, Parse::RecDescent::_tracefirst($text),
6642             q{sysibm_function},
6643             $tracelevel)
6644             if defined $::RD_TRACE;
6645 0         0 $lastsep = "";
6646 0         0 $expectation->is(q{})->at($text);
6647              
6648              
6649 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:BIGINT)//i)
  0 0       0  
6650             {
6651              
6652 0         0 $expectation->failed();
6653 0 0       0 Parse::RecDescent::_trace(q{<>},
6654             Parse::RecDescent::_tracefirst($text))
6655             if defined $::RD_TRACE;
6656              
6657 0         0 last;
6658             }
6659 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6660             . $& . q{])},
6661             Parse::RecDescent::_tracefirst($text))
6662             if defined $::RD_TRACE;
6663 0         0 push @item, $item{__PATTERN1__}=$&;
6664              
6665              
6666              
6667 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/BIGINT/i]<<},
6668             Parse::RecDescent::_tracefirst($text),
6669             q{sysibm_function},
6670             $tracelevel)
6671             if defined $::RD_TRACE;
6672 0         0 $_matched = 1;
6673 0         0 last;
6674             }
6675              
6676              
6677 0   0     0 while (!$_matched && !$commit)
6678             {
6679              
6680 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/BLOB/i]},
6681             Parse::RecDescent::_tracefirst($_[1]),
6682             q{sysibm_function},
6683             $tracelevel)
6684             if defined $::RD_TRACE;
6685 0         0 my $thisprod = $thisrule->{"prods"}[3];
6686 0         0 $text = $_[1];
6687 0         0 my $_savetext;
6688 0         0 @item = (q{sysibm_function});
6689 0         0 %item = (__RULE__ => q{sysibm_function});
6690 0         0 my $repcount = 0;
6691              
6692              
6693 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/BLOB/i]}, Parse::RecDescent::_tracefirst($text),
6694             q{sysibm_function},
6695             $tracelevel)
6696             if defined $::RD_TRACE;
6697 0         0 $lastsep = "";
6698 0         0 $expectation->is(q{})->at($text);
6699              
6700              
6701 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:BLOB)//i)
  0 0       0  
6702             {
6703              
6704 0         0 $expectation->failed();
6705 0 0       0 Parse::RecDescent::_trace(q{<>},
6706             Parse::RecDescent::_tracefirst($text))
6707             if defined $::RD_TRACE;
6708              
6709 0         0 last;
6710             }
6711 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6712             . $& . q{])},
6713             Parse::RecDescent::_tracefirst($text))
6714             if defined $::RD_TRACE;
6715 0         0 push @item, $item{__PATTERN1__}=$&;
6716              
6717              
6718              
6719 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/BLOB/i]<<},
6720             Parse::RecDescent::_tracefirst($text),
6721             q{sysibm_function},
6722             $tracelevel)
6723             if defined $::RD_TRACE;
6724 0         0 $_matched = 1;
6725 0         0 last;
6726             }
6727              
6728              
6729 0   0     0 while (!$_matched && !$commit)
6730             {
6731              
6732 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CHAR/i]},
6733             Parse::RecDescent::_tracefirst($_[1]),
6734             q{sysibm_function},
6735             $tracelevel)
6736             if defined $::RD_TRACE;
6737 0         0 my $thisprod = $thisrule->{"prods"}[4];
6738 0         0 $text = $_[1];
6739 0         0 my $_savetext;
6740 0         0 @item = (q{sysibm_function});
6741 0         0 %item = (__RULE__ => q{sysibm_function});
6742 0         0 my $repcount = 0;
6743              
6744              
6745 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CHAR/i]}, Parse::RecDescent::_tracefirst($text),
6746             q{sysibm_function},
6747             $tracelevel)
6748             if defined $::RD_TRACE;
6749 0         0 $lastsep = "";
6750 0         0 $expectation->is(q{})->at($text);
6751              
6752              
6753 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CHAR)//i)
  0 0       0  
6754             {
6755              
6756 0         0 $expectation->failed();
6757 0 0       0 Parse::RecDescent::_trace(q{<>},
6758             Parse::RecDescent::_tracefirst($text))
6759             if defined $::RD_TRACE;
6760              
6761 0         0 last;
6762             }
6763 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6764             . $& . q{])},
6765             Parse::RecDescent::_tracefirst($text))
6766             if defined $::RD_TRACE;
6767 0         0 push @item, $item{__PATTERN1__}=$&;
6768              
6769              
6770              
6771 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CHAR/i]<<},
6772             Parse::RecDescent::_tracefirst($text),
6773             q{sysibm_function},
6774             $tracelevel)
6775             if defined $::RD_TRACE;
6776 0         0 $_matched = 1;
6777 0         0 last;
6778             }
6779              
6780              
6781 0   0     0 while (!$_matched && !$commit)
6782             {
6783              
6784 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CLOB/i]},
6785             Parse::RecDescent::_tracefirst($_[1]),
6786             q{sysibm_function},
6787             $tracelevel)
6788             if defined $::RD_TRACE;
6789 0         0 my $thisprod = $thisrule->{"prods"}[5];
6790 0         0 $text = $_[1];
6791 0         0 my $_savetext;
6792 0         0 @item = (q{sysibm_function});
6793 0         0 %item = (__RULE__ => q{sysibm_function});
6794 0         0 my $repcount = 0;
6795              
6796              
6797 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CLOB/i]}, Parse::RecDescent::_tracefirst($text),
6798             q{sysibm_function},
6799             $tracelevel)
6800             if defined $::RD_TRACE;
6801 0         0 $lastsep = "";
6802 0         0 $expectation->is(q{})->at($text);
6803              
6804              
6805 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CLOB)//i)
  0 0       0  
6806             {
6807              
6808 0         0 $expectation->failed();
6809 0 0       0 Parse::RecDescent::_trace(q{<>},
6810             Parse::RecDescent::_tracefirst($text))
6811             if defined $::RD_TRACE;
6812              
6813 0         0 last;
6814             }
6815 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6816             . $& . q{])},
6817             Parse::RecDescent::_tracefirst($text))
6818             if defined $::RD_TRACE;
6819 0         0 push @item, $item{__PATTERN1__}=$&;
6820              
6821              
6822              
6823 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CLOB/i]<<},
6824             Parse::RecDescent::_tracefirst($text),
6825             q{sysibm_function},
6826             $tracelevel)
6827             if defined $::RD_TRACE;
6828 0         0 $_matched = 1;
6829 0         0 last;
6830             }
6831              
6832              
6833 0   0     0 while (!$_matched && !$commit)
6834             {
6835              
6836 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/COALESCE/i]},
6837             Parse::RecDescent::_tracefirst($_[1]),
6838             q{sysibm_function},
6839             $tracelevel)
6840             if defined $::RD_TRACE;
6841 0         0 my $thisprod = $thisrule->{"prods"}[6];
6842 0         0 $text = $_[1];
6843 0         0 my $_savetext;
6844 0         0 @item = (q{sysibm_function});
6845 0         0 %item = (__RULE__ => q{sysibm_function});
6846 0         0 my $repcount = 0;
6847              
6848              
6849 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/COALESCE/i]}, Parse::RecDescent::_tracefirst($text),
6850             q{sysibm_function},
6851             $tracelevel)
6852             if defined $::RD_TRACE;
6853 0         0 $lastsep = "";
6854 0         0 $expectation->is(q{})->at($text);
6855              
6856              
6857 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:COALESCE)//i)
  0 0       0  
6858             {
6859              
6860 0         0 $expectation->failed();
6861 0 0       0 Parse::RecDescent::_trace(q{<>},
6862             Parse::RecDescent::_tracefirst($text))
6863             if defined $::RD_TRACE;
6864              
6865 0         0 last;
6866             }
6867 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6868             . $& . q{])},
6869             Parse::RecDescent::_tracefirst($text))
6870             if defined $::RD_TRACE;
6871 0         0 push @item, $item{__PATTERN1__}=$&;
6872              
6873              
6874              
6875 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/COALESCE/i]<<},
6876             Parse::RecDescent::_tracefirst($text),
6877             q{sysibm_function},
6878             $tracelevel)
6879             if defined $::RD_TRACE;
6880 0         0 $_matched = 1;
6881 0         0 last;
6882             }
6883              
6884              
6885 0   0     0 while (!$_matched && !$commit)
6886             {
6887              
6888 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CONCAT/, or '||']},
6889             Parse::RecDescent::_tracefirst($_[1]),
6890             q{sysibm_function},
6891             $tracelevel)
6892             if defined $::RD_TRACE;
6893 0         0 my $thisprod = $thisrule->{"prods"}[7];
6894 0         0 $text = $_[1];
6895 0         0 my $_savetext;
6896 0         0 @item = (q{sysibm_function});
6897 0         0 %item = (__RULE__ => q{sysibm_function});
6898 0         0 my $repcount = 0;
6899              
6900              
6901 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_8_of_rule_sysibm_function]},
6902             Parse::RecDescent::_tracefirst($text),
6903             q{sysibm_function},
6904             $tracelevel)
6905             if defined $::RD_TRACE;
6906 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         237  
  0         0  
6907 0         0 $expectation->is(q{})->at($text);
6908 0 0   0   0 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 })))
  0         0  
6909             {
6910              
6911 0 0       0 Parse::RecDescent::_trace(q{<>},
6912             Parse::RecDescent::_tracefirst($text),
6913             q{sysibm_function},
6914             $tracelevel)
6915             if defined $::RD_TRACE;
6916 0         0 $expectation->failed();
6917 0         0 last;
6918             }
6919 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_8_of_rule_sysibm_function]<< (return value: [}
6920             . $_tok . q{]},
6921              
6922             Parse::RecDescent::_tracefirst($text),
6923             q{sysibm_function},
6924             $tracelevel)
6925             if defined $::RD_TRACE;
6926 0         0 $item{q{_alternation_1_of_production_8_of_rule_sysibm_function}} = $_tok;
6927 0         0 push @item, $_tok;
6928              
6929             }
6930              
6931              
6932 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/, or '||']<<},
6933             Parse::RecDescent::_tracefirst($text),
6934             q{sysibm_function},
6935             $tracelevel)
6936             if defined $::RD_TRACE;
6937 0         0 $_matched = 1;
6938 0         0 last;
6939             }
6940              
6941              
6942 0   0     0 while (!$_matched && !$commit)
6943             {
6944              
6945 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CORRELATION/i, or /CORR/]},
6946             Parse::RecDescent::_tracefirst($_[1]),
6947             q{sysibm_function},
6948             $tracelevel)
6949             if defined $::RD_TRACE;
6950 0         0 my $thisprod = $thisrule->{"prods"}[8];
6951 0         0 $text = $_[1];
6952 0         0 my $_savetext;
6953 0         0 @item = (q{sysibm_function});
6954 0         0 %item = (__RULE__ => q{sysibm_function});
6955 0         0 my $repcount = 0;
6956              
6957              
6958 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_9_of_rule_sysibm_function]},
6959             Parse::RecDescent::_tracefirst($text),
6960             q{sysibm_function},
6961             $tracelevel)
6962             if defined $::RD_TRACE;
6963 1     1   18 if (1) { no strict qw{refs};
  1         2  
  1         651  
  0         0  
6964 0         0 $expectation->is(q{})->at($text);
6965 0 0   0   0 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 })))
  0         0  
6966             {
6967              
6968 0 0       0 Parse::RecDescent::_trace(q{<>},
6969             Parse::RecDescent::_tracefirst($text),
6970             q{sysibm_function},
6971             $tracelevel)
6972             if defined $::RD_TRACE;
6973 0         0 $expectation->failed();
6974 0         0 last;
6975             }
6976 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_9_of_rule_sysibm_function]<< (return value: [}
6977             . $_tok . q{]},
6978              
6979             Parse::RecDescent::_tracefirst($text),
6980             q{sysibm_function},
6981             $tracelevel)
6982             if defined $::RD_TRACE;
6983 0         0 $item{q{_alternation_1_of_production_9_of_rule_sysibm_function}} = $_tok;
6984 0         0 push @item, $_tok;
6985              
6986             }
6987              
6988              
6989 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CORRELATION/i, or /CORR/]<<},
6990             Parse::RecDescent::_tracefirst($text),
6991             q{sysibm_function},
6992             $tracelevel)
6993             if defined $::RD_TRACE;
6994 0         0 $_matched = 1;
6995 0         0 last;
6996             }
6997              
6998              
6999 0   0     0 while (!$_matched && !$commit)
7000             {
7001              
7002 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/COUNT/i]},
7003             Parse::RecDescent::_tracefirst($_[1]),
7004             q{sysibm_function},
7005             $tracelevel)
7006             if defined $::RD_TRACE;
7007 0         0 my $thisprod = $thisrule->{"prods"}[9];
7008 0         0 $text = $_[1];
7009 0         0 my $_savetext;
7010 0         0 @item = (q{sysibm_function});
7011 0         0 %item = (__RULE__ => q{sysibm_function});
7012 0         0 my $repcount = 0;
7013              
7014              
7015 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/COUNT/i]}, Parse::RecDescent::_tracefirst($text),
7016             q{sysibm_function},
7017             $tracelevel)
7018             if defined $::RD_TRACE;
7019 0         0 $lastsep = "";
7020 0         0 $expectation->is(q{})->at($text);
7021              
7022              
7023 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:COUNT)//i)
  0 0       0  
7024             {
7025              
7026 0         0 $expectation->failed();
7027 0 0       0 Parse::RecDescent::_trace(q{<>},
7028             Parse::RecDescent::_tracefirst($text))
7029             if defined $::RD_TRACE;
7030              
7031 0         0 last;
7032             }
7033 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7034             . $& . q{])},
7035             Parse::RecDescent::_tracefirst($text))
7036             if defined $::RD_TRACE;
7037 0         0 push @item, $item{__PATTERN1__}=$&;
7038              
7039              
7040              
7041 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/COUNT/i]<<},
7042             Parse::RecDescent::_tracefirst($text),
7043             q{sysibm_function},
7044             $tracelevel)
7045             if defined $::RD_TRACE;
7046 0         0 $_matched = 1;
7047 0         0 last;
7048             }
7049              
7050              
7051 0   0     0 while (!$_matched && !$commit)
7052             {
7053              
7054 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/COUNT_BIG/i]},
7055             Parse::RecDescent::_tracefirst($_[1]),
7056             q{sysibm_function},
7057             $tracelevel)
7058             if defined $::RD_TRACE;
7059 0         0 my $thisprod = $thisrule->{"prods"}[10];
7060 0         0 $text = $_[1];
7061 0         0 my $_savetext;
7062 0         0 @item = (q{sysibm_function});
7063 0         0 %item = (__RULE__ => q{sysibm_function});
7064 0         0 my $repcount = 0;
7065              
7066              
7067 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/COUNT_BIG/i]}, Parse::RecDescent::_tracefirst($text),
7068             q{sysibm_function},
7069             $tracelevel)
7070             if defined $::RD_TRACE;
7071 0         0 $lastsep = "";
7072 0         0 $expectation->is(q{})->at($text);
7073              
7074              
7075 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:COUNT_BIG)//i)
  0 0       0  
7076             {
7077              
7078 0         0 $expectation->failed();
7079 0 0       0 Parse::RecDescent::_trace(q{<>},
7080             Parse::RecDescent::_tracefirst($text))
7081             if defined $::RD_TRACE;
7082              
7083 0         0 last;
7084             }
7085 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7086             . $& . q{])},
7087             Parse::RecDescent::_tracefirst($text))
7088             if defined $::RD_TRACE;
7089 0         0 push @item, $item{__PATTERN1__}=$&;
7090              
7091              
7092              
7093 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/COUNT_BIG/i]<<},
7094             Parse::RecDescent::_tracefirst($text),
7095             q{sysibm_function},
7096             $tracelevel)
7097             if defined $::RD_TRACE;
7098 0         0 $_matched = 1;
7099 0         0 last;
7100             }
7101              
7102              
7103 0   0     0 while (!$_matched && !$commit)
7104             {
7105              
7106 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/COVARIANCE/i, or /COVAR/i]},
7107             Parse::RecDescent::_tracefirst($_[1]),
7108             q{sysibm_function},
7109             $tracelevel)
7110             if defined $::RD_TRACE;
7111 0         0 my $thisprod = $thisrule->{"prods"}[11];
7112 0         0 $text = $_[1];
7113 0         0 my $_savetext;
7114 0         0 @item = (q{sysibm_function});
7115 0         0 %item = (__RULE__ => q{sysibm_function});
7116 0         0 my $repcount = 0;
7117              
7118              
7119 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_12_of_rule_sysibm_function]},
7120             Parse::RecDescent::_tracefirst($text),
7121             q{sysibm_function},
7122             $tracelevel)
7123             if defined $::RD_TRACE;
7124 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         1154  
  0         0  
7125 0         0 $expectation->is(q{})->at($text);
7126 0 0   0   0 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 })))
  0         0  
7127             {
7128              
7129 0 0       0 Parse::RecDescent::_trace(q{<>},
7130             Parse::RecDescent::_tracefirst($text),
7131             q{sysibm_function},
7132             $tracelevel)
7133             if defined $::RD_TRACE;
7134 0         0 $expectation->failed();
7135 0         0 last;
7136             }
7137 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_12_of_rule_sysibm_function]<< (return value: [}
7138             . $_tok . q{]},
7139              
7140             Parse::RecDescent::_tracefirst($text),
7141             q{sysibm_function},
7142             $tracelevel)
7143             if defined $::RD_TRACE;
7144 0         0 $item{q{_alternation_1_of_production_12_of_rule_sysibm_function}} = $_tok;
7145 0         0 push @item, $_tok;
7146              
7147             }
7148              
7149              
7150 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/COVARIANCE/i, or /COVAR/i]<<},
7151             Parse::RecDescent::_tracefirst($text),
7152             q{sysibm_function},
7153             $tracelevel)
7154             if defined $::RD_TRACE;
7155 0         0 $_matched = 1;
7156 0         0 last;
7157             }
7158              
7159              
7160 0   0     0 while (!$_matched && !$commit)
7161             {
7162              
7163 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DATE/i]},
7164             Parse::RecDescent::_tracefirst($_[1]),
7165             q{sysibm_function},
7166             $tracelevel)
7167             if defined $::RD_TRACE;
7168 0         0 my $thisprod = $thisrule->{"prods"}[12];
7169 0         0 $text = $_[1];
7170 0         0 my $_savetext;
7171 0         0 @item = (q{sysibm_function});
7172 0         0 %item = (__RULE__ => q{sysibm_function});
7173 0         0 my $repcount = 0;
7174              
7175              
7176 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DATE/i]}, Parse::RecDescent::_tracefirst($text),
7177             q{sysibm_function},
7178             $tracelevel)
7179             if defined $::RD_TRACE;
7180 0         0 $lastsep = "";
7181 0         0 $expectation->is(q{})->at($text);
7182              
7183              
7184 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DATE)//i)
  0 0       0  
7185             {
7186              
7187 0         0 $expectation->failed();
7188 0 0       0 Parse::RecDescent::_trace(q{<>},
7189             Parse::RecDescent::_tracefirst($text))
7190             if defined $::RD_TRACE;
7191              
7192 0         0 last;
7193             }
7194 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7195             . $& . q{])},
7196             Parse::RecDescent::_tracefirst($text))
7197             if defined $::RD_TRACE;
7198 0         0 push @item, $item{__PATTERN1__}=$&;
7199              
7200              
7201              
7202 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DATE/i]<<},
7203             Parse::RecDescent::_tracefirst($text),
7204             q{sysibm_function},
7205             $tracelevel)
7206             if defined $::RD_TRACE;
7207 0         0 $_matched = 1;
7208 0         0 last;
7209             }
7210              
7211              
7212 0   0     0 while (!$_matched && !$commit)
7213             {
7214              
7215 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DAY/i]},
7216             Parse::RecDescent::_tracefirst($_[1]),
7217             q{sysibm_function},
7218             $tracelevel)
7219             if defined $::RD_TRACE;
7220 0         0 my $thisprod = $thisrule->{"prods"}[13];
7221 0         0 $text = $_[1];
7222 0         0 my $_savetext;
7223 0         0 @item = (q{sysibm_function});
7224 0         0 %item = (__RULE__ => q{sysibm_function});
7225 0         0 my $repcount = 0;
7226              
7227              
7228 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DAY/i]}, Parse::RecDescent::_tracefirst($text),
7229             q{sysibm_function},
7230             $tracelevel)
7231             if defined $::RD_TRACE;
7232 0         0 $lastsep = "";
7233 0         0 $expectation->is(q{})->at($text);
7234              
7235              
7236 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DAY)//i)
  0 0       0  
7237             {
7238              
7239 0         0 $expectation->failed();
7240 0 0       0 Parse::RecDescent::_trace(q{<>},
7241             Parse::RecDescent::_tracefirst($text))
7242             if defined $::RD_TRACE;
7243              
7244 0         0 last;
7245             }
7246 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7247             . $& . q{])},
7248             Parse::RecDescent::_tracefirst($text))
7249             if defined $::RD_TRACE;
7250 0         0 push @item, $item{__PATTERN1__}=$&;
7251              
7252              
7253              
7254 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DAY/i]<<},
7255             Parse::RecDescent::_tracefirst($text),
7256             q{sysibm_function},
7257             $tracelevel)
7258             if defined $::RD_TRACE;
7259 0         0 $_matched = 1;
7260 0         0 last;
7261             }
7262              
7263              
7264 0   0     0 while (!$_matched && !$commit)
7265             {
7266              
7267 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DAYS/i]},
7268             Parse::RecDescent::_tracefirst($_[1]),
7269             q{sysibm_function},
7270             $tracelevel)
7271             if defined $::RD_TRACE;
7272 0         0 my $thisprod = $thisrule->{"prods"}[14];
7273 0         0 $text = $_[1];
7274 0         0 my $_savetext;
7275 0         0 @item = (q{sysibm_function});
7276 0         0 %item = (__RULE__ => q{sysibm_function});
7277 0         0 my $repcount = 0;
7278              
7279              
7280 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DAYS/i]}, Parse::RecDescent::_tracefirst($text),
7281             q{sysibm_function},
7282             $tracelevel)
7283             if defined $::RD_TRACE;
7284 0         0 $lastsep = "";
7285 0         0 $expectation->is(q{})->at($text);
7286              
7287              
7288 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DAYS)//i)
  0 0       0  
7289             {
7290              
7291 0         0 $expectation->failed();
7292 0 0       0 Parse::RecDescent::_trace(q{<>},
7293             Parse::RecDescent::_tracefirst($text))
7294             if defined $::RD_TRACE;
7295              
7296 0         0 last;
7297             }
7298 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7299             . $& . q{])},
7300             Parse::RecDescent::_tracefirst($text))
7301             if defined $::RD_TRACE;
7302 0         0 push @item, $item{__PATTERN1__}=$&;
7303              
7304              
7305              
7306 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DAYS/i]<<},
7307             Parse::RecDescent::_tracefirst($text),
7308             q{sysibm_function},
7309             $tracelevel)
7310             if defined $::RD_TRACE;
7311 0         0 $_matched = 1;
7312 0         0 last;
7313             }
7314              
7315              
7316 0   0     0 while (!$_matched && !$commit)
7317             {
7318              
7319 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DBCLOB/i]},
7320             Parse::RecDescent::_tracefirst($_[1]),
7321             q{sysibm_function},
7322             $tracelevel)
7323             if defined $::RD_TRACE;
7324 0         0 my $thisprod = $thisrule->{"prods"}[15];
7325 0         0 $text = $_[1];
7326 0         0 my $_savetext;
7327 0         0 @item = (q{sysibm_function});
7328 0         0 %item = (__RULE__ => q{sysibm_function});
7329 0         0 my $repcount = 0;
7330              
7331              
7332 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DBCLOB/i]}, Parse::RecDescent::_tracefirst($text),
7333             q{sysibm_function},
7334             $tracelevel)
7335             if defined $::RD_TRACE;
7336 0         0 $lastsep = "";
7337 0         0 $expectation->is(q{})->at($text);
7338              
7339              
7340 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DBCLOB)//i)
  0 0       0  
7341             {
7342              
7343 0         0 $expectation->failed();
7344 0 0       0 Parse::RecDescent::_trace(q{<>},
7345             Parse::RecDescent::_tracefirst($text))
7346             if defined $::RD_TRACE;
7347              
7348 0         0 last;
7349             }
7350 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7351             . $& . q{])},
7352             Parse::RecDescent::_tracefirst($text))
7353             if defined $::RD_TRACE;
7354 0         0 push @item, $item{__PATTERN1__}=$&;
7355              
7356              
7357              
7358 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DBCLOB/i]<<},
7359             Parse::RecDescent::_tracefirst($text),
7360             q{sysibm_function},
7361             $tracelevel)
7362             if defined $::RD_TRACE;
7363 0         0 $_matched = 1;
7364 0         0 last;
7365             }
7366              
7367              
7368 0   0     0 while (!$_matched && !$commit)
7369             {
7370              
7371 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DECIMAL/i, or /DEC/i]},
7372             Parse::RecDescent::_tracefirst($_[1]),
7373             q{sysibm_function},
7374             $tracelevel)
7375             if defined $::RD_TRACE;
7376 0         0 my $thisprod = $thisrule->{"prods"}[16];
7377 0         0 $text = $_[1];
7378 0         0 my $_savetext;
7379 0         0 @item = (q{sysibm_function});
7380 0         0 %item = (__RULE__ => q{sysibm_function});
7381 0         0 my $repcount = 0;
7382              
7383              
7384 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_17_of_rule_sysibm_function]},
7385             Parse::RecDescent::_tracefirst($text),
7386             q{sysibm_function},
7387             $tracelevel)
7388             if defined $::RD_TRACE;
7389 1     1   14 if (1) { no strict qw{refs};
  1         4  
  1         3150  
  0         0  
7390 0         0 $expectation->is(q{})->at($text);
7391 0 0   0   0 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 })))
  0         0  
7392             {
7393              
7394 0 0       0 Parse::RecDescent::_trace(q{<>},
7395             Parse::RecDescent::_tracefirst($text),
7396             q{sysibm_function},
7397             $tracelevel)
7398             if defined $::RD_TRACE;
7399 0         0 $expectation->failed();
7400 0         0 last;
7401             }
7402 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_17_of_rule_sysibm_function]<< (return value: [}
7403             . $_tok . q{]},
7404              
7405             Parse::RecDescent::_tracefirst($text),
7406             q{sysibm_function},
7407             $tracelevel)
7408             if defined $::RD_TRACE;
7409 0         0 $item{q{_alternation_1_of_production_17_of_rule_sysibm_function}} = $_tok;
7410 0         0 push @item, $_tok;
7411              
7412             }
7413              
7414              
7415 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DECIMAL/i, or /DEC/i]<<},
7416             Parse::RecDescent::_tracefirst($text),
7417             q{sysibm_function},
7418             $tracelevel)
7419             if defined $::RD_TRACE;
7420 0         0 $_matched = 1;
7421 0         0 last;
7422             }
7423              
7424              
7425 0   0     0 while (!$_matched && !$commit)
7426             {
7427              
7428 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DECRYPT_BIN/i]},
7429             Parse::RecDescent::_tracefirst($_[1]),
7430             q{sysibm_function},
7431             $tracelevel)
7432             if defined $::RD_TRACE;
7433 0         0 my $thisprod = $thisrule->{"prods"}[17];
7434 0         0 $text = $_[1];
7435 0         0 my $_savetext;
7436 0         0 @item = (q{sysibm_function});
7437 0         0 %item = (__RULE__ => q{sysibm_function});
7438 0         0 my $repcount = 0;
7439              
7440              
7441 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DECRYPT_BIN/i]}, Parse::RecDescent::_tracefirst($text),
7442             q{sysibm_function},
7443             $tracelevel)
7444             if defined $::RD_TRACE;
7445 0         0 $lastsep = "";
7446 0         0 $expectation->is(q{})->at($text);
7447              
7448              
7449 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DECRYPT_BIN)//i)
  0 0       0  
7450             {
7451              
7452 0         0 $expectation->failed();
7453 0 0       0 Parse::RecDescent::_trace(q{<>},
7454             Parse::RecDescent::_tracefirst($text))
7455             if defined $::RD_TRACE;
7456              
7457 0         0 last;
7458             }
7459 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7460             . $& . q{])},
7461             Parse::RecDescent::_tracefirst($text))
7462             if defined $::RD_TRACE;
7463 0         0 push @item, $item{__PATTERN1__}=$&;
7464              
7465              
7466              
7467 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DECRYPT_BIN/i]<<},
7468             Parse::RecDescent::_tracefirst($text),
7469             q{sysibm_function},
7470             $tracelevel)
7471             if defined $::RD_TRACE;
7472 0         0 $_matched = 1;
7473 0         0 last;
7474             }
7475              
7476              
7477 0   0     0 while (!$_matched && !$commit)
7478             {
7479              
7480 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DECRYPT_CHAR/i]},
7481             Parse::RecDescent::_tracefirst($_[1]),
7482             q{sysibm_function},
7483             $tracelevel)
7484             if defined $::RD_TRACE;
7485 0         0 my $thisprod = $thisrule->{"prods"}[18];
7486 0         0 $text = $_[1];
7487 0         0 my $_savetext;
7488 0         0 @item = (q{sysibm_function});
7489 0         0 %item = (__RULE__ => q{sysibm_function});
7490 0         0 my $repcount = 0;
7491              
7492              
7493 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DECRYPT_CHAR/i]}, Parse::RecDescent::_tracefirst($text),
7494             q{sysibm_function},
7495             $tracelevel)
7496             if defined $::RD_TRACE;
7497 0         0 $lastsep = "";
7498 0         0 $expectation->is(q{})->at($text);
7499              
7500              
7501 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DECRYPT_CHAR)//i)
  0 0       0  
7502             {
7503              
7504 0         0 $expectation->failed();
7505 0 0       0 Parse::RecDescent::_trace(q{<>},
7506             Parse::RecDescent::_tracefirst($text))
7507             if defined $::RD_TRACE;
7508              
7509 0         0 last;
7510             }
7511 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7512             . $& . q{])},
7513             Parse::RecDescent::_tracefirst($text))
7514             if defined $::RD_TRACE;
7515 0         0 push @item, $item{__PATTERN1__}=$&;
7516              
7517              
7518              
7519 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DECRYPT_CHAR/i]<<},
7520             Parse::RecDescent::_tracefirst($text),
7521             q{sysibm_function},
7522             $tracelevel)
7523             if defined $::RD_TRACE;
7524 0         0 $_matched = 1;
7525 0         0 last;
7526             }
7527              
7528              
7529 0   0     0 while (!$_matched && !$commit)
7530             {
7531              
7532 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DEREF/i]},
7533             Parse::RecDescent::_tracefirst($_[1]),
7534             q{sysibm_function},
7535             $tracelevel)
7536             if defined $::RD_TRACE;
7537 0         0 my $thisprod = $thisrule->{"prods"}[19];
7538 0         0 $text = $_[1];
7539 0         0 my $_savetext;
7540 0         0 @item = (q{sysibm_function});
7541 0         0 %item = (__RULE__ => q{sysibm_function});
7542 0         0 my $repcount = 0;
7543              
7544              
7545 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DEREF/i]}, Parse::RecDescent::_tracefirst($text),
7546             q{sysibm_function},
7547             $tracelevel)
7548             if defined $::RD_TRACE;
7549 0         0 $lastsep = "";
7550 0         0 $expectation->is(q{})->at($text);
7551              
7552              
7553 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DEREF)//i)
  0 0       0  
7554             {
7555              
7556 0         0 $expectation->failed();
7557 0 0       0 Parse::RecDescent::_trace(q{<>},
7558             Parse::RecDescent::_tracefirst($text))
7559             if defined $::RD_TRACE;
7560              
7561 0         0 last;
7562             }
7563 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7564             . $& . q{])},
7565             Parse::RecDescent::_tracefirst($text))
7566             if defined $::RD_TRACE;
7567 0         0 push @item, $item{__PATTERN1__}=$&;
7568              
7569              
7570              
7571 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DEREF/i]<<},
7572             Parse::RecDescent::_tracefirst($text),
7573             q{sysibm_function},
7574             $tracelevel)
7575             if defined $::RD_TRACE;
7576 0         0 $_matched = 1;
7577 0         0 last;
7578             }
7579              
7580              
7581 0   0     0 while (!$_matched && !$commit)
7582             {
7583              
7584 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DIGITS/i]},
7585             Parse::RecDescent::_tracefirst($_[1]),
7586             q{sysibm_function},
7587             $tracelevel)
7588             if defined $::RD_TRACE;
7589 0         0 my $thisprod = $thisrule->{"prods"}[20];
7590 0         0 $text = $_[1];
7591 0         0 my $_savetext;
7592 0         0 @item = (q{sysibm_function});
7593 0         0 %item = (__RULE__ => q{sysibm_function});
7594 0         0 my $repcount = 0;
7595              
7596              
7597 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DIGITS/i]}, Parse::RecDescent::_tracefirst($text),
7598             q{sysibm_function},
7599             $tracelevel)
7600             if defined $::RD_TRACE;
7601 0         0 $lastsep = "";
7602 0         0 $expectation->is(q{})->at($text);
7603              
7604              
7605 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DIGITS)//i)
  0 0       0  
7606             {
7607              
7608 0         0 $expectation->failed();
7609 0 0       0 Parse::RecDescent::_trace(q{<>},
7610             Parse::RecDescent::_tracefirst($text))
7611             if defined $::RD_TRACE;
7612              
7613 0         0 last;
7614             }
7615 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7616             . $& . q{])},
7617             Parse::RecDescent::_tracefirst($text))
7618             if defined $::RD_TRACE;
7619 0         0 push @item, $item{__PATTERN1__}=$&;
7620              
7621              
7622              
7623 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DIGITS/i]<<},
7624             Parse::RecDescent::_tracefirst($text),
7625             q{sysibm_function},
7626             $tracelevel)
7627             if defined $::RD_TRACE;
7628 0         0 $_matched = 1;
7629 0         0 last;
7630             }
7631              
7632              
7633 0   0     0 while (!$_matched && !$commit)
7634             {
7635              
7636 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DLCOMMENT/i]},
7637             Parse::RecDescent::_tracefirst($_[1]),
7638             q{sysibm_function},
7639             $tracelevel)
7640             if defined $::RD_TRACE;
7641 0         0 my $thisprod = $thisrule->{"prods"}[21];
7642 0         0 $text = $_[1];
7643 0         0 my $_savetext;
7644 0         0 @item = (q{sysibm_function});
7645 0         0 %item = (__RULE__ => q{sysibm_function});
7646 0         0 my $repcount = 0;
7647              
7648              
7649 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DLCOMMENT/i]}, Parse::RecDescent::_tracefirst($text),
7650             q{sysibm_function},
7651             $tracelevel)
7652             if defined $::RD_TRACE;
7653 0         0 $lastsep = "";
7654 0         0 $expectation->is(q{})->at($text);
7655              
7656              
7657 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DLCOMMENT)//i)
  0 0       0  
7658             {
7659              
7660 0         0 $expectation->failed();
7661 0 0       0 Parse::RecDescent::_trace(q{<>},
7662             Parse::RecDescent::_tracefirst($text))
7663             if defined $::RD_TRACE;
7664              
7665 0         0 last;
7666             }
7667 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7668             . $& . q{])},
7669             Parse::RecDescent::_tracefirst($text))
7670             if defined $::RD_TRACE;
7671 0         0 push @item, $item{__PATTERN1__}=$&;
7672              
7673              
7674              
7675 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DLCOMMENT/i]<<},
7676             Parse::RecDescent::_tracefirst($text),
7677             q{sysibm_function},
7678             $tracelevel)
7679             if defined $::RD_TRACE;
7680 0         0 $_matched = 1;
7681 0         0 last;
7682             }
7683              
7684              
7685 0   0     0 while (!$_matched && !$commit)
7686             {
7687              
7688 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DLLINKTYPE/i]},
7689             Parse::RecDescent::_tracefirst($_[1]),
7690             q{sysibm_function},
7691             $tracelevel)
7692             if defined $::RD_TRACE;
7693 0         0 my $thisprod = $thisrule->{"prods"}[22];
7694 0         0 $text = $_[1];
7695 0         0 my $_savetext;
7696 0         0 @item = (q{sysibm_function});
7697 0         0 %item = (__RULE__ => q{sysibm_function});
7698 0         0 my $repcount = 0;
7699              
7700              
7701 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DLLINKTYPE/i]}, Parse::RecDescent::_tracefirst($text),
7702             q{sysibm_function},
7703             $tracelevel)
7704             if defined $::RD_TRACE;
7705 0         0 $lastsep = "";
7706 0         0 $expectation->is(q{})->at($text);
7707              
7708              
7709 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DLLINKTYPE)//i)
  0 0       0  
7710             {
7711              
7712 0         0 $expectation->failed();
7713 0 0       0 Parse::RecDescent::_trace(q{<>},
7714             Parse::RecDescent::_tracefirst($text))
7715             if defined $::RD_TRACE;
7716              
7717 0         0 last;
7718             }
7719 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7720             . $& . q{])},
7721             Parse::RecDescent::_tracefirst($text))
7722             if defined $::RD_TRACE;
7723 0         0 push @item, $item{__PATTERN1__}=$&;
7724              
7725              
7726              
7727 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DLLINKTYPE/i]<<},
7728             Parse::RecDescent::_tracefirst($text),
7729             q{sysibm_function},
7730             $tracelevel)
7731             if defined $::RD_TRACE;
7732 0         0 $_matched = 1;
7733 0         0 last;
7734             }
7735              
7736              
7737 0   0     0 while (!$_matched && !$commit)
7738             {
7739              
7740 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DLURLCOMPLETE/i]},
7741             Parse::RecDescent::_tracefirst($_[1]),
7742             q{sysibm_function},
7743             $tracelevel)
7744             if defined $::RD_TRACE;
7745 0         0 my $thisprod = $thisrule->{"prods"}[23];
7746 0         0 $text = $_[1];
7747 0         0 my $_savetext;
7748 0         0 @item = (q{sysibm_function});
7749 0         0 %item = (__RULE__ => q{sysibm_function});
7750 0         0 my $repcount = 0;
7751              
7752              
7753 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DLURLCOMPLETE/i]}, Parse::RecDescent::_tracefirst($text),
7754             q{sysibm_function},
7755             $tracelevel)
7756             if defined $::RD_TRACE;
7757 0         0 $lastsep = "";
7758 0         0 $expectation->is(q{})->at($text);
7759              
7760              
7761 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DLURLCOMPLETE)//i)
  0 0       0  
7762             {
7763              
7764 0         0 $expectation->failed();
7765 0 0       0 Parse::RecDescent::_trace(q{<>},
7766             Parse::RecDescent::_tracefirst($text))
7767             if defined $::RD_TRACE;
7768              
7769 0         0 last;
7770             }
7771 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7772             . $& . q{])},
7773             Parse::RecDescent::_tracefirst($text))
7774             if defined $::RD_TRACE;
7775 0         0 push @item, $item{__PATTERN1__}=$&;
7776              
7777              
7778              
7779 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DLURLCOMPLETE/i]<<},
7780             Parse::RecDescent::_tracefirst($text),
7781             q{sysibm_function},
7782             $tracelevel)
7783             if defined $::RD_TRACE;
7784 0         0 $_matched = 1;
7785 0         0 last;
7786             }
7787              
7788              
7789 0   0     0 while (!$_matched && !$commit)
7790             {
7791              
7792 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DLURLPATH/i]},
7793             Parse::RecDescent::_tracefirst($_[1]),
7794             q{sysibm_function},
7795             $tracelevel)
7796             if defined $::RD_TRACE;
7797 0         0 my $thisprod = $thisrule->{"prods"}[24];
7798 0         0 $text = $_[1];
7799 0         0 my $_savetext;
7800 0         0 @item = (q{sysibm_function});
7801 0         0 %item = (__RULE__ => q{sysibm_function});
7802 0         0 my $repcount = 0;
7803              
7804              
7805 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DLURLPATH/i]}, Parse::RecDescent::_tracefirst($text),
7806             q{sysibm_function},
7807             $tracelevel)
7808             if defined $::RD_TRACE;
7809 0         0 $lastsep = "";
7810 0         0 $expectation->is(q{})->at($text);
7811              
7812              
7813 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DLURLPATH)//i)
  0 0       0  
7814             {
7815              
7816 0         0 $expectation->failed();
7817 0 0       0 Parse::RecDescent::_trace(q{<>},
7818             Parse::RecDescent::_tracefirst($text))
7819             if defined $::RD_TRACE;
7820              
7821 0         0 last;
7822             }
7823 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7824             . $& . q{])},
7825             Parse::RecDescent::_tracefirst($text))
7826             if defined $::RD_TRACE;
7827 0         0 push @item, $item{__PATTERN1__}=$&;
7828              
7829              
7830              
7831 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DLURLPATH/i]<<},
7832             Parse::RecDescent::_tracefirst($text),
7833             q{sysibm_function},
7834             $tracelevel)
7835             if defined $::RD_TRACE;
7836 0         0 $_matched = 1;
7837 0         0 last;
7838             }
7839              
7840              
7841 0   0     0 while (!$_matched && !$commit)
7842             {
7843              
7844 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DLURLPATHONLY/i]},
7845             Parse::RecDescent::_tracefirst($_[1]),
7846             q{sysibm_function},
7847             $tracelevel)
7848             if defined $::RD_TRACE;
7849 0         0 my $thisprod = $thisrule->{"prods"}[25];
7850 0         0 $text = $_[1];
7851 0         0 my $_savetext;
7852 0         0 @item = (q{sysibm_function});
7853 0         0 %item = (__RULE__ => q{sysibm_function});
7854 0         0 my $repcount = 0;
7855              
7856              
7857 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DLURLPATHONLY/i]}, Parse::RecDescent::_tracefirst($text),
7858             q{sysibm_function},
7859             $tracelevel)
7860             if defined $::RD_TRACE;
7861 0         0 $lastsep = "";
7862 0         0 $expectation->is(q{})->at($text);
7863              
7864              
7865 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DLURLPATHONLY)//i)
  0 0       0  
7866             {
7867              
7868 0         0 $expectation->failed();
7869 0 0       0 Parse::RecDescent::_trace(q{<>},
7870             Parse::RecDescent::_tracefirst($text))
7871             if defined $::RD_TRACE;
7872              
7873 0         0 last;
7874             }
7875 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7876             . $& . q{])},
7877             Parse::RecDescent::_tracefirst($text))
7878             if defined $::RD_TRACE;
7879 0         0 push @item, $item{__PATTERN1__}=$&;
7880              
7881              
7882              
7883 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DLURLPATHONLY/i]<<},
7884             Parse::RecDescent::_tracefirst($text),
7885             q{sysibm_function},
7886             $tracelevel)
7887             if defined $::RD_TRACE;
7888 0         0 $_matched = 1;
7889 0         0 last;
7890             }
7891              
7892              
7893 0   0     0 while (!$_matched && !$commit)
7894             {
7895              
7896 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DLURLSCHEME/i]},
7897             Parse::RecDescent::_tracefirst($_[1]),
7898             q{sysibm_function},
7899             $tracelevel)
7900             if defined $::RD_TRACE;
7901 0         0 my $thisprod = $thisrule->{"prods"}[26];
7902 0         0 $text = $_[1];
7903 0         0 my $_savetext;
7904 0         0 @item = (q{sysibm_function});
7905 0         0 %item = (__RULE__ => q{sysibm_function});
7906 0         0 my $repcount = 0;
7907              
7908              
7909 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DLURLSCHEME/i]}, Parse::RecDescent::_tracefirst($text),
7910             q{sysibm_function},
7911             $tracelevel)
7912             if defined $::RD_TRACE;
7913 0         0 $lastsep = "";
7914 0         0 $expectation->is(q{})->at($text);
7915              
7916              
7917 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DLURLSCHEME)//i)
  0 0       0  
7918             {
7919              
7920 0         0 $expectation->failed();
7921 0 0       0 Parse::RecDescent::_trace(q{<>},
7922             Parse::RecDescent::_tracefirst($text))
7923             if defined $::RD_TRACE;
7924              
7925 0         0 last;
7926             }
7927 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7928             . $& . q{])},
7929             Parse::RecDescent::_tracefirst($text))
7930             if defined $::RD_TRACE;
7931 0         0 push @item, $item{__PATTERN1__}=$&;
7932              
7933              
7934              
7935 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DLURLSCHEME/i]<<},
7936             Parse::RecDescent::_tracefirst($text),
7937             q{sysibm_function},
7938             $tracelevel)
7939             if defined $::RD_TRACE;
7940 0         0 $_matched = 1;
7941 0         0 last;
7942             }
7943              
7944              
7945 0   0     0 while (!$_matched && !$commit)
7946             {
7947              
7948 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DLURLSERVER/i]},
7949             Parse::RecDescent::_tracefirst($_[1]),
7950             q{sysibm_function},
7951             $tracelevel)
7952             if defined $::RD_TRACE;
7953 0         0 my $thisprod = $thisrule->{"prods"}[27];
7954 0         0 $text = $_[1];
7955 0         0 my $_savetext;
7956 0         0 @item = (q{sysibm_function});
7957 0         0 %item = (__RULE__ => q{sysibm_function});
7958 0         0 my $repcount = 0;
7959              
7960              
7961 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DLURLSERVER/i]}, Parse::RecDescent::_tracefirst($text),
7962             q{sysibm_function},
7963             $tracelevel)
7964             if defined $::RD_TRACE;
7965 0         0 $lastsep = "";
7966 0         0 $expectation->is(q{})->at($text);
7967              
7968              
7969 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DLURLSERVER)//i)
  0 0       0  
7970             {
7971              
7972 0         0 $expectation->failed();
7973 0 0       0 Parse::RecDescent::_trace(q{<>},
7974             Parse::RecDescent::_tracefirst($text))
7975             if defined $::RD_TRACE;
7976              
7977 0         0 last;
7978             }
7979 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7980             . $& . q{])},
7981             Parse::RecDescent::_tracefirst($text))
7982             if defined $::RD_TRACE;
7983 0         0 push @item, $item{__PATTERN1__}=$&;
7984              
7985              
7986              
7987 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DLURLSERVER/i]<<},
7988             Parse::RecDescent::_tracefirst($text),
7989             q{sysibm_function},
7990             $tracelevel)
7991             if defined $::RD_TRACE;
7992 0         0 $_matched = 1;
7993 0         0 last;
7994             }
7995              
7996              
7997 0   0     0 while (!$_matched && !$commit)
7998             {
7999              
8000 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DLVALUE/i]},
8001             Parse::RecDescent::_tracefirst($_[1]),
8002             q{sysibm_function},
8003             $tracelevel)
8004             if defined $::RD_TRACE;
8005 0         0 my $thisprod = $thisrule->{"prods"}[28];
8006 0         0 $text = $_[1];
8007 0         0 my $_savetext;
8008 0         0 @item = (q{sysibm_function});
8009 0         0 %item = (__RULE__ => q{sysibm_function});
8010 0         0 my $repcount = 0;
8011              
8012              
8013 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DLVALUE/i]}, Parse::RecDescent::_tracefirst($text),
8014             q{sysibm_function},
8015             $tracelevel)
8016             if defined $::RD_TRACE;
8017 0         0 $lastsep = "";
8018 0         0 $expectation->is(q{})->at($text);
8019              
8020              
8021 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DLVALUE)//i)
  0 0       0  
8022             {
8023              
8024 0         0 $expectation->failed();
8025 0 0       0 Parse::RecDescent::_trace(q{<>},
8026             Parse::RecDescent::_tracefirst($text))
8027             if defined $::RD_TRACE;
8028              
8029 0         0 last;
8030             }
8031 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8032             . $& . q{])},
8033             Parse::RecDescent::_tracefirst($text))
8034             if defined $::RD_TRACE;
8035 0         0 push @item, $item{__PATTERN1__}=$&;
8036              
8037              
8038              
8039 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DLVALUE/i]<<},
8040             Parse::RecDescent::_tracefirst($text),
8041             q{sysibm_function},
8042             $tracelevel)
8043             if defined $::RD_TRACE;
8044 0         0 $_matched = 1;
8045 0         0 last;
8046             }
8047              
8048              
8049 0   0     0 while (!$_matched && !$commit)
8050             {
8051              
8052 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DOUBLE/i, or /DOUBLE_PRECISION/i]},
8053             Parse::RecDescent::_tracefirst($_[1]),
8054             q{sysibm_function},
8055             $tracelevel)
8056             if defined $::RD_TRACE;
8057 0         0 my $thisprod = $thisrule->{"prods"}[29];
8058 0         0 $text = $_[1];
8059 0         0 my $_savetext;
8060 0         0 @item = (q{sysibm_function});
8061 0         0 %item = (__RULE__ => q{sysibm_function});
8062 0         0 my $repcount = 0;
8063              
8064              
8065 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_30_of_rule_sysibm_function]},
8066             Parse::RecDescent::_tracefirst($text),
8067             q{sysibm_function},
8068             $tracelevel)
8069             if defined $::RD_TRACE;
8070 1     1   14 if (1) { no strict qw{refs};
  1         3  
  1         2910  
  0         0  
8071 0         0 $expectation->is(q{})->at($text);
8072 0 0   0   0 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 })))
  0         0  
8073             {
8074              
8075 0 0       0 Parse::RecDescent::_trace(q{<>},
8076             Parse::RecDescent::_tracefirst($text),
8077             q{sysibm_function},
8078             $tracelevel)
8079             if defined $::RD_TRACE;
8080 0         0 $expectation->failed();
8081 0         0 last;
8082             }
8083 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_30_of_rule_sysibm_function]<< (return value: [}
8084             . $_tok . q{]},
8085              
8086             Parse::RecDescent::_tracefirst($text),
8087             q{sysibm_function},
8088             $tracelevel)
8089             if defined $::RD_TRACE;
8090 0         0 $item{q{_alternation_1_of_production_30_of_rule_sysibm_function}} = $_tok;
8091 0         0 push @item, $_tok;
8092              
8093             }
8094              
8095              
8096 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DOUBLE/i, or /DOUBLE_PRECISION/i]<<},
8097             Parse::RecDescent::_tracefirst($text),
8098             q{sysibm_function},
8099             $tracelevel)
8100             if defined $::RD_TRACE;
8101 0         0 $_matched = 1;
8102 0         0 last;
8103             }
8104              
8105              
8106 0   0     0 while (!$_matched && !$commit)
8107             {
8108              
8109 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ENCRYPT/i]},
8110             Parse::RecDescent::_tracefirst($_[1]),
8111             q{sysibm_function},
8112             $tracelevel)
8113             if defined $::RD_TRACE;
8114 0         0 my $thisprod = $thisrule->{"prods"}[30];
8115 0         0 $text = $_[1];
8116 0         0 my $_savetext;
8117 0         0 @item = (q{sysibm_function});
8118 0         0 %item = (__RULE__ => q{sysibm_function});
8119 0         0 my $repcount = 0;
8120              
8121              
8122 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ENCRYPT/i]}, Parse::RecDescent::_tracefirst($text),
8123             q{sysibm_function},
8124             $tracelevel)
8125             if defined $::RD_TRACE;
8126 0         0 $lastsep = "";
8127 0         0 $expectation->is(q{})->at($text);
8128              
8129              
8130 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ENCRYPT)//i)
  0 0       0  
8131             {
8132              
8133 0         0 $expectation->failed();
8134 0 0       0 Parse::RecDescent::_trace(q{<>},
8135             Parse::RecDescent::_tracefirst($text))
8136             if defined $::RD_TRACE;
8137              
8138 0         0 last;
8139             }
8140 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8141             . $& . q{])},
8142             Parse::RecDescent::_tracefirst($text))
8143             if defined $::RD_TRACE;
8144 0         0 push @item, $item{__PATTERN1__}=$&;
8145              
8146              
8147              
8148 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ENCRYPT/i]<<},
8149             Parse::RecDescent::_tracefirst($text),
8150             q{sysibm_function},
8151             $tracelevel)
8152             if defined $::RD_TRACE;
8153 0         0 $_matched = 1;
8154 0         0 last;
8155             }
8156              
8157              
8158 0   0     0 while (!$_matched && !$commit)
8159             {
8160              
8161 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/EVENT_MON_STATE/i]},
8162             Parse::RecDescent::_tracefirst($_[1]),
8163             q{sysibm_function},
8164             $tracelevel)
8165             if defined $::RD_TRACE;
8166 0         0 my $thisprod = $thisrule->{"prods"}[31];
8167 0         0 $text = $_[1];
8168 0         0 my $_savetext;
8169 0         0 @item = (q{sysibm_function});
8170 0         0 %item = (__RULE__ => q{sysibm_function});
8171 0         0 my $repcount = 0;
8172              
8173              
8174 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/EVENT_MON_STATE/i]}, Parse::RecDescent::_tracefirst($text),
8175             q{sysibm_function},
8176             $tracelevel)
8177             if defined $::RD_TRACE;
8178 0         0 $lastsep = "";
8179 0         0 $expectation->is(q{})->at($text);
8180              
8181              
8182 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:EVENT_MON_STATE)//i)
  0 0       0  
8183             {
8184              
8185 0         0 $expectation->failed();
8186 0 0       0 Parse::RecDescent::_trace(q{<>},
8187             Parse::RecDescent::_tracefirst($text))
8188             if defined $::RD_TRACE;
8189              
8190 0         0 last;
8191             }
8192 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8193             . $& . q{])},
8194             Parse::RecDescent::_tracefirst($text))
8195             if defined $::RD_TRACE;
8196 0         0 push @item, $item{__PATTERN1__}=$&;
8197              
8198              
8199              
8200 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/EVENT_MON_STATE/i]<<},
8201             Parse::RecDescent::_tracefirst($text),
8202             q{sysibm_function},
8203             $tracelevel)
8204             if defined $::RD_TRACE;
8205 0         0 $_matched = 1;
8206 0         0 last;
8207             }
8208              
8209              
8210 0   0     0 while (!$_matched && !$commit)
8211             {
8212              
8213 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/FLOAT/i]},
8214             Parse::RecDescent::_tracefirst($_[1]),
8215             q{sysibm_function},
8216             $tracelevel)
8217             if defined $::RD_TRACE;
8218 0         0 my $thisprod = $thisrule->{"prods"}[32];
8219 0         0 $text = $_[1];
8220 0         0 my $_savetext;
8221 0         0 @item = (q{sysibm_function});
8222 0         0 %item = (__RULE__ => q{sysibm_function});
8223 0         0 my $repcount = 0;
8224              
8225              
8226 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/FLOAT/i]}, Parse::RecDescent::_tracefirst($text),
8227             q{sysibm_function},
8228             $tracelevel)
8229             if defined $::RD_TRACE;
8230 0         0 $lastsep = "";
8231 0         0 $expectation->is(q{})->at($text);
8232              
8233              
8234 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:FLOAT)//i)
  0 0       0  
8235             {
8236              
8237 0         0 $expectation->failed();
8238 0 0       0 Parse::RecDescent::_trace(q{<>},
8239             Parse::RecDescent::_tracefirst($text))
8240             if defined $::RD_TRACE;
8241              
8242 0         0 last;
8243             }
8244 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8245             . $& . q{])},
8246             Parse::RecDescent::_tracefirst($text))
8247             if defined $::RD_TRACE;
8248 0         0 push @item, $item{__PATTERN1__}=$&;
8249              
8250              
8251              
8252 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/FLOAT/i]<<},
8253             Parse::RecDescent::_tracefirst($text),
8254             q{sysibm_function},
8255             $tracelevel)
8256             if defined $::RD_TRACE;
8257 0         0 $_matched = 1;
8258 0         0 last;
8259             }
8260              
8261              
8262 0   0     0 while (!$_matched && !$commit)
8263             {
8264              
8265 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/GETHINT/i]},
8266             Parse::RecDescent::_tracefirst($_[1]),
8267             q{sysibm_function},
8268             $tracelevel)
8269             if defined $::RD_TRACE;
8270 0         0 my $thisprod = $thisrule->{"prods"}[33];
8271 0         0 $text = $_[1];
8272 0         0 my $_savetext;
8273 0         0 @item = (q{sysibm_function});
8274 0         0 %item = (__RULE__ => q{sysibm_function});
8275 0         0 my $repcount = 0;
8276              
8277              
8278 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/GETHINT/i]}, Parse::RecDescent::_tracefirst($text),
8279             q{sysibm_function},
8280             $tracelevel)
8281             if defined $::RD_TRACE;
8282 0         0 $lastsep = "";
8283 0         0 $expectation->is(q{})->at($text);
8284              
8285              
8286 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:GETHINT)//i)
  0 0       0  
8287             {
8288              
8289 0         0 $expectation->failed();
8290 0 0       0 Parse::RecDescent::_trace(q{<>},
8291             Parse::RecDescent::_tracefirst($text))
8292             if defined $::RD_TRACE;
8293              
8294 0         0 last;
8295             }
8296 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8297             . $& . q{])},
8298             Parse::RecDescent::_tracefirst($text))
8299             if defined $::RD_TRACE;
8300 0         0 push @item, $item{__PATTERN1__}=$&;
8301              
8302              
8303              
8304 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/GETHINT/i]<<},
8305             Parse::RecDescent::_tracefirst($text),
8306             q{sysibm_function},
8307             $tracelevel)
8308             if defined $::RD_TRACE;
8309 0         0 $_matched = 1;
8310 0         0 last;
8311             }
8312              
8313              
8314 0   0     0 while (!$_matched && !$commit)
8315             {
8316              
8317 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/GENERATE_UNIQUE/i]},
8318             Parse::RecDescent::_tracefirst($_[1]),
8319             q{sysibm_function},
8320             $tracelevel)
8321             if defined $::RD_TRACE;
8322 0         0 my $thisprod = $thisrule->{"prods"}[34];
8323 0         0 $text = $_[1];
8324 0         0 my $_savetext;
8325 0         0 @item = (q{sysibm_function});
8326 0         0 %item = (__RULE__ => q{sysibm_function});
8327 0         0 my $repcount = 0;
8328              
8329              
8330 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/GENERATE_UNIQUE/i]}, Parse::RecDescent::_tracefirst($text),
8331             q{sysibm_function},
8332             $tracelevel)
8333             if defined $::RD_TRACE;
8334 0         0 $lastsep = "";
8335 0         0 $expectation->is(q{})->at($text);
8336              
8337              
8338 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:GENERATE_UNIQUE)//i)
  0 0       0  
8339             {
8340              
8341 0         0 $expectation->failed();
8342 0 0       0 Parse::RecDescent::_trace(q{<>},
8343             Parse::RecDescent::_tracefirst($text))
8344             if defined $::RD_TRACE;
8345              
8346 0         0 last;
8347             }
8348 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8349             . $& . q{])},
8350             Parse::RecDescent::_tracefirst($text))
8351             if defined $::RD_TRACE;
8352 0         0 push @item, $item{__PATTERN1__}=$&;
8353              
8354              
8355              
8356 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/GENERATE_UNIQUE/i]<<},
8357             Parse::RecDescent::_tracefirst($text),
8358             q{sysibm_function},
8359             $tracelevel)
8360             if defined $::RD_TRACE;
8361 0         0 $_matched = 1;
8362 0         0 last;
8363             }
8364              
8365              
8366 0   0     0 while (!$_matched && !$commit)
8367             {
8368              
8369 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/GRAPHIC/i]},
8370             Parse::RecDescent::_tracefirst($_[1]),
8371             q{sysibm_function},
8372             $tracelevel)
8373             if defined $::RD_TRACE;
8374 0         0 my $thisprod = $thisrule->{"prods"}[35];
8375 0         0 $text = $_[1];
8376 0         0 my $_savetext;
8377 0         0 @item = (q{sysibm_function});
8378 0         0 %item = (__RULE__ => q{sysibm_function});
8379 0         0 my $repcount = 0;
8380              
8381              
8382 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/GRAPHIC/i]}, Parse::RecDescent::_tracefirst($text),
8383             q{sysibm_function},
8384             $tracelevel)
8385             if defined $::RD_TRACE;
8386 0         0 $lastsep = "";
8387 0         0 $expectation->is(q{})->at($text);
8388              
8389              
8390 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:GRAPHIC)//i)
  0 0       0  
8391             {
8392              
8393 0         0 $expectation->failed();
8394 0 0       0 Parse::RecDescent::_trace(q{<>},
8395             Parse::RecDescent::_tracefirst($text))
8396             if defined $::RD_TRACE;
8397              
8398 0         0 last;
8399             }
8400 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8401             . $& . q{])},
8402             Parse::RecDescent::_tracefirst($text))
8403             if defined $::RD_TRACE;
8404 0         0 push @item, $item{__PATTERN1__}=$&;
8405              
8406              
8407              
8408 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/GRAPHIC/i]<<},
8409             Parse::RecDescent::_tracefirst($text),
8410             q{sysibm_function},
8411             $tracelevel)
8412             if defined $::RD_TRACE;
8413 0         0 $_matched = 1;
8414 0         0 last;
8415             }
8416              
8417              
8418 0   0     0 while (!$_matched && !$commit)
8419             {
8420              
8421 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/GROUPING/i]},
8422             Parse::RecDescent::_tracefirst($_[1]),
8423             q{sysibm_function},
8424             $tracelevel)
8425             if defined $::RD_TRACE;
8426 0         0 my $thisprod = $thisrule->{"prods"}[36];
8427 0         0 $text = $_[1];
8428 0         0 my $_savetext;
8429 0         0 @item = (q{sysibm_function});
8430 0         0 %item = (__RULE__ => q{sysibm_function});
8431 0         0 my $repcount = 0;
8432              
8433              
8434 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/GROUPING/i]}, Parse::RecDescent::_tracefirst($text),
8435             q{sysibm_function},
8436             $tracelevel)
8437             if defined $::RD_TRACE;
8438 0         0 $lastsep = "";
8439 0         0 $expectation->is(q{})->at($text);
8440              
8441              
8442 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:GROUPING)//i)
  0 0       0  
8443             {
8444              
8445 0         0 $expectation->failed();
8446 0 0       0 Parse::RecDescent::_trace(q{<>},
8447             Parse::RecDescent::_tracefirst($text))
8448             if defined $::RD_TRACE;
8449              
8450 0         0 last;
8451             }
8452 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8453             . $& . q{])},
8454             Parse::RecDescent::_tracefirst($text))
8455             if defined $::RD_TRACE;
8456 0         0 push @item, $item{__PATTERN1__}=$&;
8457              
8458              
8459              
8460 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/GROUPING/i]<<},
8461             Parse::RecDescent::_tracefirst($text),
8462             q{sysibm_function},
8463             $tracelevel)
8464             if defined $::RD_TRACE;
8465 0         0 $_matched = 1;
8466 0         0 last;
8467             }
8468              
8469              
8470 0   0     0 while (!$_matched && !$commit)
8471             {
8472              
8473 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/HEX/i]},
8474             Parse::RecDescent::_tracefirst($_[1]),
8475             q{sysibm_function},
8476             $tracelevel)
8477             if defined $::RD_TRACE;
8478 0         0 my $thisprod = $thisrule->{"prods"}[37];
8479 0         0 $text = $_[1];
8480 0         0 my $_savetext;
8481 0         0 @item = (q{sysibm_function});
8482 0         0 %item = (__RULE__ => q{sysibm_function});
8483 0         0 my $repcount = 0;
8484              
8485              
8486 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/HEX/i]}, Parse::RecDescent::_tracefirst($text),
8487             q{sysibm_function},
8488             $tracelevel)
8489             if defined $::RD_TRACE;
8490 0         0 $lastsep = "";
8491 0         0 $expectation->is(q{})->at($text);
8492              
8493              
8494 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:HEX)//i)
  0 0       0  
8495             {
8496              
8497 0         0 $expectation->failed();
8498 0 0       0 Parse::RecDescent::_trace(q{<>},
8499             Parse::RecDescent::_tracefirst($text))
8500             if defined $::RD_TRACE;
8501              
8502 0         0 last;
8503             }
8504 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8505             . $& . q{])},
8506             Parse::RecDescent::_tracefirst($text))
8507             if defined $::RD_TRACE;
8508 0         0 push @item, $item{__PATTERN1__}=$&;
8509              
8510              
8511              
8512 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/HEX/i]<<},
8513             Parse::RecDescent::_tracefirst($text),
8514             q{sysibm_function},
8515             $tracelevel)
8516             if defined $::RD_TRACE;
8517 0         0 $_matched = 1;
8518 0         0 last;
8519             }
8520              
8521              
8522 0   0     0 while (!$_matched && !$commit)
8523             {
8524              
8525 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/HOUR/i]},
8526             Parse::RecDescent::_tracefirst($_[1]),
8527             q{sysibm_function},
8528             $tracelevel)
8529             if defined $::RD_TRACE;
8530 0         0 my $thisprod = $thisrule->{"prods"}[38];
8531 0         0 $text = $_[1];
8532 0         0 my $_savetext;
8533 0         0 @item = (q{sysibm_function});
8534 0         0 %item = (__RULE__ => q{sysibm_function});
8535 0         0 my $repcount = 0;
8536              
8537              
8538 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/HOUR/i]}, Parse::RecDescent::_tracefirst($text),
8539             q{sysibm_function},
8540             $tracelevel)
8541             if defined $::RD_TRACE;
8542 0         0 $lastsep = "";
8543 0         0 $expectation->is(q{})->at($text);
8544              
8545              
8546 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:HOUR)//i)
  0 0       0  
8547             {
8548              
8549 0         0 $expectation->failed();
8550 0 0       0 Parse::RecDescent::_trace(q{<>},
8551             Parse::RecDescent::_tracefirst($text))
8552             if defined $::RD_TRACE;
8553              
8554 0         0 last;
8555             }
8556 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8557             . $& . q{])},
8558             Parse::RecDescent::_tracefirst($text))
8559             if defined $::RD_TRACE;
8560 0         0 push @item, $item{__PATTERN1__}=$&;
8561              
8562              
8563              
8564 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/HOUR/i]<<},
8565             Parse::RecDescent::_tracefirst($text),
8566             q{sysibm_function},
8567             $tracelevel)
8568             if defined $::RD_TRACE;
8569 0         0 $_matched = 1;
8570 0         0 last;
8571             }
8572              
8573              
8574 0   0     0 while (!$_matched && !$commit)
8575             {
8576              
8577 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/IDENTITY_VAL_LOCAL/i]},
8578             Parse::RecDescent::_tracefirst($_[1]),
8579             q{sysibm_function},
8580             $tracelevel)
8581             if defined $::RD_TRACE;
8582 0         0 my $thisprod = $thisrule->{"prods"}[39];
8583 0         0 $text = $_[1];
8584 0         0 my $_savetext;
8585 0         0 @item = (q{sysibm_function});
8586 0         0 %item = (__RULE__ => q{sysibm_function});
8587 0         0 my $repcount = 0;
8588              
8589              
8590 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/IDENTITY_VAL_LOCAL/i]}, Parse::RecDescent::_tracefirst($text),
8591             q{sysibm_function},
8592             $tracelevel)
8593             if defined $::RD_TRACE;
8594 0         0 $lastsep = "";
8595 0         0 $expectation->is(q{})->at($text);
8596              
8597              
8598 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:IDENTITY_VAL_LOCAL)//i)
  0 0       0  
8599             {
8600              
8601 0         0 $expectation->failed();
8602 0 0       0 Parse::RecDescent::_trace(q{<>},
8603             Parse::RecDescent::_tracefirst($text))
8604             if defined $::RD_TRACE;
8605              
8606 0         0 last;
8607             }
8608 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8609             . $& . q{])},
8610             Parse::RecDescent::_tracefirst($text))
8611             if defined $::RD_TRACE;
8612 0         0 push @item, $item{__PATTERN1__}=$&;
8613              
8614              
8615              
8616 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/IDENTITY_VAL_LOCAL/i]<<},
8617             Parse::RecDescent::_tracefirst($text),
8618             q{sysibm_function},
8619             $tracelevel)
8620             if defined $::RD_TRACE;
8621 0         0 $_matched = 1;
8622 0         0 last;
8623             }
8624              
8625              
8626 0   0     0 while (!$_matched && !$commit)
8627             {
8628              
8629 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/INTEGER/i, or /INT/]},
8630             Parse::RecDescent::_tracefirst($_[1]),
8631             q{sysibm_function},
8632             $tracelevel)
8633             if defined $::RD_TRACE;
8634 0         0 my $thisprod = $thisrule->{"prods"}[40];
8635 0         0 $text = $_[1];
8636 0         0 my $_savetext;
8637 0         0 @item = (q{sysibm_function});
8638 0         0 %item = (__RULE__ => q{sysibm_function});
8639 0         0 my $repcount = 0;
8640              
8641              
8642 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_41_of_rule_sysibm_function]},
8643             Parse::RecDescent::_tracefirst($text),
8644             q{sysibm_function},
8645             $tracelevel)
8646             if defined $::RD_TRACE;
8647 1     1   11 if (1) { no strict qw{refs};
  1         3  
  1         348  
  0         0  
8648 0         0 $expectation->is(q{})->at($text);
8649 0 0   0   0 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 })))
  0         0  
8650             {
8651              
8652 0 0       0 Parse::RecDescent::_trace(q{<>},
8653             Parse::RecDescent::_tracefirst($text),
8654             q{sysibm_function},
8655             $tracelevel)
8656             if defined $::RD_TRACE;
8657 0         0 $expectation->failed();
8658 0         0 last;
8659             }
8660 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_41_of_rule_sysibm_function]<< (return value: [}
8661             . $_tok . q{]},
8662              
8663             Parse::RecDescent::_tracefirst($text),
8664             q{sysibm_function},
8665             $tracelevel)
8666             if defined $::RD_TRACE;
8667 0         0 $item{q{_alternation_1_of_production_41_of_rule_sysibm_function}} = $_tok;
8668 0         0 push @item, $_tok;
8669              
8670             }
8671              
8672              
8673 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/INTEGER/i, or /INT/]<<},
8674             Parse::RecDescent::_tracefirst($text),
8675             q{sysibm_function},
8676             $tracelevel)
8677             if defined $::RD_TRACE;
8678 0         0 $_matched = 1;
8679 0         0 last;
8680             }
8681              
8682              
8683 0   0     0 while (!$_matched && !$commit)
8684             {
8685              
8686 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LCASE/i, or /LOWER/]},
8687             Parse::RecDescent::_tracefirst($_[1]),
8688             q{sysibm_function},
8689             $tracelevel)
8690             if defined $::RD_TRACE;
8691 0         0 my $thisprod = $thisrule->{"prods"}[41];
8692 0         0 $text = $_[1];
8693 0         0 my $_savetext;
8694 0         0 @item = (q{sysibm_function});
8695 0         0 %item = (__RULE__ => q{sysibm_function});
8696 0         0 my $repcount = 0;
8697              
8698              
8699 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_42_of_rule_sysibm_function]},
8700             Parse::RecDescent::_tracefirst($text),
8701             q{sysibm_function},
8702             $tracelevel)
8703             if defined $::RD_TRACE;
8704 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         6551  
  0         0  
8705 0         0 $expectation->is(q{})->at($text);
8706 0 0   0   0 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 })))
  0         0  
8707             {
8708              
8709 0 0       0 Parse::RecDescent::_trace(q{<>},
8710             Parse::RecDescent::_tracefirst($text),
8711             q{sysibm_function},
8712             $tracelevel)
8713             if defined $::RD_TRACE;
8714 0         0 $expectation->failed();
8715 0         0 last;
8716             }
8717 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_42_of_rule_sysibm_function]<< (return value: [}
8718             . $_tok . q{]},
8719              
8720             Parse::RecDescent::_tracefirst($text),
8721             q{sysibm_function},
8722             $tracelevel)
8723             if defined $::RD_TRACE;
8724 0         0 $item{q{_alternation_1_of_production_42_of_rule_sysibm_function}} = $_tok;
8725 0         0 push @item, $_tok;
8726              
8727             }
8728              
8729              
8730 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LCASE/i, or /LOWER/]<<},
8731             Parse::RecDescent::_tracefirst($text),
8732             q{sysibm_function},
8733             $tracelevel)
8734             if defined $::RD_TRACE;
8735 0         0 $_matched = 1;
8736 0         0 last;
8737             }
8738              
8739              
8740 0   0     0 while (!$_matched && !$commit)
8741             {
8742              
8743 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LENGTH/i]},
8744             Parse::RecDescent::_tracefirst($_[1]),
8745             q{sysibm_function},
8746             $tracelevel)
8747             if defined $::RD_TRACE;
8748 0         0 my $thisprod = $thisrule->{"prods"}[42];
8749 0         0 $text = $_[1];
8750 0         0 my $_savetext;
8751 0         0 @item = (q{sysibm_function});
8752 0         0 %item = (__RULE__ => q{sysibm_function});
8753 0         0 my $repcount = 0;
8754              
8755              
8756 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LENGTH/i]}, Parse::RecDescent::_tracefirst($text),
8757             q{sysibm_function},
8758             $tracelevel)
8759             if defined $::RD_TRACE;
8760 0         0 $lastsep = "";
8761 0         0 $expectation->is(q{})->at($text);
8762              
8763              
8764 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LENGTH)//i)
  0 0       0  
8765             {
8766              
8767 0         0 $expectation->failed();
8768 0 0       0 Parse::RecDescent::_trace(q{<>},
8769             Parse::RecDescent::_tracefirst($text))
8770             if defined $::RD_TRACE;
8771              
8772 0         0 last;
8773             }
8774 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8775             . $& . q{])},
8776             Parse::RecDescent::_tracefirst($text))
8777             if defined $::RD_TRACE;
8778 0         0 push @item, $item{__PATTERN1__}=$&;
8779              
8780              
8781              
8782 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LENGTH/i]<<},
8783             Parse::RecDescent::_tracefirst($text),
8784             q{sysibm_function},
8785             $tracelevel)
8786             if defined $::RD_TRACE;
8787 0         0 $_matched = 1;
8788 0         0 last;
8789             }
8790              
8791              
8792 0   0     0 while (!$_matched && !$commit)
8793             {
8794              
8795 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LONG_VARCHAR/i]},
8796             Parse::RecDescent::_tracefirst($_[1]),
8797             q{sysibm_function},
8798             $tracelevel)
8799             if defined $::RD_TRACE;
8800 0         0 my $thisprod = $thisrule->{"prods"}[43];
8801 0         0 $text = $_[1];
8802 0         0 my $_savetext;
8803 0         0 @item = (q{sysibm_function});
8804 0         0 %item = (__RULE__ => q{sysibm_function});
8805 0         0 my $repcount = 0;
8806              
8807              
8808 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LONG_VARCHAR/i]}, Parse::RecDescent::_tracefirst($text),
8809             q{sysibm_function},
8810             $tracelevel)
8811             if defined $::RD_TRACE;
8812 0         0 $lastsep = "";
8813 0         0 $expectation->is(q{})->at($text);
8814              
8815              
8816 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LONG_VARCHAR)//i)
  0 0       0  
8817             {
8818              
8819 0         0 $expectation->failed();
8820 0 0       0 Parse::RecDescent::_trace(q{<>},
8821             Parse::RecDescent::_tracefirst($text))
8822             if defined $::RD_TRACE;
8823              
8824 0         0 last;
8825             }
8826 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8827             . $& . q{])},
8828             Parse::RecDescent::_tracefirst($text))
8829             if defined $::RD_TRACE;
8830 0         0 push @item, $item{__PATTERN1__}=$&;
8831              
8832              
8833              
8834 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LONG_VARCHAR/i]<<},
8835             Parse::RecDescent::_tracefirst($text),
8836             q{sysibm_function},
8837             $tracelevel)
8838             if defined $::RD_TRACE;
8839 0         0 $_matched = 1;
8840 0         0 last;
8841             }
8842              
8843              
8844 0   0     0 while (!$_matched && !$commit)
8845             {
8846              
8847 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LONG_VARGRAPHIC/i]},
8848             Parse::RecDescent::_tracefirst($_[1]),
8849             q{sysibm_function},
8850             $tracelevel)
8851             if defined $::RD_TRACE;
8852 0         0 my $thisprod = $thisrule->{"prods"}[44];
8853 0         0 $text = $_[1];
8854 0         0 my $_savetext;
8855 0         0 @item = (q{sysibm_function});
8856 0         0 %item = (__RULE__ => q{sysibm_function});
8857 0         0 my $repcount = 0;
8858              
8859              
8860 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LONG_VARGRAPHIC/i]}, Parse::RecDescent::_tracefirst($text),
8861             q{sysibm_function},
8862             $tracelevel)
8863             if defined $::RD_TRACE;
8864 0         0 $lastsep = "";
8865 0         0 $expectation->is(q{})->at($text);
8866              
8867              
8868 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LONG_VARGRAPHIC)//i)
  0 0       0  
8869             {
8870              
8871 0         0 $expectation->failed();
8872 0 0       0 Parse::RecDescent::_trace(q{<>},
8873             Parse::RecDescent::_tracefirst($text))
8874             if defined $::RD_TRACE;
8875              
8876 0         0 last;
8877             }
8878 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8879             . $& . q{])},
8880             Parse::RecDescent::_tracefirst($text))
8881             if defined $::RD_TRACE;
8882 0         0 push @item, $item{__PATTERN1__}=$&;
8883              
8884              
8885              
8886 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LONG_VARGRAPHIC/i]<<},
8887             Parse::RecDescent::_tracefirst($text),
8888             q{sysibm_function},
8889             $tracelevel)
8890             if defined $::RD_TRACE;
8891 0         0 $_matched = 1;
8892 0         0 last;
8893             }
8894              
8895              
8896 0   0     0 while (!$_matched && !$commit)
8897             {
8898              
8899 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LTRIM/i]},
8900             Parse::RecDescent::_tracefirst($_[1]),
8901             q{sysibm_function},
8902             $tracelevel)
8903             if defined $::RD_TRACE;
8904 0         0 my $thisprod = $thisrule->{"prods"}[45];
8905 0         0 $text = $_[1];
8906 0         0 my $_savetext;
8907 0         0 @item = (q{sysibm_function});
8908 0         0 %item = (__RULE__ => q{sysibm_function});
8909 0         0 my $repcount = 0;
8910              
8911              
8912 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LTRIM/i]}, Parse::RecDescent::_tracefirst($text),
8913             q{sysibm_function},
8914             $tracelevel)
8915             if defined $::RD_TRACE;
8916 0         0 $lastsep = "";
8917 0         0 $expectation->is(q{})->at($text);
8918              
8919              
8920 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LTRIM)//i)
  0 0       0  
8921             {
8922              
8923 0         0 $expectation->failed();
8924 0 0       0 Parse::RecDescent::_trace(q{<>},
8925             Parse::RecDescent::_tracefirst($text))
8926             if defined $::RD_TRACE;
8927              
8928 0         0 last;
8929             }
8930 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8931             . $& . q{])},
8932             Parse::RecDescent::_tracefirst($text))
8933             if defined $::RD_TRACE;
8934 0         0 push @item, $item{__PATTERN1__}=$&;
8935              
8936              
8937              
8938 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LTRIM/i]<<},
8939             Parse::RecDescent::_tracefirst($text),
8940             q{sysibm_function},
8941             $tracelevel)
8942             if defined $::RD_TRACE;
8943 0         0 $_matched = 1;
8944 0         0 last;
8945             }
8946              
8947              
8948 0   0     0 while (!$_matched && !$commit)
8949             {
8950              
8951 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/MAX/i]},
8952             Parse::RecDescent::_tracefirst($_[1]),
8953             q{sysibm_function},
8954             $tracelevel)
8955             if defined $::RD_TRACE;
8956 0         0 my $thisprod = $thisrule->{"prods"}[46];
8957 0         0 $text = $_[1];
8958 0         0 my $_savetext;
8959 0         0 @item = (q{sysibm_function});
8960 0         0 %item = (__RULE__ => q{sysibm_function});
8961 0         0 my $repcount = 0;
8962              
8963              
8964 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/MAX/i]}, Parse::RecDescent::_tracefirst($text),
8965             q{sysibm_function},
8966             $tracelevel)
8967             if defined $::RD_TRACE;
8968 0         0 $lastsep = "";
8969 0         0 $expectation->is(q{})->at($text);
8970              
8971              
8972 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:MAX)//i)
  0 0       0  
8973             {
8974              
8975 0         0 $expectation->failed();
8976 0 0       0 Parse::RecDescent::_trace(q{<>},
8977             Parse::RecDescent::_tracefirst($text))
8978             if defined $::RD_TRACE;
8979              
8980 0         0 last;
8981             }
8982 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8983             . $& . q{])},
8984             Parse::RecDescent::_tracefirst($text))
8985             if defined $::RD_TRACE;
8986 0         0 push @item, $item{__PATTERN1__}=$&;
8987              
8988              
8989              
8990 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/MAX/i]<<},
8991             Parse::RecDescent::_tracefirst($text),
8992             q{sysibm_function},
8993             $tracelevel)
8994             if defined $::RD_TRACE;
8995 0         0 $_matched = 1;
8996 0         0 last;
8997             }
8998              
8999              
9000 0   0     0 while (!$_matched && !$commit)
9001             {
9002              
9003 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/MICROSECOND/i]},
9004             Parse::RecDescent::_tracefirst($_[1]),
9005             q{sysibm_function},
9006             $tracelevel)
9007             if defined $::RD_TRACE;
9008 0         0 my $thisprod = $thisrule->{"prods"}[47];
9009 0         0 $text = $_[1];
9010 0         0 my $_savetext;
9011 0         0 @item = (q{sysibm_function});
9012 0         0 %item = (__RULE__ => q{sysibm_function});
9013 0         0 my $repcount = 0;
9014              
9015              
9016 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/MICROSECOND/i]}, Parse::RecDescent::_tracefirst($text),
9017             q{sysibm_function},
9018             $tracelevel)
9019             if defined $::RD_TRACE;
9020 0         0 $lastsep = "";
9021 0         0 $expectation->is(q{})->at($text);
9022              
9023              
9024 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:MICROSECOND)//i)
  0 0       0  
9025             {
9026              
9027 0         0 $expectation->failed();
9028 0 0       0 Parse::RecDescent::_trace(q{<>},
9029             Parse::RecDescent::_tracefirst($text))
9030             if defined $::RD_TRACE;
9031              
9032 0         0 last;
9033             }
9034 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9035             . $& . q{])},
9036             Parse::RecDescent::_tracefirst($text))
9037             if defined $::RD_TRACE;
9038 0         0 push @item, $item{__PATTERN1__}=$&;
9039              
9040              
9041              
9042 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/MICROSECOND/i]<<},
9043             Parse::RecDescent::_tracefirst($text),
9044             q{sysibm_function},
9045             $tracelevel)
9046             if defined $::RD_TRACE;
9047 0         0 $_matched = 1;
9048 0         0 last;
9049             }
9050              
9051              
9052 0   0     0 while (!$_matched && !$commit)
9053             {
9054              
9055 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/MIN/i]},
9056             Parse::RecDescent::_tracefirst($_[1]),
9057             q{sysibm_function},
9058             $tracelevel)
9059             if defined $::RD_TRACE;
9060 0         0 my $thisprod = $thisrule->{"prods"}[48];
9061 0         0 $text = $_[1];
9062 0         0 my $_savetext;
9063 0         0 @item = (q{sysibm_function});
9064 0         0 %item = (__RULE__ => q{sysibm_function});
9065 0         0 my $repcount = 0;
9066              
9067              
9068 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/MIN/i]}, Parse::RecDescent::_tracefirst($text),
9069             q{sysibm_function},
9070             $tracelevel)
9071             if defined $::RD_TRACE;
9072 0         0 $lastsep = "";
9073 0         0 $expectation->is(q{})->at($text);
9074              
9075              
9076 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:MIN)//i)
  0 0       0  
9077             {
9078              
9079 0         0 $expectation->failed();
9080 0 0       0 Parse::RecDescent::_trace(q{<>},
9081             Parse::RecDescent::_tracefirst($text))
9082             if defined $::RD_TRACE;
9083              
9084 0         0 last;
9085             }
9086 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9087             . $& . q{])},
9088             Parse::RecDescent::_tracefirst($text))
9089             if defined $::RD_TRACE;
9090 0         0 push @item, $item{__PATTERN1__}=$&;
9091              
9092              
9093              
9094 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/MIN/i]<<},
9095             Parse::RecDescent::_tracefirst($text),
9096             q{sysibm_function},
9097             $tracelevel)
9098             if defined $::RD_TRACE;
9099 0         0 $_matched = 1;
9100 0         0 last;
9101             }
9102              
9103              
9104 0   0     0 while (!$_matched && !$commit)
9105             {
9106              
9107 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/MINUTE/i]},
9108             Parse::RecDescent::_tracefirst($_[1]),
9109             q{sysibm_function},
9110             $tracelevel)
9111             if defined $::RD_TRACE;
9112 0         0 my $thisprod = $thisrule->{"prods"}[49];
9113 0         0 $text = $_[1];
9114 0         0 my $_savetext;
9115 0         0 @item = (q{sysibm_function});
9116 0         0 %item = (__RULE__ => q{sysibm_function});
9117 0         0 my $repcount = 0;
9118              
9119              
9120 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/MINUTE/i]}, Parse::RecDescent::_tracefirst($text),
9121             q{sysibm_function},
9122             $tracelevel)
9123             if defined $::RD_TRACE;
9124 0         0 $lastsep = "";
9125 0         0 $expectation->is(q{})->at($text);
9126              
9127              
9128 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:MINUTE)//i)
  0 0       0  
9129             {
9130              
9131 0         0 $expectation->failed();
9132 0 0       0 Parse::RecDescent::_trace(q{<>},
9133             Parse::RecDescent::_tracefirst($text))
9134             if defined $::RD_TRACE;
9135              
9136 0         0 last;
9137             }
9138 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9139             . $& . q{])},
9140             Parse::RecDescent::_tracefirst($text))
9141             if defined $::RD_TRACE;
9142 0         0 push @item, $item{__PATTERN1__}=$&;
9143              
9144              
9145              
9146 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/MINUTE/i]<<},
9147             Parse::RecDescent::_tracefirst($text),
9148             q{sysibm_function},
9149             $tracelevel)
9150             if defined $::RD_TRACE;
9151 0         0 $_matched = 1;
9152 0         0 last;
9153             }
9154              
9155              
9156 0   0     0 while (!$_matched && !$commit)
9157             {
9158              
9159 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/MONTH/i]},
9160             Parse::RecDescent::_tracefirst($_[1]),
9161             q{sysibm_function},
9162             $tracelevel)
9163             if defined $::RD_TRACE;
9164 0         0 my $thisprod = $thisrule->{"prods"}[50];
9165 0         0 $text = $_[1];
9166 0         0 my $_savetext;
9167 0         0 @item = (q{sysibm_function});
9168 0         0 %item = (__RULE__ => q{sysibm_function});
9169 0         0 my $repcount = 0;
9170              
9171              
9172 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/MONTH/i]}, Parse::RecDescent::_tracefirst($text),
9173             q{sysibm_function},
9174             $tracelevel)
9175             if defined $::RD_TRACE;
9176 0         0 $lastsep = "";
9177 0         0 $expectation->is(q{})->at($text);
9178              
9179              
9180 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:MONTH)//i)
  0 0       0  
9181             {
9182              
9183 0         0 $expectation->failed();
9184 0 0       0 Parse::RecDescent::_trace(q{<>},
9185             Parse::RecDescent::_tracefirst($text))
9186             if defined $::RD_TRACE;
9187              
9188 0         0 last;
9189             }
9190 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9191             . $& . q{])},
9192             Parse::RecDescent::_tracefirst($text))
9193             if defined $::RD_TRACE;
9194 0         0 push @item, $item{__PATTERN1__}=$&;
9195              
9196              
9197              
9198 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/MONTH/i]<<},
9199             Parse::RecDescent::_tracefirst($text),
9200             q{sysibm_function},
9201             $tracelevel)
9202             if defined $::RD_TRACE;
9203 0         0 $_matched = 1;
9204 0         0 last;
9205             }
9206              
9207              
9208 0   0     0 while (!$_matched && !$commit)
9209             {
9210              
9211 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/MULTIPLY_ACT/i]},
9212             Parse::RecDescent::_tracefirst($_[1]),
9213             q{sysibm_function},
9214             $tracelevel)
9215             if defined $::RD_TRACE;
9216 0         0 my $thisprod = $thisrule->{"prods"}[51];
9217 0         0 $text = $_[1];
9218 0         0 my $_savetext;
9219 0         0 @item = (q{sysibm_function});
9220 0         0 %item = (__RULE__ => q{sysibm_function});
9221 0         0 my $repcount = 0;
9222              
9223              
9224 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/MULTIPLY_ACT/i]}, Parse::RecDescent::_tracefirst($text),
9225             q{sysibm_function},
9226             $tracelevel)
9227             if defined $::RD_TRACE;
9228 0         0 $lastsep = "";
9229 0         0 $expectation->is(q{})->at($text);
9230              
9231              
9232 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:MULTIPLY_ACT)//i)
  0 0       0  
9233             {
9234              
9235 0         0 $expectation->failed();
9236 0 0       0 Parse::RecDescent::_trace(q{<>},
9237             Parse::RecDescent::_tracefirst($text))
9238             if defined $::RD_TRACE;
9239              
9240 0         0 last;
9241             }
9242 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9243             . $& . q{])},
9244             Parse::RecDescent::_tracefirst($text))
9245             if defined $::RD_TRACE;
9246 0         0 push @item, $item{__PATTERN1__}=$&;
9247              
9248              
9249              
9250 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/MULTIPLY_ACT/i]<<},
9251             Parse::RecDescent::_tracefirst($text),
9252             q{sysibm_function},
9253             $tracelevel)
9254             if defined $::RD_TRACE;
9255 0         0 $_matched = 1;
9256 0         0 last;
9257             }
9258              
9259              
9260 0   0     0 while (!$_matched && !$commit)
9261             {
9262              
9263 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NODENUMBER/i]},
9264             Parse::RecDescent::_tracefirst($_[1]),
9265             q{sysibm_function},
9266             $tracelevel)
9267             if defined $::RD_TRACE;
9268 0         0 my $thisprod = $thisrule->{"prods"}[52];
9269 0         0 $text = $_[1];
9270 0         0 my $_savetext;
9271 0         0 @item = (q{sysibm_function});
9272 0         0 %item = (__RULE__ => q{sysibm_function});
9273 0         0 my $repcount = 0;
9274              
9275              
9276 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NODENUMBER/i]}, Parse::RecDescent::_tracefirst($text),
9277             q{sysibm_function},
9278             $tracelevel)
9279             if defined $::RD_TRACE;
9280 0         0 $lastsep = "";
9281 0         0 $expectation->is(q{})->at($text);
9282              
9283              
9284 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NODENUMBER)//i)
  0 0       0  
9285             {
9286              
9287 0         0 $expectation->failed();
9288 0 0       0 Parse::RecDescent::_trace(q{<>},
9289             Parse::RecDescent::_tracefirst($text))
9290             if defined $::RD_TRACE;
9291              
9292 0         0 last;
9293             }
9294 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9295             . $& . q{])},
9296             Parse::RecDescent::_tracefirst($text))
9297             if defined $::RD_TRACE;
9298 0         0 push @item, $item{__PATTERN1__}=$&;
9299              
9300              
9301              
9302 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NODENUMBER/i]<<},
9303             Parse::RecDescent::_tracefirst($text),
9304             q{sysibm_function},
9305             $tracelevel)
9306             if defined $::RD_TRACE;
9307 0         0 $_matched = 1;
9308 0         0 last;
9309             }
9310              
9311              
9312 0   0     0 while (!$_matched && !$commit)
9313             {
9314              
9315 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NULLIF/i]},
9316             Parse::RecDescent::_tracefirst($_[1]),
9317             q{sysibm_function},
9318             $tracelevel)
9319             if defined $::RD_TRACE;
9320 0         0 my $thisprod = $thisrule->{"prods"}[53];
9321 0         0 $text = $_[1];
9322 0         0 my $_savetext;
9323 0         0 @item = (q{sysibm_function});
9324 0         0 %item = (__RULE__ => q{sysibm_function});
9325 0         0 my $repcount = 0;
9326              
9327              
9328 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NULLIF/i]}, Parse::RecDescent::_tracefirst($text),
9329             q{sysibm_function},
9330             $tracelevel)
9331             if defined $::RD_TRACE;
9332 0         0 $lastsep = "";
9333 0         0 $expectation->is(q{})->at($text);
9334              
9335              
9336 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NULLIF)//i)
  0 0       0  
9337             {
9338              
9339 0         0 $expectation->failed();
9340 0 0       0 Parse::RecDescent::_trace(q{<>},
9341             Parse::RecDescent::_tracefirst($text))
9342             if defined $::RD_TRACE;
9343              
9344 0         0 last;
9345             }
9346 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9347             . $& . q{])},
9348             Parse::RecDescent::_tracefirst($text))
9349             if defined $::RD_TRACE;
9350 0         0 push @item, $item{__PATTERN1__}=$&;
9351              
9352              
9353              
9354 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NULLIF/i]<<},
9355             Parse::RecDescent::_tracefirst($text),
9356             q{sysibm_function},
9357             $tracelevel)
9358             if defined $::RD_TRACE;
9359 0         0 $_matched = 1;
9360 0         0 last;
9361             }
9362              
9363              
9364 0   0     0 while (!$_matched && !$commit)
9365             {
9366              
9367 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/PARTITON/i]},
9368             Parse::RecDescent::_tracefirst($_[1]),
9369             q{sysibm_function},
9370             $tracelevel)
9371             if defined $::RD_TRACE;
9372 0         0 my $thisprod = $thisrule->{"prods"}[54];
9373 0         0 $text = $_[1];
9374 0         0 my $_savetext;
9375 0         0 @item = (q{sysibm_function});
9376 0         0 %item = (__RULE__ => q{sysibm_function});
9377 0         0 my $repcount = 0;
9378              
9379              
9380 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/PARTITON/i]}, Parse::RecDescent::_tracefirst($text),
9381             q{sysibm_function},
9382             $tracelevel)
9383             if defined $::RD_TRACE;
9384 0         0 $lastsep = "";
9385 0         0 $expectation->is(q{})->at($text);
9386              
9387              
9388 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:PARTITON)//i)
  0 0       0  
9389             {
9390              
9391 0         0 $expectation->failed();
9392 0 0       0 Parse::RecDescent::_trace(q{<>},
9393             Parse::RecDescent::_tracefirst($text))
9394             if defined $::RD_TRACE;
9395              
9396 0         0 last;
9397             }
9398 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9399             . $& . q{])},
9400             Parse::RecDescent::_tracefirst($text))
9401             if defined $::RD_TRACE;
9402 0         0 push @item, $item{__PATTERN1__}=$&;
9403              
9404              
9405              
9406 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/PARTITON/i]<<},
9407             Parse::RecDescent::_tracefirst($text),
9408             q{sysibm_function},
9409             $tracelevel)
9410             if defined $::RD_TRACE;
9411 0         0 $_matched = 1;
9412 0         0 last;
9413             }
9414              
9415              
9416 0   0     0 while (!$_matched && !$commit)
9417             {
9418              
9419 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/POSSTR/i]},
9420             Parse::RecDescent::_tracefirst($_[1]),
9421             q{sysibm_function},
9422             $tracelevel)
9423             if defined $::RD_TRACE;
9424 0         0 my $thisprod = $thisrule->{"prods"}[55];
9425 0         0 $text = $_[1];
9426 0         0 my $_savetext;
9427 0         0 @item = (q{sysibm_function});
9428 0         0 %item = (__RULE__ => q{sysibm_function});
9429 0         0 my $repcount = 0;
9430              
9431              
9432 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/POSSTR/i]}, Parse::RecDescent::_tracefirst($text),
9433             q{sysibm_function},
9434             $tracelevel)
9435             if defined $::RD_TRACE;
9436 0         0 $lastsep = "";
9437 0         0 $expectation->is(q{})->at($text);
9438              
9439              
9440 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:POSSTR)//i)
  0 0       0  
9441             {
9442              
9443 0         0 $expectation->failed();
9444 0 0       0 Parse::RecDescent::_trace(q{<>},
9445             Parse::RecDescent::_tracefirst($text))
9446             if defined $::RD_TRACE;
9447              
9448 0         0 last;
9449             }
9450 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9451             . $& . q{])},
9452             Parse::RecDescent::_tracefirst($text))
9453             if defined $::RD_TRACE;
9454 0         0 push @item, $item{__PATTERN1__}=$&;
9455              
9456              
9457              
9458 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/POSSTR/i]<<},
9459             Parse::RecDescent::_tracefirst($text),
9460             q{sysibm_function},
9461             $tracelevel)
9462             if defined $::RD_TRACE;
9463 0         0 $_matched = 1;
9464 0         0 last;
9465             }
9466              
9467              
9468 0   0     0 while (!$_matched && !$commit)
9469             {
9470              
9471 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/RAISE_ERROR/i]},
9472             Parse::RecDescent::_tracefirst($_[1]),
9473             q{sysibm_function},
9474             $tracelevel)
9475             if defined $::RD_TRACE;
9476 0         0 my $thisprod = $thisrule->{"prods"}[56];
9477 0         0 $text = $_[1];
9478 0         0 my $_savetext;
9479 0         0 @item = (q{sysibm_function});
9480 0         0 %item = (__RULE__ => q{sysibm_function});
9481 0         0 my $repcount = 0;
9482              
9483              
9484 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/RAISE_ERROR/i]}, Parse::RecDescent::_tracefirst($text),
9485             q{sysibm_function},
9486             $tracelevel)
9487             if defined $::RD_TRACE;
9488 0         0 $lastsep = "";
9489 0         0 $expectation->is(q{})->at($text);
9490              
9491              
9492 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:RAISE_ERROR)//i)
  0 0       0  
9493             {
9494              
9495 0         0 $expectation->failed();
9496 0 0       0 Parse::RecDescent::_trace(q{<>},
9497             Parse::RecDescent::_tracefirst($text))
9498             if defined $::RD_TRACE;
9499              
9500 0         0 last;
9501             }
9502 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9503             . $& . q{])},
9504             Parse::RecDescent::_tracefirst($text))
9505             if defined $::RD_TRACE;
9506 0         0 push @item, $item{__PATTERN1__}=$&;
9507              
9508              
9509              
9510 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/RAISE_ERROR/i]<<},
9511             Parse::RecDescent::_tracefirst($text),
9512             q{sysibm_function},
9513             $tracelevel)
9514             if defined $::RD_TRACE;
9515 0         0 $_matched = 1;
9516 0         0 last;
9517             }
9518              
9519              
9520 0   0     0 while (!$_matched && !$commit)
9521             {
9522              
9523 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REAL/i]},
9524             Parse::RecDescent::_tracefirst($_[1]),
9525             q{sysibm_function},
9526             $tracelevel)
9527             if defined $::RD_TRACE;
9528 0         0 my $thisprod = $thisrule->{"prods"}[57];
9529 0         0 $text = $_[1];
9530 0         0 my $_savetext;
9531 0         0 @item = (q{sysibm_function});
9532 0         0 %item = (__RULE__ => q{sysibm_function});
9533 0         0 my $repcount = 0;
9534              
9535              
9536 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REAL/i]}, Parse::RecDescent::_tracefirst($text),
9537             q{sysibm_function},
9538             $tracelevel)
9539             if defined $::RD_TRACE;
9540 0         0 $lastsep = "";
9541 0         0 $expectation->is(q{})->at($text);
9542              
9543              
9544 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REAL)//i)
  0 0       0  
9545             {
9546              
9547 0         0 $expectation->failed();
9548 0 0       0 Parse::RecDescent::_trace(q{<>},
9549             Parse::RecDescent::_tracefirst($text))
9550             if defined $::RD_TRACE;
9551              
9552 0         0 last;
9553             }
9554 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9555             . $& . q{])},
9556             Parse::RecDescent::_tracefirst($text))
9557             if defined $::RD_TRACE;
9558 0         0 push @item, $item{__PATTERN1__}=$&;
9559              
9560              
9561              
9562 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REAL/i]<<},
9563             Parse::RecDescent::_tracefirst($text),
9564             q{sysibm_function},
9565             $tracelevel)
9566             if defined $::RD_TRACE;
9567 0         0 $_matched = 1;
9568 0         0 last;
9569             }
9570              
9571              
9572 0   0     0 while (!$_matched && !$commit)
9573             {
9574              
9575 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REC2XML/i]},
9576             Parse::RecDescent::_tracefirst($_[1]),
9577             q{sysibm_function},
9578             $tracelevel)
9579             if defined $::RD_TRACE;
9580 0         0 my $thisprod = $thisrule->{"prods"}[58];
9581 0         0 $text = $_[1];
9582 0         0 my $_savetext;
9583 0         0 @item = (q{sysibm_function});
9584 0         0 %item = (__RULE__ => q{sysibm_function});
9585 0         0 my $repcount = 0;
9586              
9587              
9588 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REC2XML/i]}, Parse::RecDescent::_tracefirst($text),
9589             q{sysibm_function},
9590             $tracelevel)
9591             if defined $::RD_TRACE;
9592 0         0 $lastsep = "";
9593 0         0 $expectation->is(q{})->at($text);
9594              
9595              
9596 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REC2XML)//i)
  0 0       0  
9597             {
9598              
9599 0         0 $expectation->failed();
9600 0 0       0 Parse::RecDescent::_trace(q{<>},
9601             Parse::RecDescent::_tracefirst($text))
9602             if defined $::RD_TRACE;
9603              
9604 0         0 last;
9605             }
9606 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9607             . $& . q{])},
9608             Parse::RecDescent::_tracefirst($text))
9609             if defined $::RD_TRACE;
9610 0         0 push @item, $item{__PATTERN1__}=$&;
9611              
9612              
9613              
9614 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REC2XML/i]<<},
9615             Parse::RecDescent::_tracefirst($text),
9616             q{sysibm_function},
9617             $tracelevel)
9618             if defined $::RD_TRACE;
9619 0         0 $_matched = 1;
9620 0         0 last;
9621             }
9622              
9623              
9624 0   0     0 while (!$_matched && !$commit)
9625             {
9626              
9627 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REGR_AVGX/i]},
9628             Parse::RecDescent::_tracefirst($_[1]),
9629             q{sysibm_function},
9630             $tracelevel)
9631             if defined $::RD_TRACE;
9632 0         0 my $thisprod = $thisrule->{"prods"}[59];
9633 0         0 $text = $_[1];
9634 0         0 my $_savetext;
9635 0         0 @item = (q{sysibm_function});
9636 0         0 %item = (__RULE__ => q{sysibm_function});
9637 0         0 my $repcount = 0;
9638              
9639              
9640 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_AVGX/i]}, Parse::RecDescent::_tracefirst($text),
9641             q{sysibm_function},
9642             $tracelevel)
9643             if defined $::RD_TRACE;
9644 0         0 $lastsep = "";
9645 0         0 $expectation->is(q{})->at($text);
9646              
9647              
9648 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REGR_AVGX)//i)
  0 0       0  
9649             {
9650              
9651 0         0 $expectation->failed();
9652 0 0       0 Parse::RecDescent::_trace(q{<>},
9653             Parse::RecDescent::_tracefirst($text))
9654             if defined $::RD_TRACE;
9655              
9656 0         0 last;
9657             }
9658 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9659             . $& . q{])},
9660             Parse::RecDescent::_tracefirst($text))
9661             if defined $::RD_TRACE;
9662 0         0 push @item, $item{__PATTERN1__}=$&;
9663              
9664              
9665              
9666 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_AVGX/i]<<},
9667             Parse::RecDescent::_tracefirst($text),
9668             q{sysibm_function},
9669             $tracelevel)
9670             if defined $::RD_TRACE;
9671 0         0 $_matched = 1;
9672 0         0 last;
9673             }
9674              
9675              
9676 0   0     0 while (!$_matched && !$commit)
9677             {
9678              
9679 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REGR_AVGY/i]},
9680             Parse::RecDescent::_tracefirst($_[1]),
9681             q{sysibm_function},
9682             $tracelevel)
9683             if defined $::RD_TRACE;
9684 0         0 my $thisprod = $thisrule->{"prods"}[60];
9685 0         0 $text = $_[1];
9686 0         0 my $_savetext;
9687 0         0 @item = (q{sysibm_function});
9688 0         0 %item = (__RULE__ => q{sysibm_function});
9689 0         0 my $repcount = 0;
9690              
9691              
9692 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_AVGY/i]}, Parse::RecDescent::_tracefirst($text),
9693             q{sysibm_function},
9694             $tracelevel)
9695             if defined $::RD_TRACE;
9696 0         0 $lastsep = "";
9697 0         0 $expectation->is(q{})->at($text);
9698              
9699              
9700 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REGR_AVGY)//i)
  0 0       0  
9701             {
9702              
9703 0         0 $expectation->failed();
9704 0 0       0 Parse::RecDescent::_trace(q{<>},
9705             Parse::RecDescent::_tracefirst($text))
9706             if defined $::RD_TRACE;
9707              
9708 0         0 last;
9709             }
9710 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9711             . $& . q{])},
9712             Parse::RecDescent::_tracefirst($text))
9713             if defined $::RD_TRACE;
9714 0         0 push @item, $item{__PATTERN1__}=$&;
9715              
9716              
9717              
9718 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_AVGY/i]<<},
9719             Parse::RecDescent::_tracefirst($text),
9720             q{sysibm_function},
9721             $tracelevel)
9722             if defined $::RD_TRACE;
9723 0         0 $_matched = 1;
9724 0         0 last;
9725             }
9726              
9727              
9728 0   0     0 while (!$_matched && !$commit)
9729             {
9730              
9731 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REGR_COUNT/i]},
9732             Parse::RecDescent::_tracefirst($_[1]),
9733             q{sysibm_function},
9734             $tracelevel)
9735             if defined $::RD_TRACE;
9736 0         0 my $thisprod = $thisrule->{"prods"}[61];
9737 0         0 $text = $_[1];
9738 0         0 my $_savetext;
9739 0         0 @item = (q{sysibm_function});
9740 0         0 %item = (__RULE__ => q{sysibm_function});
9741 0         0 my $repcount = 0;
9742              
9743              
9744 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_COUNT/i]}, Parse::RecDescent::_tracefirst($text),
9745             q{sysibm_function},
9746             $tracelevel)
9747             if defined $::RD_TRACE;
9748 0         0 $lastsep = "";
9749 0         0 $expectation->is(q{})->at($text);
9750              
9751              
9752 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REGR_COUNT)//i)
  0 0       0  
9753             {
9754              
9755 0         0 $expectation->failed();
9756 0 0       0 Parse::RecDescent::_trace(q{<>},
9757             Parse::RecDescent::_tracefirst($text))
9758             if defined $::RD_TRACE;
9759              
9760 0         0 last;
9761             }
9762 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9763             . $& . q{])},
9764             Parse::RecDescent::_tracefirst($text))
9765             if defined $::RD_TRACE;
9766 0         0 push @item, $item{__PATTERN1__}=$&;
9767              
9768              
9769              
9770 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_COUNT/i]<<},
9771             Parse::RecDescent::_tracefirst($text),
9772             q{sysibm_function},
9773             $tracelevel)
9774             if defined $::RD_TRACE;
9775 0         0 $_matched = 1;
9776 0         0 last;
9777             }
9778              
9779              
9780 0   0     0 while (!$_matched && !$commit)
9781             {
9782              
9783 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REGR_INTERCEPT/i, or /REGR_ICPT/i]},
9784             Parse::RecDescent::_tracefirst($_[1]),
9785             q{sysibm_function},
9786             $tracelevel)
9787             if defined $::RD_TRACE;
9788 0         0 my $thisprod = $thisrule->{"prods"}[62];
9789 0         0 $text = $_[1];
9790 0         0 my $_savetext;
9791 0         0 @item = (q{sysibm_function});
9792 0         0 %item = (__RULE__ => q{sysibm_function});
9793 0         0 my $repcount = 0;
9794              
9795              
9796 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_63_of_rule_sysibm_function]},
9797             Parse::RecDescent::_tracefirst($text),
9798             q{sysibm_function},
9799             $tracelevel)
9800             if defined $::RD_TRACE;
9801 1     1   19 if (1) { no strict qw{refs};
  1         4  
  1         7169  
  0         0  
9802 0         0 $expectation->is(q{})->at($text);
9803 0 0   0   0 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 })))
  0         0  
9804             {
9805              
9806 0 0       0 Parse::RecDescent::_trace(q{<>},
9807             Parse::RecDescent::_tracefirst($text),
9808             q{sysibm_function},
9809             $tracelevel)
9810             if defined $::RD_TRACE;
9811 0         0 $expectation->failed();
9812 0         0 last;
9813             }
9814 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_63_of_rule_sysibm_function]<< (return value: [}
9815             . $_tok . q{]},
9816              
9817             Parse::RecDescent::_tracefirst($text),
9818             q{sysibm_function},
9819             $tracelevel)
9820             if defined $::RD_TRACE;
9821 0         0 $item{q{_alternation_1_of_production_63_of_rule_sysibm_function}} = $_tok;
9822 0         0 push @item, $_tok;
9823              
9824             }
9825              
9826              
9827 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_INTERCEPT/i, or /REGR_ICPT/i]<<},
9828             Parse::RecDescent::_tracefirst($text),
9829             q{sysibm_function},
9830             $tracelevel)
9831             if defined $::RD_TRACE;
9832 0         0 $_matched = 1;
9833 0         0 last;
9834             }
9835              
9836              
9837 0   0     0 while (!$_matched && !$commit)
9838             {
9839              
9840 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REGR_R2/i]},
9841             Parse::RecDescent::_tracefirst($_[1]),
9842             q{sysibm_function},
9843             $tracelevel)
9844             if defined $::RD_TRACE;
9845 0         0 my $thisprod = $thisrule->{"prods"}[63];
9846 0         0 $text = $_[1];
9847 0         0 my $_savetext;
9848 0         0 @item = (q{sysibm_function});
9849 0         0 %item = (__RULE__ => q{sysibm_function});
9850 0         0 my $repcount = 0;
9851              
9852              
9853 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_R2/i]}, Parse::RecDescent::_tracefirst($text),
9854             q{sysibm_function},
9855             $tracelevel)
9856             if defined $::RD_TRACE;
9857 0         0 $lastsep = "";
9858 0         0 $expectation->is(q{})->at($text);
9859              
9860              
9861 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REGR_R2)//i)
  0 0       0  
9862             {
9863              
9864 0         0 $expectation->failed();
9865 0 0       0 Parse::RecDescent::_trace(q{<>},
9866             Parse::RecDescent::_tracefirst($text))
9867             if defined $::RD_TRACE;
9868              
9869 0         0 last;
9870             }
9871 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9872             . $& . q{])},
9873             Parse::RecDescent::_tracefirst($text))
9874             if defined $::RD_TRACE;
9875 0         0 push @item, $item{__PATTERN1__}=$&;
9876              
9877              
9878              
9879 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_R2/i]<<},
9880             Parse::RecDescent::_tracefirst($text),
9881             q{sysibm_function},
9882             $tracelevel)
9883             if defined $::RD_TRACE;
9884 0         0 $_matched = 1;
9885 0         0 last;
9886             }
9887              
9888              
9889 0   0     0 while (!$_matched && !$commit)
9890             {
9891              
9892 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REGR_SLOPE/i]},
9893             Parse::RecDescent::_tracefirst($_[1]),
9894             q{sysibm_function},
9895             $tracelevel)
9896             if defined $::RD_TRACE;
9897 0         0 my $thisprod = $thisrule->{"prods"}[64];
9898 0         0 $text = $_[1];
9899 0         0 my $_savetext;
9900 0         0 @item = (q{sysibm_function});
9901 0         0 %item = (__RULE__ => q{sysibm_function});
9902 0         0 my $repcount = 0;
9903              
9904              
9905 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SLOPE/i]}, Parse::RecDescent::_tracefirst($text),
9906             q{sysibm_function},
9907             $tracelevel)
9908             if defined $::RD_TRACE;
9909 0         0 $lastsep = "";
9910 0         0 $expectation->is(q{})->at($text);
9911              
9912              
9913 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REGR_SLOPE)//i)
  0 0       0  
9914             {
9915              
9916 0         0 $expectation->failed();
9917 0 0       0 Parse::RecDescent::_trace(q{<>},
9918             Parse::RecDescent::_tracefirst($text))
9919             if defined $::RD_TRACE;
9920              
9921 0         0 last;
9922             }
9923 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9924             . $& . q{])},
9925             Parse::RecDescent::_tracefirst($text))
9926             if defined $::RD_TRACE;
9927 0         0 push @item, $item{__PATTERN1__}=$&;
9928              
9929              
9930              
9931 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_SLOPE/i]<<},
9932             Parse::RecDescent::_tracefirst($text),
9933             q{sysibm_function},
9934             $tracelevel)
9935             if defined $::RD_TRACE;
9936 0         0 $_matched = 1;
9937 0         0 last;
9938             }
9939              
9940              
9941 0   0     0 while (!$_matched && !$commit)
9942             {
9943              
9944 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REGR_SXX/i]},
9945             Parse::RecDescent::_tracefirst($_[1]),
9946             q{sysibm_function},
9947             $tracelevel)
9948             if defined $::RD_TRACE;
9949 0         0 my $thisprod = $thisrule->{"prods"}[65];
9950 0         0 $text = $_[1];
9951 0         0 my $_savetext;
9952 0         0 @item = (q{sysibm_function});
9953 0         0 %item = (__RULE__ => q{sysibm_function});
9954 0         0 my $repcount = 0;
9955              
9956              
9957 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SXX/i]}, Parse::RecDescent::_tracefirst($text),
9958             q{sysibm_function},
9959             $tracelevel)
9960             if defined $::RD_TRACE;
9961 0         0 $lastsep = "";
9962 0         0 $expectation->is(q{})->at($text);
9963              
9964              
9965 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REGR_SXX)//i)
  0 0       0  
9966             {
9967              
9968 0         0 $expectation->failed();
9969 0 0       0 Parse::RecDescent::_trace(q{<>},
9970             Parse::RecDescent::_tracefirst($text))
9971             if defined $::RD_TRACE;
9972              
9973 0         0 last;
9974             }
9975 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9976             . $& . q{])},
9977             Parse::RecDescent::_tracefirst($text))
9978             if defined $::RD_TRACE;
9979 0         0 push @item, $item{__PATTERN1__}=$&;
9980              
9981              
9982              
9983 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_SXX/i]<<},
9984             Parse::RecDescent::_tracefirst($text),
9985             q{sysibm_function},
9986             $tracelevel)
9987             if defined $::RD_TRACE;
9988 0         0 $_matched = 1;
9989 0         0 last;
9990             }
9991              
9992              
9993 0   0     0 while (!$_matched && !$commit)
9994             {
9995              
9996 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REGR_SXY/i]},
9997             Parse::RecDescent::_tracefirst($_[1]),
9998             q{sysibm_function},
9999             $tracelevel)
10000             if defined $::RD_TRACE;
10001 0         0 my $thisprod = $thisrule->{"prods"}[66];
10002 0         0 $text = $_[1];
10003 0         0 my $_savetext;
10004 0         0 @item = (q{sysibm_function});
10005 0         0 %item = (__RULE__ => q{sysibm_function});
10006 0         0 my $repcount = 0;
10007              
10008              
10009 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SXY/i]}, Parse::RecDescent::_tracefirst($text),
10010             q{sysibm_function},
10011             $tracelevel)
10012             if defined $::RD_TRACE;
10013 0         0 $lastsep = "";
10014 0         0 $expectation->is(q{})->at($text);
10015              
10016              
10017 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REGR_SXY)//i)
  0 0       0  
10018             {
10019              
10020 0         0 $expectation->failed();
10021 0 0       0 Parse::RecDescent::_trace(q{<>},
10022             Parse::RecDescent::_tracefirst($text))
10023             if defined $::RD_TRACE;
10024              
10025 0         0 last;
10026             }
10027 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10028             . $& . q{])},
10029             Parse::RecDescent::_tracefirst($text))
10030             if defined $::RD_TRACE;
10031 0         0 push @item, $item{__PATTERN1__}=$&;
10032              
10033              
10034              
10035 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_SXY/i]<<},
10036             Parse::RecDescent::_tracefirst($text),
10037             q{sysibm_function},
10038             $tracelevel)
10039             if defined $::RD_TRACE;
10040 0         0 $_matched = 1;
10041 0         0 last;
10042             }
10043              
10044              
10045 0   0     0 while (!$_matched && !$commit)
10046             {
10047              
10048 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REGR_SYY/i]},
10049             Parse::RecDescent::_tracefirst($_[1]),
10050             q{sysibm_function},
10051             $tracelevel)
10052             if defined $::RD_TRACE;
10053 0         0 my $thisprod = $thisrule->{"prods"}[67];
10054 0         0 $text = $_[1];
10055 0         0 my $_savetext;
10056 0         0 @item = (q{sysibm_function});
10057 0         0 %item = (__RULE__ => q{sysibm_function});
10058 0         0 my $repcount = 0;
10059              
10060              
10061 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SYY/i]}, Parse::RecDescent::_tracefirst($text),
10062             q{sysibm_function},
10063             $tracelevel)
10064             if defined $::RD_TRACE;
10065 0         0 $lastsep = "";
10066 0         0 $expectation->is(q{})->at($text);
10067              
10068              
10069 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REGR_SYY)//i)
  0 0       0  
10070             {
10071              
10072 0         0 $expectation->failed();
10073 0 0       0 Parse::RecDescent::_trace(q{<>},
10074             Parse::RecDescent::_tracefirst($text))
10075             if defined $::RD_TRACE;
10076              
10077 0         0 last;
10078             }
10079 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10080             . $& . q{])},
10081             Parse::RecDescent::_tracefirst($text))
10082             if defined $::RD_TRACE;
10083 0         0 push @item, $item{__PATTERN1__}=$&;
10084              
10085              
10086              
10087 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_SYY/i]<<},
10088             Parse::RecDescent::_tracefirst($text),
10089             q{sysibm_function},
10090             $tracelevel)
10091             if defined $::RD_TRACE;
10092 0         0 $_matched = 1;
10093 0         0 last;
10094             }
10095              
10096              
10097 0   0     0 while (!$_matched && !$commit)
10098             {
10099              
10100 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/RTRIM/i]},
10101             Parse::RecDescent::_tracefirst($_[1]),
10102             q{sysibm_function},
10103             $tracelevel)
10104             if defined $::RD_TRACE;
10105 0         0 my $thisprod = $thisrule->{"prods"}[68];
10106 0         0 $text = $_[1];
10107 0         0 my $_savetext;
10108 0         0 @item = (q{sysibm_function});
10109 0         0 %item = (__RULE__ => q{sysibm_function});
10110 0         0 my $repcount = 0;
10111              
10112              
10113 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/RTRIM/i]}, Parse::RecDescent::_tracefirst($text),
10114             q{sysibm_function},
10115             $tracelevel)
10116             if defined $::RD_TRACE;
10117 0         0 $lastsep = "";
10118 0         0 $expectation->is(q{})->at($text);
10119              
10120              
10121 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:RTRIM)//i)
  0 0       0  
10122             {
10123              
10124 0         0 $expectation->failed();
10125 0 0       0 Parse::RecDescent::_trace(q{<>},
10126             Parse::RecDescent::_tracefirst($text))
10127             if defined $::RD_TRACE;
10128              
10129 0         0 last;
10130             }
10131 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10132             . $& . q{])},
10133             Parse::RecDescent::_tracefirst($text))
10134             if defined $::RD_TRACE;
10135 0         0 push @item, $item{__PATTERN1__}=$&;
10136              
10137              
10138              
10139 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/RTRIM/i]<<},
10140             Parse::RecDescent::_tracefirst($text),
10141             q{sysibm_function},
10142             $tracelevel)
10143             if defined $::RD_TRACE;
10144 0         0 $_matched = 1;
10145 0         0 last;
10146             }
10147              
10148              
10149 0   0     0 while (!$_matched && !$commit)
10150             {
10151              
10152 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SECOND/i]},
10153             Parse::RecDescent::_tracefirst($_[1]),
10154             q{sysibm_function},
10155             $tracelevel)
10156             if defined $::RD_TRACE;
10157 0         0 my $thisprod = $thisrule->{"prods"}[69];
10158 0         0 $text = $_[1];
10159 0         0 my $_savetext;
10160 0         0 @item = (q{sysibm_function});
10161 0         0 %item = (__RULE__ => q{sysibm_function});
10162 0         0 my $repcount = 0;
10163              
10164              
10165 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SECOND/i]}, Parse::RecDescent::_tracefirst($text),
10166             q{sysibm_function},
10167             $tracelevel)
10168             if defined $::RD_TRACE;
10169 0         0 $lastsep = "";
10170 0         0 $expectation->is(q{})->at($text);
10171              
10172              
10173 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SECOND)//i)
  0 0       0  
10174             {
10175              
10176 0         0 $expectation->failed();
10177 0 0       0 Parse::RecDescent::_trace(q{<>},
10178             Parse::RecDescent::_tracefirst($text))
10179             if defined $::RD_TRACE;
10180              
10181 0         0 last;
10182             }
10183 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10184             . $& . q{])},
10185             Parse::RecDescent::_tracefirst($text))
10186             if defined $::RD_TRACE;
10187 0         0 push @item, $item{__PATTERN1__}=$&;
10188              
10189              
10190              
10191 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SECOND/i]<<},
10192             Parse::RecDescent::_tracefirst($text),
10193             q{sysibm_function},
10194             $tracelevel)
10195             if defined $::RD_TRACE;
10196 0         0 $_matched = 1;
10197 0         0 last;
10198             }
10199              
10200              
10201 0   0     0 while (!$_matched && !$commit)
10202             {
10203              
10204 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SMALLINT/i]},
10205             Parse::RecDescent::_tracefirst($_[1]),
10206             q{sysibm_function},
10207             $tracelevel)
10208             if defined $::RD_TRACE;
10209 0         0 my $thisprod = $thisrule->{"prods"}[70];
10210 0         0 $text = $_[1];
10211 0         0 my $_savetext;
10212 0         0 @item = (q{sysibm_function});
10213 0         0 %item = (__RULE__ => q{sysibm_function});
10214 0         0 my $repcount = 0;
10215              
10216              
10217 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SMALLINT/i]}, Parse::RecDescent::_tracefirst($text),
10218             q{sysibm_function},
10219             $tracelevel)
10220             if defined $::RD_TRACE;
10221 0         0 $lastsep = "";
10222 0         0 $expectation->is(q{})->at($text);
10223              
10224              
10225 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SMALLINT)//i)
  0 0       0  
10226             {
10227              
10228 0         0 $expectation->failed();
10229 0 0       0 Parse::RecDescent::_trace(q{<>},
10230             Parse::RecDescent::_tracefirst($text))
10231             if defined $::RD_TRACE;
10232              
10233 0         0 last;
10234             }
10235 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10236             . $& . q{])},
10237             Parse::RecDescent::_tracefirst($text))
10238             if defined $::RD_TRACE;
10239 0         0 push @item, $item{__PATTERN1__}=$&;
10240              
10241              
10242              
10243 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SMALLINT/i]<<},
10244             Parse::RecDescent::_tracefirst($text),
10245             q{sysibm_function},
10246             $tracelevel)
10247             if defined $::RD_TRACE;
10248 0         0 $_matched = 1;
10249 0         0 last;
10250             }
10251              
10252              
10253 0   0     0 while (!$_matched && !$commit)
10254             {
10255              
10256 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/STDDEV/i]},
10257             Parse::RecDescent::_tracefirst($_[1]),
10258             q{sysibm_function},
10259             $tracelevel)
10260             if defined $::RD_TRACE;
10261 0         0 my $thisprod = $thisrule->{"prods"}[71];
10262 0         0 $text = $_[1];
10263 0         0 my $_savetext;
10264 0         0 @item = (q{sysibm_function});
10265 0         0 %item = (__RULE__ => q{sysibm_function});
10266 0         0 my $repcount = 0;
10267              
10268              
10269 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/STDDEV/i]}, Parse::RecDescent::_tracefirst($text),
10270             q{sysibm_function},
10271             $tracelevel)
10272             if defined $::RD_TRACE;
10273 0         0 $lastsep = "";
10274 0         0 $expectation->is(q{})->at($text);
10275              
10276              
10277 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:STDDEV)//i)
  0 0       0  
10278             {
10279              
10280 0         0 $expectation->failed();
10281 0 0       0 Parse::RecDescent::_trace(q{<>},
10282             Parse::RecDescent::_tracefirst($text))
10283             if defined $::RD_TRACE;
10284              
10285 0         0 last;
10286             }
10287 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10288             . $& . q{])},
10289             Parse::RecDescent::_tracefirst($text))
10290             if defined $::RD_TRACE;
10291 0         0 push @item, $item{__PATTERN1__}=$&;
10292              
10293              
10294              
10295 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/STDDEV/i]<<},
10296             Parse::RecDescent::_tracefirst($text),
10297             q{sysibm_function},
10298             $tracelevel)
10299             if defined $::RD_TRACE;
10300 0         0 $_matched = 1;
10301 0         0 last;
10302             }
10303              
10304              
10305 0   0     0 while (!$_matched && !$commit)
10306             {
10307              
10308 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SUBSTR/i]},
10309             Parse::RecDescent::_tracefirst($_[1]),
10310             q{sysibm_function},
10311             $tracelevel)
10312             if defined $::RD_TRACE;
10313 0         0 my $thisprod = $thisrule->{"prods"}[72];
10314 0         0 $text = $_[1];
10315 0         0 my $_savetext;
10316 0         0 @item = (q{sysibm_function});
10317 0         0 %item = (__RULE__ => q{sysibm_function});
10318 0         0 my $repcount = 0;
10319              
10320              
10321 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SUBSTR/i]}, Parse::RecDescent::_tracefirst($text),
10322             q{sysibm_function},
10323             $tracelevel)
10324             if defined $::RD_TRACE;
10325 0         0 $lastsep = "";
10326 0         0 $expectation->is(q{})->at($text);
10327              
10328              
10329 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SUBSTR)//i)
  0 0       0  
10330             {
10331              
10332 0         0 $expectation->failed();
10333 0 0       0 Parse::RecDescent::_trace(q{<>},
10334             Parse::RecDescent::_tracefirst($text))
10335             if defined $::RD_TRACE;
10336              
10337 0         0 last;
10338             }
10339 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10340             . $& . q{])},
10341             Parse::RecDescent::_tracefirst($text))
10342             if defined $::RD_TRACE;
10343 0         0 push @item, $item{__PATTERN1__}=$&;
10344              
10345              
10346              
10347 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SUBSTR/i]<<},
10348             Parse::RecDescent::_tracefirst($text),
10349             q{sysibm_function},
10350             $tracelevel)
10351             if defined $::RD_TRACE;
10352 0         0 $_matched = 1;
10353 0         0 last;
10354             }
10355              
10356              
10357 0   0     0 while (!$_matched && !$commit)
10358             {
10359              
10360 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SUM/i]},
10361             Parse::RecDescent::_tracefirst($_[1]),
10362             q{sysibm_function},
10363             $tracelevel)
10364             if defined $::RD_TRACE;
10365 0         0 my $thisprod = $thisrule->{"prods"}[73];
10366 0         0 $text = $_[1];
10367 0         0 my $_savetext;
10368 0         0 @item = (q{sysibm_function});
10369 0         0 %item = (__RULE__ => q{sysibm_function});
10370 0         0 my $repcount = 0;
10371              
10372              
10373 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SUM/i]}, Parse::RecDescent::_tracefirst($text),
10374             q{sysibm_function},
10375             $tracelevel)
10376             if defined $::RD_TRACE;
10377 0         0 $lastsep = "";
10378 0         0 $expectation->is(q{})->at($text);
10379              
10380              
10381 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SUM)//i)
  0 0       0  
10382             {
10383              
10384 0         0 $expectation->failed();
10385 0 0       0 Parse::RecDescent::_trace(q{<>},
10386             Parse::RecDescent::_tracefirst($text))
10387             if defined $::RD_TRACE;
10388              
10389 0         0 last;
10390             }
10391 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10392             . $& . q{])},
10393             Parse::RecDescent::_tracefirst($text))
10394             if defined $::RD_TRACE;
10395 0         0 push @item, $item{__PATTERN1__}=$&;
10396              
10397              
10398              
10399 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SUM/i]<<},
10400             Parse::RecDescent::_tracefirst($text),
10401             q{sysibm_function},
10402             $tracelevel)
10403             if defined $::RD_TRACE;
10404 0         0 $_matched = 1;
10405 0         0 last;
10406             }
10407              
10408              
10409 0   0     0 while (!$_matched && !$commit)
10410             {
10411              
10412 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TABLE_NAME/i]},
10413             Parse::RecDescent::_tracefirst($_[1]),
10414             q{sysibm_function},
10415             $tracelevel)
10416             if defined $::RD_TRACE;
10417 0         0 my $thisprod = $thisrule->{"prods"}[74];
10418 0         0 $text = $_[1];
10419 0         0 my $_savetext;
10420 0         0 @item = (q{sysibm_function});
10421 0         0 %item = (__RULE__ => q{sysibm_function});
10422 0         0 my $repcount = 0;
10423              
10424              
10425 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TABLE_NAME/i]}, Parse::RecDescent::_tracefirst($text),
10426             q{sysibm_function},
10427             $tracelevel)
10428             if defined $::RD_TRACE;
10429 0         0 $lastsep = "";
10430 0         0 $expectation->is(q{})->at($text);
10431              
10432              
10433 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TABLE_NAME)//i)
  0 0       0  
10434             {
10435              
10436 0         0 $expectation->failed();
10437 0 0       0 Parse::RecDescent::_trace(q{<>},
10438             Parse::RecDescent::_tracefirst($text))
10439             if defined $::RD_TRACE;
10440              
10441 0         0 last;
10442             }
10443 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10444             . $& . q{])},
10445             Parse::RecDescent::_tracefirst($text))
10446             if defined $::RD_TRACE;
10447 0         0 push @item, $item{__PATTERN1__}=$&;
10448              
10449              
10450              
10451 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TABLE_NAME/i]<<},
10452             Parse::RecDescent::_tracefirst($text),
10453             q{sysibm_function},
10454             $tracelevel)
10455             if defined $::RD_TRACE;
10456 0         0 $_matched = 1;
10457 0         0 last;
10458             }
10459              
10460              
10461 0   0     0 while (!$_matched && !$commit)
10462             {
10463              
10464 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TABLE_SCHEMA/i]},
10465             Parse::RecDescent::_tracefirst($_[1]),
10466             q{sysibm_function},
10467             $tracelevel)
10468             if defined $::RD_TRACE;
10469 0         0 my $thisprod = $thisrule->{"prods"}[75];
10470 0         0 $text = $_[1];
10471 0         0 my $_savetext;
10472 0         0 @item = (q{sysibm_function});
10473 0         0 %item = (__RULE__ => q{sysibm_function});
10474 0         0 my $repcount = 0;
10475              
10476              
10477 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TABLE_SCHEMA/i]}, Parse::RecDescent::_tracefirst($text),
10478             q{sysibm_function},
10479             $tracelevel)
10480             if defined $::RD_TRACE;
10481 0         0 $lastsep = "";
10482 0         0 $expectation->is(q{})->at($text);
10483              
10484              
10485 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TABLE_SCHEMA)//i)
  0 0       0  
10486             {
10487              
10488 0         0 $expectation->failed();
10489 0 0       0 Parse::RecDescent::_trace(q{<>},
10490             Parse::RecDescent::_tracefirst($text))
10491             if defined $::RD_TRACE;
10492              
10493 0         0 last;
10494             }
10495 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10496             . $& . q{])},
10497             Parse::RecDescent::_tracefirst($text))
10498             if defined $::RD_TRACE;
10499 0         0 push @item, $item{__PATTERN1__}=$&;
10500              
10501              
10502              
10503 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TABLE_SCHEMA/i]<<},
10504             Parse::RecDescent::_tracefirst($text),
10505             q{sysibm_function},
10506             $tracelevel)
10507             if defined $::RD_TRACE;
10508 0         0 $_matched = 1;
10509 0         0 last;
10510             }
10511              
10512              
10513 0   0     0 while (!$_matched && !$commit)
10514             {
10515              
10516 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TIME/i]},
10517             Parse::RecDescent::_tracefirst($_[1]),
10518             q{sysibm_function},
10519             $tracelevel)
10520             if defined $::RD_TRACE;
10521 0         0 my $thisprod = $thisrule->{"prods"}[76];
10522 0         0 $text = $_[1];
10523 0         0 my $_savetext;
10524 0         0 @item = (q{sysibm_function});
10525 0         0 %item = (__RULE__ => q{sysibm_function});
10526 0         0 my $repcount = 0;
10527              
10528              
10529 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TIME/i]}, Parse::RecDescent::_tracefirst($text),
10530             q{sysibm_function},
10531             $tracelevel)
10532             if defined $::RD_TRACE;
10533 0         0 $lastsep = "";
10534 0         0 $expectation->is(q{})->at($text);
10535              
10536              
10537 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TIME)//i)
  0 0       0  
10538             {
10539              
10540 0         0 $expectation->failed();
10541 0 0       0 Parse::RecDescent::_trace(q{<>},
10542             Parse::RecDescent::_tracefirst($text))
10543             if defined $::RD_TRACE;
10544              
10545 0         0 last;
10546             }
10547 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10548             . $& . q{])},
10549             Parse::RecDescent::_tracefirst($text))
10550             if defined $::RD_TRACE;
10551 0         0 push @item, $item{__PATTERN1__}=$&;
10552              
10553              
10554              
10555 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TIME/i]<<},
10556             Parse::RecDescent::_tracefirst($text),
10557             q{sysibm_function},
10558             $tracelevel)
10559             if defined $::RD_TRACE;
10560 0         0 $_matched = 1;
10561 0         0 last;
10562             }
10563              
10564              
10565 0   0     0 while (!$_matched && !$commit)
10566             {
10567              
10568 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TIMESTAMP/i]},
10569             Parse::RecDescent::_tracefirst($_[1]),
10570             q{sysibm_function},
10571             $tracelevel)
10572             if defined $::RD_TRACE;
10573 0         0 my $thisprod = $thisrule->{"prods"}[77];
10574 0         0 $text = $_[1];
10575 0         0 my $_savetext;
10576 0         0 @item = (q{sysibm_function});
10577 0         0 %item = (__RULE__ => q{sysibm_function});
10578 0         0 my $repcount = 0;
10579              
10580              
10581 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TIMESTAMP/i]}, Parse::RecDescent::_tracefirst($text),
10582             q{sysibm_function},
10583             $tracelevel)
10584             if defined $::RD_TRACE;
10585 0         0 $lastsep = "";
10586 0         0 $expectation->is(q{})->at($text);
10587              
10588              
10589 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TIMESTAMP)//i)
  0 0       0  
10590             {
10591              
10592 0         0 $expectation->failed();
10593 0 0       0 Parse::RecDescent::_trace(q{<>},
10594             Parse::RecDescent::_tracefirst($text))
10595             if defined $::RD_TRACE;
10596              
10597 0         0 last;
10598             }
10599 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10600             . $& . q{])},
10601             Parse::RecDescent::_tracefirst($text))
10602             if defined $::RD_TRACE;
10603 0         0 push @item, $item{__PATTERN1__}=$&;
10604              
10605              
10606              
10607 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TIMESTAMP/i]<<},
10608             Parse::RecDescent::_tracefirst($text),
10609             q{sysibm_function},
10610             $tracelevel)
10611             if defined $::RD_TRACE;
10612 0         0 $_matched = 1;
10613 0         0 last;
10614             }
10615              
10616              
10617 0   0     0 while (!$_matched && !$commit)
10618             {
10619              
10620 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TRANSLATE/i]},
10621             Parse::RecDescent::_tracefirst($_[1]),
10622             q{sysibm_function},
10623             $tracelevel)
10624             if defined $::RD_TRACE;
10625 0         0 my $thisprod = $thisrule->{"prods"}[78];
10626 0         0 $text = $_[1];
10627 0         0 my $_savetext;
10628 0         0 @item = (q{sysibm_function});
10629 0         0 %item = (__RULE__ => q{sysibm_function});
10630 0         0 my $repcount = 0;
10631              
10632              
10633 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TRANSLATE/i]}, Parse::RecDescent::_tracefirst($text),
10634             q{sysibm_function},
10635             $tracelevel)
10636             if defined $::RD_TRACE;
10637 0         0 $lastsep = "";
10638 0         0 $expectation->is(q{})->at($text);
10639              
10640              
10641 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TRANSLATE)//i)
  0 0       0  
10642             {
10643              
10644 0         0 $expectation->failed();
10645 0 0       0 Parse::RecDescent::_trace(q{<>},
10646             Parse::RecDescent::_tracefirst($text))
10647             if defined $::RD_TRACE;
10648              
10649 0         0 last;
10650             }
10651 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10652             . $& . q{])},
10653             Parse::RecDescent::_tracefirst($text))
10654             if defined $::RD_TRACE;
10655 0         0 push @item, $item{__PATTERN1__}=$&;
10656              
10657              
10658              
10659 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TRANSLATE/i]<<},
10660             Parse::RecDescent::_tracefirst($text),
10661             q{sysibm_function},
10662             $tracelevel)
10663             if defined $::RD_TRACE;
10664 0         0 $_matched = 1;
10665 0         0 last;
10666             }
10667              
10668              
10669 0   0     0 while (!$_matched && !$commit)
10670             {
10671              
10672 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TYPE_ID/i]},
10673             Parse::RecDescent::_tracefirst($_[1]),
10674             q{sysibm_function},
10675             $tracelevel)
10676             if defined $::RD_TRACE;
10677 0         0 my $thisprod = $thisrule->{"prods"}[79];
10678 0         0 $text = $_[1];
10679 0         0 my $_savetext;
10680 0         0 @item = (q{sysibm_function});
10681 0         0 %item = (__RULE__ => q{sysibm_function});
10682 0         0 my $repcount = 0;
10683              
10684              
10685 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TYPE_ID/i]}, Parse::RecDescent::_tracefirst($text),
10686             q{sysibm_function},
10687             $tracelevel)
10688             if defined $::RD_TRACE;
10689 0         0 $lastsep = "";
10690 0         0 $expectation->is(q{})->at($text);
10691              
10692              
10693 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TYPE_ID)//i)
  0 0       0  
10694             {
10695              
10696 0         0 $expectation->failed();
10697 0 0       0 Parse::RecDescent::_trace(q{<>},
10698             Parse::RecDescent::_tracefirst($text))
10699             if defined $::RD_TRACE;
10700              
10701 0         0 last;
10702             }
10703 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10704             . $& . q{])},
10705             Parse::RecDescent::_tracefirst($text))
10706             if defined $::RD_TRACE;
10707 0         0 push @item, $item{__PATTERN1__}=$&;
10708              
10709              
10710              
10711 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TYPE_ID/i]<<},
10712             Parse::RecDescent::_tracefirst($text),
10713             q{sysibm_function},
10714             $tracelevel)
10715             if defined $::RD_TRACE;
10716 0         0 $_matched = 1;
10717 0         0 last;
10718             }
10719              
10720              
10721 0   0     0 while (!$_matched && !$commit)
10722             {
10723              
10724 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TYPE_NAME/i]},
10725             Parse::RecDescent::_tracefirst($_[1]),
10726             q{sysibm_function},
10727             $tracelevel)
10728             if defined $::RD_TRACE;
10729 0         0 my $thisprod = $thisrule->{"prods"}[80];
10730 0         0 $text = $_[1];
10731 0         0 my $_savetext;
10732 0         0 @item = (q{sysibm_function});
10733 0         0 %item = (__RULE__ => q{sysibm_function});
10734 0         0 my $repcount = 0;
10735              
10736              
10737 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TYPE_NAME/i]}, Parse::RecDescent::_tracefirst($text),
10738             q{sysibm_function},
10739             $tracelevel)
10740             if defined $::RD_TRACE;
10741 0         0 $lastsep = "";
10742 0         0 $expectation->is(q{})->at($text);
10743              
10744              
10745 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TYPE_NAME)//i)
  0 0       0  
10746             {
10747              
10748 0         0 $expectation->failed();
10749 0 0       0 Parse::RecDescent::_trace(q{<>},
10750             Parse::RecDescent::_tracefirst($text))
10751             if defined $::RD_TRACE;
10752              
10753 0         0 last;
10754             }
10755 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10756             . $& . q{])},
10757             Parse::RecDescent::_tracefirst($text))
10758             if defined $::RD_TRACE;
10759 0         0 push @item, $item{__PATTERN1__}=$&;
10760              
10761              
10762              
10763 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TYPE_NAME/i]<<},
10764             Parse::RecDescent::_tracefirst($text),
10765             q{sysibm_function},
10766             $tracelevel)
10767             if defined $::RD_TRACE;
10768 0         0 $_matched = 1;
10769 0         0 last;
10770             }
10771              
10772              
10773 0   0     0 while (!$_matched && !$commit)
10774             {
10775              
10776 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TYPE_SCHEMA/i]},
10777             Parse::RecDescent::_tracefirst($_[1]),
10778             q{sysibm_function},
10779             $tracelevel)
10780             if defined $::RD_TRACE;
10781 0         0 my $thisprod = $thisrule->{"prods"}[81];
10782 0         0 $text = $_[1];
10783 0         0 my $_savetext;
10784 0         0 @item = (q{sysibm_function});
10785 0         0 %item = (__RULE__ => q{sysibm_function});
10786 0         0 my $repcount = 0;
10787              
10788              
10789 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TYPE_SCHEMA/i]}, Parse::RecDescent::_tracefirst($text),
10790             q{sysibm_function},
10791             $tracelevel)
10792             if defined $::RD_TRACE;
10793 0         0 $lastsep = "";
10794 0         0 $expectation->is(q{})->at($text);
10795              
10796              
10797 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TYPE_SCHEMA)//i)
  0 0       0  
10798             {
10799              
10800 0         0 $expectation->failed();
10801 0 0       0 Parse::RecDescent::_trace(q{<>},
10802             Parse::RecDescent::_tracefirst($text))
10803             if defined $::RD_TRACE;
10804              
10805 0         0 last;
10806             }
10807 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10808             . $& . q{])},
10809             Parse::RecDescent::_tracefirst($text))
10810             if defined $::RD_TRACE;
10811 0         0 push @item, $item{__PATTERN1__}=$&;
10812              
10813              
10814              
10815 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TYPE_SCHEMA/i]<<},
10816             Parse::RecDescent::_tracefirst($text),
10817             q{sysibm_function},
10818             $tracelevel)
10819             if defined $::RD_TRACE;
10820 0         0 $_matched = 1;
10821 0         0 last;
10822             }
10823              
10824              
10825 0   0     0 while (!$_matched && !$commit)
10826             {
10827              
10828 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/UCASE/i, or /UPPER/i]},
10829             Parse::RecDescent::_tracefirst($_[1]),
10830             q{sysibm_function},
10831             $tracelevel)
10832             if defined $::RD_TRACE;
10833 0         0 my $thisprod = $thisrule->{"prods"}[82];
10834 0         0 $text = $_[1];
10835 0         0 my $_savetext;
10836 0         0 @item = (q{sysibm_function});
10837 0         0 %item = (__RULE__ => q{sysibm_function});
10838 0         0 my $repcount = 0;
10839              
10840              
10841 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_83_of_rule_sysibm_function]},
10842             Parse::RecDescent::_tracefirst($text),
10843             q{sysibm_function},
10844             $tracelevel)
10845             if defined $::RD_TRACE;
10846 1     1   20 if (1) { no strict qw{refs};
  1         3  
  1         1625  
  0         0  
10847 0         0 $expectation->is(q{})->at($text);
10848 0 0   0   0 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 })))
  0         0  
10849             {
10850              
10851 0 0       0 Parse::RecDescent::_trace(q{<>},
10852             Parse::RecDescent::_tracefirst($text),
10853             q{sysibm_function},
10854             $tracelevel)
10855             if defined $::RD_TRACE;
10856 0         0 $expectation->failed();
10857 0         0 last;
10858             }
10859 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_83_of_rule_sysibm_function]<< (return value: [}
10860             . $_tok . q{]},
10861              
10862             Parse::RecDescent::_tracefirst($text),
10863             q{sysibm_function},
10864             $tracelevel)
10865             if defined $::RD_TRACE;
10866 0         0 $item{q{_alternation_1_of_production_83_of_rule_sysibm_function}} = $_tok;
10867 0         0 push @item, $_tok;
10868              
10869             }
10870              
10871              
10872 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/UCASE/i, or /UPPER/i]<<},
10873             Parse::RecDescent::_tracefirst($text),
10874             q{sysibm_function},
10875             $tracelevel)
10876             if defined $::RD_TRACE;
10877 0         0 $_matched = 1;
10878 0         0 last;
10879             }
10880              
10881              
10882 0   0     0 while (!$_matched && !$commit)
10883             {
10884              
10885 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/VALUE/i]},
10886             Parse::RecDescent::_tracefirst($_[1]),
10887             q{sysibm_function},
10888             $tracelevel)
10889             if defined $::RD_TRACE;
10890 0         0 my $thisprod = $thisrule->{"prods"}[83];
10891 0         0 $text = $_[1];
10892 0         0 my $_savetext;
10893 0         0 @item = (q{sysibm_function});
10894 0         0 %item = (__RULE__ => q{sysibm_function});
10895 0         0 my $repcount = 0;
10896              
10897              
10898 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/VALUE/i]}, Parse::RecDescent::_tracefirst($text),
10899             q{sysibm_function},
10900             $tracelevel)
10901             if defined $::RD_TRACE;
10902 0         0 $lastsep = "";
10903 0         0 $expectation->is(q{})->at($text);
10904              
10905              
10906 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:VALUE)//i)
  0 0       0  
10907             {
10908              
10909 0         0 $expectation->failed();
10910 0 0       0 Parse::RecDescent::_trace(q{<>},
10911             Parse::RecDescent::_tracefirst($text))
10912             if defined $::RD_TRACE;
10913              
10914 0         0 last;
10915             }
10916 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10917             . $& . q{])},
10918             Parse::RecDescent::_tracefirst($text))
10919             if defined $::RD_TRACE;
10920 0         0 push @item, $item{__PATTERN1__}=$&;
10921              
10922              
10923              
10924 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/VALUE/i]<<},
10925             Parse::RecDescent::_tracefirst($text),
10926             q{sysibm_function},
10927             $tracelevel)
10928             if defined $::RD_TRACE;
10929 0         0 $_matched = 1;
10930 0         0 last;
10931             }
10932              
10933              
10934 0   0     0 while (!$_matched && !$commit)
10935             {
10936              
10937 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/VARCHAR/i]},
10938             Parse::RecDescent::_tracefirst($_[1]),
10939             q{sysibm_function},
10940             $tracelevel)
10941             if defined $::RD_TRACE;
10942 0         0 my $thisprod = $thisrule->{"prods"}[84];
10943 0         0 $text = $_[1];
10944 0         0 my $_savetext;
10945 0         0 @item = (q{sysibm_function});
10946 0         0 %item = (__RULE__ => q{sysibm_function});
10947 0         0 my $repcount = 0;
10948              
10949              
10950 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/VARCHAR/i]}, Parse::RecDescent::_tracefirst($text),
10951             q{sysibm_function},
10952             $tracelevel)
10953             if defined $::RD_TRACE;
10954 0         0 $lastsep = "";
10955 0         0 $expectation->is(q{})->at($text);
10956              
10957              
10958 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:VARCHAR)//i)
  0 0       0  
10959             {
10960              
10961 0         0 $expectation->failed();
10962 0 0       0 Parse::RecDescent::_trace(q{<>},
10963             Parse::RecDescent::_tracefirst($text))
10964             if defined $::RD_TRACE;
10965              
10966 0         0 last;
10967             }
10968 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10969             . $& . q{])},
10970             Parse::RecDescent::_tracefirst($text))
10971             if defined $::RD_TRACE;
10972 0         0 push @item, $item{__PATTERN1__}=$&;
10973              
10974              
10975              
10976 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/VARCHAR/i]<<},
10977             Parse::RecDescent::_tracefirst($text),
10978             q{sysibm_function},
10979             $tracelevel)
10980             if defined $::RD_TRACE;
10981 0         0 $_matched = 1;
10982 0         0 last;
10983             }
10984              
10985              
10986 0   0     0 while (!$_matched && !$commit)
10987             {
10988              
10989 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/VARGRAPHIC/i]},
10990             Parse::RecDescent::_tracefirst($_[1]),
10991             q{sysibm_function},
10992             $tracelevel)
10993             if defined $::RD_TRACE;
10994 0         0 my $thisprod = $thisrule->{"prods"}[85];
10995 0         0 $text = $_[1];
10996 0         0 my $_savetext;
10997 0         0 @item = (q{sysibm_function});
10998 0         0 %item = (__RULE__ => q{sysibm_function});
10999 0         0 my $repcount = 0;
11000              
11001              
11002 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/VARGRAPHIC/i]}, Parse::RecDescent::_tracefirst($text),
11003             q{sysibm_function},
11004             $tracelevel)
11005             if defined $::RD_TRACE;
11006 0         0 $lastsep = "";
11007 0         0 $expectation->is(q{})->at($text);
11008              
11009              
11010 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:VARGRAPHIC)//i)
  0 0       0  
11011             {
11012              
11013 0         0 $expectation->failed();
11014 0 0       0 Parse::RecDescent::_trace(q{<>},
11015             Parse::RecDescent::_tracefirst($text))
11016             if defined $::RD_TRACE;
11017              
11018 0         0 last;
11019             }
11020 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11021             . $& . q{])},
11022             Parse::RecDescent::_tracefirst($text))
11023             if defined $::RD_TRACE;
11024 0         0 push @item, $item{__PATTERN1__}=$&;
11025              
11026              
11027              
11028 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/VARGRAPHIC/i]<<},
11029             Parse::RecDescent::_tracefirst($text),
11030             q{sysibm_function},
11031             $tracelevel)
11032             if defined $::RD_TRACE;
11033 0         0 $_matched = 1;
11034 0         0 last;
11035             }
11036              
11037              
11038 0   0     0 while (!$_matched && !$commit)
11039             {
11040              
11041 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/VARIANCE/i, or /VAR/i]},
11042             Parse::RecDescent::_tracefirst($_[1]),
11043             q{sysibm_function},
11044             $tracelevel)
11045             if defined $::RD_TRACE;
11046 0         0 my $thisprod = $thisrule->{"prods"}[86];
11047 0         0 $text = $_[1];
11048 0         0 my $_savetext;
11049 0         0 @item = (q{sysibm_function});
11050 0         0 %item = (__RULE__ => q{sysibm_function});
11051 0         0 my $repcount = 0;
11052              
11053              
11054 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_87_of_rule_sysibm_function]},
11055             Parse::RecDescent::_tracefirst($text),
11056             q{sysibm_function},
11057             $tracelevel)
11058             if defined $::RD_TRACE;
11059 1     1   8 if (1) { no strict qw{refs};
  1         3  
  1         2173  
  0         0  
11060 0         0 $expectation->is(q{})->at($text);
11061 0 0   0   0 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 })))
  0         0  
11062             {
11063              
11064 0 0       0 Parse::RecDescent::_trace(q{<>},
11065             Parse::RecDescent::_tracefirst($text),
11066             q{sysibm_function},
11067             $tracelevel)
11068             if defined $::RD_TRACE;
11069 0         0 $expectation->failed();
11070 0         0 last;
11071             }
11072 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_87_of_rule_sysibm_function]<< (return value: [}
11073             . $_tok . q{]},
11074              
11075             Parse::RecDescent::_tracefirst($text),
11076             q{sysibm_function},
11077             $tracelevel)
11078             if defined $::RD_TRACE;
11079 0         0 $item{q{_alternation_1_of_production_87_of_rule_sysibm_function}} = $_tok;
11080 0         0 push @item, $_tok;
11081              
11082             }
11083              
11084              
11085 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/VARIANCE/i, or /VAR/i]<<},
11086             Parse::RecDescent::_tracefirst($text),
11087             q{sysibm_function},
11088             $tracelevel)
11089             if defined $::RD_TRACE;
11090 0         0 $_matched = 1;
11091 0         0 last;
11092             }
11093              
11094              
11095 0   0     0 while (!$_matched && !$commit)
11096             {
11097              
11098 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/YEAR/i]},
11099             Parse::RecDescent::_tracefirst($_[1]),
11100             q{sysibm_function},
11101             $tracelevel)
11102             if defined $::RD_TRACE;
11103 0         0 my $thisprod = $thisrule->{"prods"}[87];
11104 0         0 $text = $_[1];
11105 0         0 my $_savetext;
11106 0         0 @item = (q{sysibm_function});
11107 0         0 %item = (__RULE__ => q{sysibm_function});
11108 0         0 my $repcount = 0;
11109              
11110              
11111 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/YEAR/i]}, Parse::RecDescent::_tracefirst($text),
11112             q{sysibm_function},
11113             $tracelevel)
11114             if defined $::RD_TRACE;
11115 0         0 $lastsep = "";
11116 0         0 $expectation->is(q{})->at($text);
11117              
11118              
11119 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:YEAR)//i)
  0 0       0  
11120             {
11121              
11122 0         0 $expectation->failed();
11123 0 0       0 Parse::RecDescent::_trace(q{<>},
11124             Parse::RecDescent::_tracefirst($text))
11125             if defined $::RD_TRACE;
11126              
11127 0         0 last;
11128             }
11129 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11130             . $& . q{])},
11131             Parse::RecDescent::_tracefirst($text))
11132             if defined $::RD_TRACE;
11133 0         0 push @item, $item{__PATTERN1__}=$&;
11134              
11135              
11136              
11137 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/YEAR/i]<<},
11138             Parse::RecDescent::_tracefirst($text),
11139             q{sysibm_function},
11140             $tracelevel)
11141             if defined $::RD_TRACE;
11142 0         0 $_matched = 1;
11143 0         0 last;
11144             }
11145              
11146              
11147 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
11148             {
11149              
11150              
11151 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
11152 0 0       0 Parse::RecDescent::_trace(q{<>},
11153             Parse::RecDescent::_tracefirst($_[1]),
11154             q{sysibm_function},
11155             $tracelevel)
11156             if defined $::RD_TRACE;
11157 0         0 return undef;
11158             }
11159 0 0 0     0 if (!defined($return) && defined($score))
11160             {
11161 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11162             q{sysibm_function},
11163             $tracelevel)
11164             if defined $::RD_TRACE;
11165 0         0 $return = $score_return;
11166             }
11167 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
11168 0 0       0 $return = $item[$#item] unless defined $return;
11169 0 0       0 if (defined $::RD_TRACE)
11170             {
11171 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11172             $return . q{])}, "",
11173             q{sysibm_function},
11174             $tracelevel);
11175 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
11176             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11177             Parse::RecDescent::_tracefirst($text),
11178             , q{sysibm_function},
11179             $tracelevel)
11180             }
11181 0         0 $_[1] = $text;
11182 0         0 return $return;
11183             }
11184              
11185             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11186             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause
11187             {
11188 0     0   0 my $thisparser = $_[0];
11189 1     1   12 use vars q{$tracelevel};
  1         2  
  1         512  
11190 0   0     0 local $tracelevel = ($tracelevel||0)+1;
11191 0         0 $ERRORS = 0;
11192 0         0 my $thisrule = $thisparser->{"rules"}{"window_partition_clause"};
11193              
11194 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [window_partition_clause]},
11195             Parse::RecDescent::_tracefirst($_[1]),
11196             q{window_partition_clause},
11197             $tracelevel)
11198             if defined $::RD_TRACE;
11199              
11200              
11201 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
11202              
11203 0         0 my $score;
11204             my $score_return;
11205 0         0 my $_tok;
11206 0         0 my $return = undef;
11207 0         0 my $_matched=0;
11208 0         0 my $commit=0;
11209 0         0 my @item = ();
11210 0         0 my %item = ();
11211 0   0     0 my $repeating = defined($_[2]) && $_[2];
11212 0   0     0 my $_noactions = defined($_[3]) && $_[3];
11213 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
11214 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11215 0         0 my $text;
11216 0         0 my $lastsep="";
11217 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11218 0         0 $expectation->at($_[1]);
11219              
11220 0         0 my $thisline;
11221 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11222              
11223              
11224              
11225 0   0     0 while (!$_matched && !$commit)
11226             {
11227              
11228 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/PARTITION\\s+BY/i ]},
11229             Parse::RecDescent::_tracefirst($_[1]),
11230             q{window_partition_clause},
11231             $tracelevel)
11232             if defined $::RD_TRACE;
11233 0         0 my $thisprod = $thisrule->{"prods"}[0];
11234 0         0 $text = $_[1];
11235 0         0 my $_savetext;
11236 0         0 @item = (q{window_partition_clause});
11237 0         0 %item = (__RULE__ => q{window_partition_clause});
11238 0         0 my $repcount = 0;
11239              
11240              
11241 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/PARTITION\\s+BY/i]}, Parse::RecDescent::_tracefirst($text),
11242             q{window_partition_clause},
11243             $tracelevel)
11244             if defined $::RD_TRACE;
11245 0         0 $lastsep = "";
11246 0         0 $expectation->is(q{})->at($text);
11247              
11248              
11249 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:PARTITION\s+BY)//i)
  0 0       0  
11250             {
11251              
11252 0         0 $expectation->failed();
11253 0 0       0 Parse::RecDescent::_trace(q{<>},
11254             Parse::RecDescent::_tracefirst($text))
11255             if defined $::RD_TRACE;
11256              
11257 0         0 last;
11258             }
11259 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11260             . $& . q{])},
11261             Parse::RecDescent::_tracefirst($text))
11262             if defined $::RD_TRACE;
11263 0         0 push @item, $item{__PATTERN1__}=$&;
11264              
11265              
11266 0 0       0 Parse::RecDescent::_trace(q{Trying operator: []},
11267             Parse::RecDescent::_tracefirst($text),
11268             q{window_partition_clause},
11269             $tracelevel)
11270             if defined $::RD_TRACE;
11271 0         0 $expectation->is(q{})->at($text);
11272              
11273 0         0 $_tok = undef;
11274 0         0 OPLOOP: while (1)
11275             {
11276 0         0 $repcount = 0;
11277 0         0 my @item;
11278              
11279             # MATCH LEFTARG
11280              
11281 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [partitioning_expression]},
11282             Parse::RecDescent::_tracefirst($text),
11283             q{window_partition_clause},
11284             $tracelevel)
11285             if defined $::RD_TRACE;
11286 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         298  
  0         0  
11287 0         0 $expectation->is(q{partitioning_expression})->at($text);
11288 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::partitioning_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
11289             {
11290              
11291 0 0       0 Parse::RecDescent::_trace(q{<>},
11292             Parse::RecDescent::_tracefirst($text),
11293             q{window_partition_clause},
11294             $tracelevel)
11295             if defined $::RD_TRACE;
11296 0         0 $expectation->failed();
11297 0         0 last;
11298             }
11299 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [partitioning_expression]<< (return value: [}
11300             . $_tok . q{]},
11301              
11302             Parse::RecDescent::_tracefirst($text),
11303             q{window_partition_clause},
11304             $tracelevel)
11305             if defined $::RD_TRACE;
11306 0         0 $item{q{partitioning_expression}} = $_tok;
11307 0         0 push @item, $_tok;
11308              
11309             }
11310              
11311              
11312 0         0 $repcount++;
11313              
11314 0         0 my $savetext = $text;
11315 0         0 my $backtrack;
11316              
11317             # MATCH (OP RIGHTARG)(s)
11318 0         0 while ($repcount < 100000000)
11319             {
11320 0         0 $backtrack = 0;
11321              
11322 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
11323             q{window_partition_clause},
11324             $tracelevel)
11325             if defined $::RD_TRACE;
11326 0         0 $lastsep = "";
11327 0         0 $expectation->is(q{/,/})->at($text);
11328              
11329              
11330 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//)
  0 0       0  
11331             {
11332              
11333 0         0 $expectation->failed();
11334 0 0       0 Parse::RecDescent::_trace(q{<>},
11335             Parse::RecDescent::_tracefirst($text))
11336             if defined $::RD_TRACE;
11337              
11338 0         0 last;
11339             }
11340 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11341             . $& . q{])},
11342             Parse::RecDescent::_tracefirst($text))
11343             if defined $::RD_TRACE;
11344 0         0 push @item, $item{__PATTERN2__}=$&;
11345              
11346              
11347 0         0 pop @item;
11348 0 0       0 if (defined $1) {push @item, $item{'partitioning_expression(s)'}=$1; $backtrack=1;}
  0         0  
  0         0  
11349              
11350 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [partitioning_expression]},
11351             Parse::RecDescent::_tracefirst($text),
11352             q{window_partition_clause},
11353             $tracelevel)
11354             if defined $::RD_TRACE;
11355 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         829  
  0         0  
11356 0         0 $expectation->is(q{partitioning_expression})->at($text);
11357 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::partitioning_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
11358             {
11359              
11360 0 0       0 Parse::RecDescent::_trace(q{<>},
11361             Parse::RecDescent::_tracefirst($text),
11362             q{window_partition_clause},
11363             $tracelevel)
11364             if defined $::RD_TRACE;
11365 0         0 $expectation->failed();
11366 0         0 last;
11367             }
11368 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [partitioning_expression]<< (return value: [}
11369             . $_tok . q{]},
11370              
11371             Parse::RecDescent::_tracefirst($text),
11372             q{window_partition_clause},
11373             $tracelevel)
11374             if defined $::RD_TRACE;
11375 0         0 $item{q{partitioning_expression}} = $_tok;
11376 0         0 push @item, $_tok;
11377              
11378             }
11379              
11380 0         0 $savetext = $text;
11381 0         0 $repcount++;
11382             }
11383 0         0 $text = $savetext;
11384 0 0       0 pop @item if $backtrack;
11385              
11386 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
11387 0         0 $_tok = [ @item ];
11388 0         0 last;
11389             }
11390              
11391 0 0       0 unless ($repcount>=1)
11392             {
11393 0 0       0 Parse::RecDescent::_trace(q{<]>>},
11394             Parse::RecDescent::_tracefirst($text),
11395             q{window_partition_clause},
11396             $tracelevel)
11397             if defined $::RD_TRACE;
11398 0         0 $expectation->failed();
11399 0         0 last;
11400             }
11401 0 0       0 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
11402 0 0       0 . qq{@{$_tok||[]}} . q{]},
11403             Parse::RecDescent::_tracefirst($text),
11404             q{window_partition_clause},
11405             $tracelevel)
11406             if defined $::RD_TRACE;
11407              
11408 0   0     0 push @item, $item{'partitioning_expression(s)'}=$_tok||[];
11409              
11410              
11411              
11412 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/PARTITION\\s+BY/i ]<<},
11413             Parse::RecDescent::_tracefirst($text),
11414             q{window_partition_clause},
11415             $tracelevel)
11416             if defined $::RD_TRACE;
11417 0         0 $_matched = 1;
11418 0         0 last;
11419             }
11420              
11421              
11422 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
11423             {
11424              
11425              
11426 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
11427 0 0       0 Parse::RecDescent::_trace(q{<>},
11428             Parse::RecDescent::_tracefirst($_[1]),
11429             q{window_partition_clause},
11430             $tracelevel)
11431             if defined $::RD_TRACE;
11432 0         0 return undef;
11433             }
11434 0 0 0     0 if (!defined($return) && defined($score))
11435             {
11436 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11437             q{window_partition_clause},
11438             $tracelevel)
11439             if defined $::RD_TRACE;
11440 0         0 $return = $score_return;
11441             }
11442 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
11443 0 0       0 $return = $item[$#item] unless defined $return;
11444 0 0       0 if (defined $::RD_TRACE)
11445             {
11446 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11447             $return . q{])}, "",
11448             q{window_partition_clause},
11449             $tracelevel);
11450 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
11451             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11452             Parse::RecDescent::_tracefirst($text),
11453             , q{window_partition_clause},
11454             $tracelevel)
11455             }
11456 0         0 $_[1] = $text;
11457 0         0 return $return;
11458             }
11459              
11460             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11461             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::WHERE
11462             {
11463 0     0   0 my $thisparser = $_[0];
11464 1     1   7 use vars q{$tracelevel};
  1         2  
  1         597  
11465 0   0     0 local $tracelevel = ($tracelevel||0)+1;
11466 0         0 $ERRORS = 0;
11467 0         0 my $thisrule = $thisparser->{"rules"}{"WHERE"};
11468              
11469 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [WHERE]},
11470             Parse::RecDescent::_tracefirst($_[1]),
11471             q{WHERE},
11472             $tracelevel)
11473             if defined $::RD_TRACE;
11474              
11475              
11476 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
11477              
11478 0         0 my $score;
11479             my $score_return;
11480 0         0 my $_tok;
11481 0         0 my $return = undef;
11482 0         0 my $_matched=0;
11483 0         0 my $commit=0;
11484 0         0 my @item = ();
11485 0         0 my %item = ();
11486 0   0     0 my $repeating = defined($_[2]) && $_[2];
11487 0   0     0 my $_noactions = defined($_[3]) && $_[3];
11488 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
11489 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11490 0         0 my $text;
11491 0         0 my $lastsep="";
11492 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11493 0         0 $expectation->at($_[1]);
11494              
11495 0         0 my $thisline;
11496 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11497              
11498              
11499              
11500 0   0     0 while (!$_matched && !$commit)
11501             {
11502              
11503 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/where/i]},
11504             Parse::RecDescent::_tracefirst($_[1]),
11505             q{WHERE},
11506             $tracelevel)
11507             if defined $::RD_TRACE;
11508 0         0 my $thisprod = $thisrule->{"prods"}[0];
11509 0         0 $text = $_[1];
11510 0         0 my $_savetext;
11511 0         0 @item = (q{WHERE});
11512 0         0 %item = (__RULE__ => q{WHERE});
11513 0         0 my $repcount = 0;
11514              
11515              
11516 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/where/i]}, Parse::RecDescent::_tracefirst($text),
11517             q{WHERE},
11518             $tracelevel)
11519             if defined $::RD_TRACE;
11520 0         0 $lastsep = "";
11521 0         0 $expectation->is(q{})->at($text);
11522              
11523              
11524 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:where)//i)
  0 0       0  
11525             {
11526              
11527 0         0 $expectation->failed();
11528 0 0       0 Parse::RecDescent::_trace(q{<>},
11529             Parse::RecDescent::_tracefirst($text))
11530             if defined $::RD_TRACE;
11531              
11532 0         0 last;
11533             }
11534 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11535             . $& . q{])},
11536             Parse::RecDescent::_tracefirst($text))
11537             if defined $::RD_TRACE;
11538 0         0 push @item, $item{__PATTERN1__}=$&;
11539              
11540              
11541              
11542 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/where/i]<<},
11543             Parse::RecDescent::_tracefirst($text),
11544             q{WHERE},
11545             $tracelevel)
11546             if defined $::RD_TRACE;
11547 0         0 $_matched = 1;
11548 0         0 last;
11549             }
11550              
11551              
11552 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
11553             {
11554              
11555              
11556 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
11557 0 0       0 Parse::RecDescent::_trace(q{<>},
11558             Parse::RecDescent::_tracefirst($_[1]),
11559             q{WHERE},
11560             $tracelevel)
11561             if defined $::RD_TRACE;
11562 0         0 return undef;
11563             }
11564 0 0 0     0 if (!defined($return) && defined($score))
11565             {
11566 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11567             q{WHERE},
11568             $tracelevel)
11569             if defined $::RD_TRACE;
11570 0         0 $return = $score_return;
11571             }
11572 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
11573 0 0       0 $return = $item[$#item] unless defined $return;
11574 0 0       0 if (defined $::RD_TRACE)
11575             {
11576 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11577             $return . q{])}, "",
11578             q{WHERE},
11579             $tracelevel);
11580 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
11581             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11582             Parse::RecDescent::_tracefirst($text),
11583             , q{WHERE},
11584             $tracelevel)
11585             }
11586 0         0 $_[1] = $text;
11587 0         0 return $return;
11588             }
11589              
11590             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11591             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE
11592             {
11593 3     3   6 my $thisparser = $_[0];
11594 1     1   10 use vars q{$tracelevel};
  1         2  
  1         613  
11595 3   50     8 local $tracelevel = ($tracelevel||0)+1;
11596 3         5 $ERRORS = 0;
11597 3         5 my $thisrule = $thisparser->{"rules"}{"CREATE"};
11598              
11599 3 50       9 Parse::RecDescent::_trace(q{Trying rule: [CREATE]},
11600             Parse::RecDescent::_tracefirst($_[1]),
11601             q{CREATE},
11602             $tracelevel)
11603             if defined $::RD_TRACE;
11604              
11605              
11606 3         4 my $err_at = @{$thisparser->{errors}};
  3         6  
11607              
11608 3         8 my $score;
11609             my $score_return;
11610 3         0 my $_tok;
11611 3         4 my $return = undef;
11612 3         4 my $_matched=0;
11613 3         5 my $commit=0;
11614 3         5 my @item = ();
11615 3         9 my %item = ();
11616 3   33     13 my $repeating = defined($_[2]) && $_[2];
11617 3   33     10 my $_noactions = defined($_[3]) && $_[3];
11618 3 50       8 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  3         9  
  3         7  
11619 3 50       8 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11620 3         19 my $text;
11621 3         5 my $lastsep="";
11622 3         11 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11623 3         88 $expectation->at($_[1]);
11624              
11625 3         11 my $thisline;
11626 3         10 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11627              
11628              
11629              
11630 3   33     24 while (!$_matched && !$commit)
11631             {
11632              
11633 3 50       7 Parse::RecDescent::_trace(q{Trying production: [/create/i]},
11634             Parse::RecDescent::_tracefirst($_[1]),
11635             q{CREATE},
11636             $tracelevel)
11637             if defined $::RD_TRACE;
11638 3         6 my $thisprod = $thisrule->{"prods"}[0];
11639 3         6 $text = $_[1];
11640 3         3 my $_savetext;
11641 3         7 @item = (q{CREATE});
11642 3         6 %item = (__RULE__ => q{CREATE});
11643 3         6 my $repcount = 0;
11644              
11645              
11646 3 50       5 Parse::RecDescent::_trace(q{Trying terminal: [/create/i]}, Parse::RecDescent::_tracefirst($text),
11647             q{CREATE},
11648             $tracelevel)
11649             if defined $::RD_TRACE;
11650 3         6 $lastsep = "";
11651 3         7 $expectation->is(q{})->at($text);
11652              
11653              
11654 3 50 33     40 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:create)//i)
  3 50       44  
11655             {
11656              
11657 3         9 $expectation->failed();
11658 3 50       14 Parse::RecDescent::_trace(q{<>},
11659             Parse::RecDescent::_tracefirst($text))
11660             if defined $::RD_TRACE;
11661              
11662 3         6 last;
11663             }
11664 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11665             . $& . q{])},
11666             Parse::RecDescent::_tracefirst($text))
11667             if defined $::RD_TRACE;
11668 0         0 push @item, $item{__PATTERN1__}=$&;
11669              
11670              
11671              
11672 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/create/i]<<},
11673             Parse::RecDescent::_tracefirst($text),
11674             q{CREATE},
11675             $tracelevel)
11676             if defined $::RD_TRACE;
11677 0         0 $_matched = 1;
11678 0         0 last;
11679             }
11680              
11681              
11682 3 50 33     17 unless ( $_matched || defined($return) || defined($score) )
      33        
11683             {
11684              
11685              
11686 3         7 $_[1] = $text; # NOT SURE THIS IS NEEDED
11687 3 50       6 Parse::RecDescent::_trace(q{<>},
11688             Parse::RecDescent::_tracefirst($_[1]),
11689             q{CREATE},
11690             $tracelevel)
11691             if defined $::RD_TRACE;
11692 3         21 return undef;
11693             }
11694 0 0 0     0 if (!defined($return) && defined($score))
11695             {
11696 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11697             q{CREATE},
11698             $tracelevel)
11699             if defined $::RD_TRACE;
11700 0         0 $return = $score_return;
11701             }
11702 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
11703 0 0       0 $return = $item[$#item] unless defined $return;
11704 0 0       0 if (defined $::RD_TRACE)
11705             {
11706 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11707             $return . q{])}, "",
11708             q{CREATE},
11709             $tracelevel);
11710 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
11711             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11712             Parse::RecDescent::_tracefirst($text),
11713             , q{CREATE},
11714             $tracelevel)
11715             }
11716 0         0 $_[1] = $text;
11717 0         0 return $return;
11718             }
11719              
11720             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11721             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysfun
11722             {
11723 0     0   0 my $thisparser = $_[0];
11724 1     1   10 use vars q{$tracelevel};
  1         3  
  1         810  
11725 0   0     0 local $tracelevel = ($tracelevel||0)+1;
11726 0         0 $ERRORS = 0;
11727 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_sysfun"};
11728              
11729 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_sysfun]},
11730             Parse::RecDescent::_tracefirst($_[1]),
11731             q{_alternation_1_of_production_1_of_rule_sysfun},
11732             $tracelevel)
11733             if defined $::RD_TRACE;
11734              
11735              
11736 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
11737              
11738 0         0 my $score;
11739             my $score_return;
11740 0         0 my $_tok;
11741 0         0 my $return = undef;
11742 0         0 my $_matched=0;
11743 0         0 my $commit=0;
11744 0         0 my @item = ();
11745 0         0 my %item = ();
11746 0   0     0 my $repeating = defined($_[2]) && $_[2];
11747 0   0     0 my $_noactions = defined($_[3]) && $_[3];
11748 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
11749 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11750 0         0 my $text;
11751 0         0 my $lastsep="";
11752 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11753 0         0 $expectation->at($_[1]);
11754              
11755 0         0 my $thisline;
11756 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11757              
11758              
11759              
11760 0   0     0 while (!$_matched && !$commit)
11761             {
11762              
11763 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ABS/i]},
11764             Parse::RecDescent::_tracefirst($_[1]),
11765             q{_alternation_1_of_production_1_of_rule_sysfun},
11766             $tracelevel)
11767             if defined $::RD_TRACE;
11768 0         0 my $thisprod = $thisrule->{"prods"}[0];
11769 0         0 $text = $_[1];
11770 0         0 my $_savetext;
11771 0         0 @item = (q{_alternation_1_of_production_1_of_rule_sysfun});
11772 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysfun});
11773 0         0 my $repcount = 0;
11774              
11775              
11776 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ABS/i]}, Parse::RecDescent::_tracefirst($text),
11777             q{_alternation_1_of_production_1_of_rule_sysfun},
11778             $tracelevel)
11779             if defined $::RD_TRACE;
11780 0         0 $lastsep = "";
11781 0         0 $expectation->is(q{})->at($text);
11782              
11783              
11784 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ABS)//i)
  0 0       0  
11785             {
11786              
11787 0         0 $expectation->failed();
11788 0 0       0 Parse::RecDescent::_trace(q{<>},
11789             Parse::RecDescent::_tracefirst($text))
11790             if defined $::RD_TRACE;
11791              
11792 0         0 last;
11793             }
11794 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11795             . $& . q{])},
11796             Parse::RecDescent::_tracefirst($text))
11797             if defined $::RD_TRACE;
11798 0         0 push @item, $item{__PATTERN1__}=$&;
11799              
11800              
11801              
11802 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i]<<},
11803             Parse::RecDescent::_tracefirst($text),
11804             q{_alternation_1_of_production_1_of_rule_sysfun},
11805             $tracelevel)
11806             if defined $::RD_TRACE;
11807 0         0 $_matched = 1;
11808 0         0 last;
11809             }
11810              
11811              
11812 0   0     0 while (!$_matched && !$commit)
11813             {
11814              
11815 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ABSVAL/i]},
11816             Parse::RecDescent::_tracefirst($_[1]),
11817             q{_alternation_1_of_production_1_of_rule_sysfun},
11818             $tracelevel)
11819             if defined $::RD_TRACE;
11820 0         0 my $thisprod = $thisrule->{"prods"}[1];
11821 0         0 $text = $_[1];
11822 0         0 my $_savetext;
11823 0         0 @item = (q{_alternation_1_of_production_1_of_rule_sysfun});
11824 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysfun});
11825 0         0 my $repcount = 0;
11826              
11827              
11828 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ABSVAL/i]}, Parse::RecDescent::_tracefirst($text),
11829             q{_alternation_1_of_production_1_of_rule_sysfun},
11830             $tracelevel)
11831             if defined $::RD_TRACE;
11832 0         0 $lastsep = "";
11833 0         0 $expectation->is(q{})->at($text);
11834              
11835              
11836 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ABSVAL)//i)
  0 0       0  
11837             {
11838              
11839 0         0 $expectation->failed();
11840 0 0       0 Parse::RecDescent::_trace(q{<>},
11841             Parse::RecDescent::_tracefirst($text))
11842             if defined $::RD_TRACE;
11843              
11844 0         0 last;
11845             }
11846 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11847             . $& . q{])},
11848             Parse::RecDescent::_tracefirst($text))
11849             if defined $::RD_TRACE;
11850 0         0 push @item, $item{__PATTERN1__}=$&;
11851              
11852              
11853              
11854 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ABSVAL/i]<<},
11855             Parse::RecDescent::_tracefirst($text),
11856             q{_alternation_1_of_production_1_of_rule_sysfun},
11857             $tracelevel)
11858             if defined $::RD_TRACE;
11859 0         0 $_matched = 1;
11860 0         0 last;
11861             }
11862              
11863              
11864 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
11865             {
11866              
11867              
11868 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
11869 0 0       0 Parse::RecDescent::_trace(q{<>},
11870             Parse::RecDescent::_tracefirst($_[1]),
11871             q{_alternation_1_of_production_1_of_rule_sysfun},
11872             $tracelevel)
11873             if defined $::RD_TRACE;
11874 0         0 return undef;
11875             }
11876 0 0 0     0 if (!defined($return) && defined($score))
11877             {
11878 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11879             q{_alternation_1_of_production_1_of_rule_sysfun},
11880             $tracelevel)
11881             if defined $::RD_TRACE;
11882 0         0 $return = $score_return;
11883             }
11884 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
11885 0 0       0 $return = $item[$#item] unless defined $return;
11886 0 0       0 if (defined $::RD_TRACE)
11887             {
11888 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11889             $return . q{])}, "",
11890             q{_alternation_1_of_production_1_of_rule_sysfun},
11891             $tracelevel);
11892 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
11893             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11894             Parse::RecDescent::_tracefirst($text),
11895             , q{_alternation_1_of_production_1_of_rule_sysfun},
11896             $tracelevel)
11897             }
11898 0         0 $_[1] = $text;
11899 0         0 return $return;
11900             }
11901              
11902             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11903             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_function
11904             {
11905 0     0   0 my $thisparser = $_[0];
11906 1     1   8 use vars q{$tracelevel};
  1         2  
  1         403  
11907 0   0     0 local $tracelevel = ($tracelevel||0)+1;
11908 0         0 $ERRORS = 0;
11909 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_function"};
11910              
11911 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_function]},
11912             Parse::RecDescent::_tracefirst($_[1]),
11913             q{_alternation_1_of_production_1_of_rule_function},
11914             $tracelevel)
11915             if defined $::RD_TRACE;
11916              
11917              
11918 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
11919              
11920 0         0 my $score;
11921             my $score_return;
11922 0         0 my $_tok;
11923 0         0 my $return = undef;
11924 0         0 my $_matched=0;
11925 0         0 my $commit=0;
11926 0         0 my @item = ();
11927 0         0 my %item = ();
11928 0   0     0 my $repeating = defined($_[2]) && $_[2];
11929 0   0     0 my $_noactions = defined($_[3]) && $_[3];
11930 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
11931 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11932 0         0 my $text;
11933 0         0 my $lastsep="";
11934 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11935 0         0 $expectation->at($_[1]);
11936              
11937 0         0 my $thisline;
11938 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11939              
11940              
11941              
11942 0   0     0 while (!$_matched && !$commit)
11943             {
11944              
11945 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SYSIBM\\.|/i sysibm_function]},
11946             Parse::RecDescent::_tracefirst($_[1]),
11947             q{_alternation_1_of_production_1_of_rule_function},
11948             $tracelevel)
11949             if defined $::RD_TRACE;
11950 0         0 my $thisprod = $thisrule->{"prods"}[0];
11951 0         0 $text = $_[1];
11952 0         0 my $_savetext;
11953 0         0 @item = (q{_alternation_1_of_production_1_of_rule_function});
11954 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
11955 0         0 my $repcount = 0;
11956              
11957              
11958 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SYSIBM\\.|/i]}, Parse::RecDescent::_tracefirst($text),
11959             q{_alternation_1_of_production_1_of_rule_function},
11960             $tracelevel)
11961             if defined $::RD_TRACE;
11962 0         0 $lastsep = "";
11963 0         0 $expectation->is(q{})->at($text);
11964              
11965              
11966 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SYSIBM\.|)//i)
  0 0       0  
11967             {
11968              
11969 0         0 $expectation->failed();
11970 0 0       0 Parse::RecDescent::_trace(q{<>},
11971             Parse::RecDescent::_tracefirst($text))
11972             if defined $::RD_TRACE;
11973              
11974 0         0 last;
11975             }
11976 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11977             . $& . q{])},
11978             Parse::RecDescent::_tracefirst($text))
11979             if defined $::RD_TRACE;
11980 0         0 push @item, $item{__PATTERN1__}=$&;
11981              
11982              
11983 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [sysibm_function]},
11984             Parse::RecDescent::_tracefirst($text),
11985             q{_alternation_1_of_production_1_of_rule_function},
11986             $tracelevel)
11987             if defined $::RD_TRACE;
11988 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         397  
  0         0  
11989 0         0 $expectation->is(q{sysibm_function})->at($text);
11990 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
11991             {
11992              
11993 0 0       0 Parse::RecDescent::_trace(q{<>},
11994             Parse::RecDescent::_tracefirst($text),
11995             q{_alternation_1_of_production_1_of_rule_function},
11996             $tracelevel)
11997             if defined $::RD_TRACE;
11998 0         0 $expectation->failed();
11999 0         0 last;
12000             }
12001 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [sysibm_function]<< (return value: [}
12002             . $_tok . q{]},
12003              
12004             Parse::RecDescent::_tracefirst($text),
12005             q{_alternation_1_of_production_1_of_rule_function},
12006             $tracelevel)
12007             if defined $::RD_TRACE;
12008 0         0 $item{q{sysibm_function}} = $_tok;
12009 0         0 push @item, $_tok;
12010              
12011             }
12012              
12013              
12014 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SYSIBM\\.|/i sysibm_function]<<},
12015             Parse::RecDescent::_tracefirst($text),
12016             q{_alternation_1_of_production_1_of_rule_function},
12017             $tracelevel)
12018             if defined $::RD_TRACE;
12019 0         0 $_matched = 1;
12020 0         0 last;
12021             }
12022              
12023              
12024 0   0     0 while (!$_matched && !$commit)
12025             {
12026              
12027 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SYSFUN\\.|/i sysfun_function]},
12028             Parse::RecDescent::_tracefirst($_[1]),
12029             q{_alternation_1_of_production_1_of_rule_function},
12030             $tracelevel)
12031             if defined $::RD_TRACE;
12032 0         0 my $thisprod = $thisrule->{"prods"}[1];
12033 0         0 $text = $_[1];
12034 0         0 my $_savetext;
12035 0         0 @item = (q{_alternation_1_of_production_1_of_rule_function});
12036 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
12037 0         0 my $repcount = 0;
12038              
12039              
12040 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SYSFUN\\.|/i]}, Parse::RecDescent::_tracefirst($text),
12041             q{_alternation_1_of_production_1_of_rule_function},
12042             $tracelevel)
12043             if defined $::RD_TRACE;
12044 0         0 $lastsep = "";
12045 0         0 $expectation->is(q{})->at($text);
12046              
12047              
12048 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SYSFUN\.|)//i)
  0 0       0  
12049             {
12050              
12051 0         0 $expectation->failed();
12052 0 0       0 Parse::RecDescent::_trace(q{<>},
12053             Parse::RecDescent::_tracefirst($text))
12054             if defined $::RD_TRACE;
12055              
12056 0         0 last;
12057             }
12058 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12059             . $& . q{])},
12060             Parse::RecDescent::_tracefirst($text))
12061             if defined $::RD_TRACE;
12062 0         0 push @item, $item{__PATTERN1__}=$&;
12063              
12064              
12065 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [sysfun_function]},
12066             Parse::RecDescent::_tracefirst($text),
12067             q{_alternation_1_of_production_1_of_rule_function},
12068             $tracelevel)
12069             if defined $::RD_TRACE;
12070 1     1   12 if (1) { no strict qw{refs};
  1         4  
  1         238  
  0         0  
12071 0         0 $expectation->is(q{sysfun_function})->at($text);
12072 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysfun_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
12073             {
12074              
12075 0 0       0 Parse::RecDescent::_trace(q{<>},
12076             Parse::RecDescent::_tracefirst($text),
12077             q{_alternation_1_of_production_1_of_rule_function},
12078             $tracelevel)
12079             if defined $::RD_TRACE;
12080 0         0 $expectation->failed();
12081 0         0 last;
12082             }
12083 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [sysfun_function]<< (return value: [}
12084             . $_tok . q{]},
12085              
12086             Parse::RecDescent::_tracefirst($text),
12087             q{_alternation_1_of_production_1_of_rule_function},
12088             $tracelevel)
12089             if defined $::RD_TRACE;
12090 0         0 $item{q{sysfun_function}} = $_tok;
12091 0         0 push @item, $_tok;
12092              
12093             }
12094              
12095              
12096 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SYSFUN\\.|/i sysfun_function]<<},
12097             Parse::RecDescent::_tracefirst($text),
12098             q{_alternation_1_of_production_1_of_rule_function},
12099             $tracelevel)
12100             if defined $::RD_TRACE;
12101 0         0 $_matched = 1;
12102 0         0 last;
12103             }
12104              
12105              
12106 0   0     0 while (!$_matched && !$commit)
12107             {
12108              
12109 0 0       0 Parse::RecDescent::_trace(q{Trying production: [userdefined_function]},
12110             Parse::RecDescent::_tracefirst($_[1]),
12111             q{_alternation_1_of_production_1_of_rule_function},
12112             $tracelevel)
12113             if defined $::RD_TRACE;
12114 0         0 my $thisprod = $thisrule->{"prods"}[2];
12115 0         0 $text = $_[1];
12116 0         0 my $_savetext;
12117 0         0 @item = (q{_alternation_1_of_production_1_of_rule_function});
12118 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
12119 0         0 my $repcount = 0;
12120              
12121              
12122 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [userdefined_function]},
12123             Parse::RecDescent::_tracefirst($text),
12124             q{_alternation_1_of_production_1_of_rule_function},
12125             $tracelevel)
12126             if defined $::RD_TRACE;
12127 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         399  
  0         0  
12128 0         0 $expectation->is(q{})->at($text);
12129 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::userdefined_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
12130             {
12131              
12132 0 0       0 Parse::RecDescent::_trace(q{<>},
12133             Parse::RecDescent::_tracefirst($text),
12134             q{_alternation_1_of_production_1_of_rule_function},
12135             $tracelevel)
12136             if defined $::RD_TRACE;
12137 0         0 $expectation->failed();
12138 0         0 last;
12139             }
12140 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [userdefined_function]<< (return value: [}
12141             . $_tok . q{]},
12142              
12143             Parse::RecDescent::_tracefirst($text),
12144             q{_alternation_1_of_production_1_of_rule_function},
12145             $tracelevel)
12146             if defined $::RD_TRACE;
12147 0         0 $item{q{userdefined_function}} = $_tok;
12148 0         0 push @item, $_tok;
12149              
12150             }
12151              
12152              
12153 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [userdefined_function]<<},
12154             Parse::RecDescent::_tracefirst($text),
12155             q{_alternation_1_of_production_1_of_rule_function},
12156             $tracelevel)
12157             if defined $::RD_TRACE;
12158 0         0 $_matched = 1;
12159 0         0 last;
12160             }
12161              
12162              
12163 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
12164             {
12165              
12166              
12167 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
12168 0 0       0 Parse::RecDescent::_trace(q{<>},
12169             Parse::RecDescent::_tracefirst($_[1]),
12170             q{_alternation_1_of_production_1_of_rule_function},
12171             $tracelevel)
12172             if defined $::RD_TRACE;
12173 0         0 return undef;
12174             }
12175 0 0 0     0 if (!defined($return) && defined($score))
12176             {
12177 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12178             q{_alternation_1_of_production_1_of_rule_function},
12179             $tracelevel)
12180             if defined $::RD_TRACE;
12181 0         0 $return = $score_return;
12182             }
12183 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
12184 0 0       0 $return = $item[$#item] unless defined $return;
12185 0 0       0 if (defined $::RD_TRACE)
12186             {
12187 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12188             $return . q{])}, "",
12189             q{_alternation_1_of_production_1_of_rule_function},
12190             $tracelevel);
12191 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
12192             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
12193             Parse::RecDescent::_tracefirst($text),
12194             , q{_alternation_1_of_production_1_of_rule_function},
12195             $tracelevel)
12196             }
12197 0         0 $_[1] = $text;
12198 0         0 return $return;
12199             }
12200              
12201             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12202             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier
12203             {
12204 0     0   0 my $thisparser = $_[0];
12205 1     1   7 use vars q{$tracelevel};
  1         3  
  1         300  
12206 0   0     0 local $tracelevel = ($tracelevel||0)+1;
12207 0         0 $ERRORS = 0;
12208 0         0 my $thisrule = $thisparser->{"rules"}{"identifier"};
12209              
12210 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [identifier]},
12211             Parse::RecDescent::_tracefirst($_[1]),
12212             q{identifier},
12213             $tracelevel)
12214             if defined $::RD_TRACE;
12215              
12216              
12217 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
12218              
12219 0         0 my $score;
12220             my $score_return;
12221 0         0 my $_tok;
12222 0         0 my $return = undef;
12223 0         0 my $_matched=0;
12224 0         0 my $commit=0;
12225 0         0 my @item = ();
12226 0         0 my %item = ();
12227 0   0     0 my $repeating = defined($_[2]) && $_[2];
12228 0   0     0 my $_noactions = defined($_[3]) && $_[3];
12229 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
12230 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
12231 0         0 my $text;
12232 0         0 my $lastsep="";
12233 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12234 0         0 $expectation->at($_[1]);
12235              
12236 0         0 my $thisline;
12237 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12238              
12239              
12240              
12241 0   0     0 while (!$_matched && !$commit)
12242             {
12243              
12244 0 0       0 Parse::RecDescent::_trace(q{Trying production: [NAME]},
12245             Parse::RecDescent::_tracefirst($_[1]),
12246             q{identifier},
12247             $tracelevel)
12248             if defined $::RD_TRACE;
12249 0         0 my $thisprod = $thisrule->{"prods"}[0];
12250 0         0 $text = $_[1];
12251 0         0 my $_savetext;
12252 0         0 @item = (q{identifier});
12253 0         0 %item = (__RULE__ => q{identifier});
12254 0         0 my $repcount = 0;
12255              
12256              
12257 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
12258             Parse::RecDescent::_tracefirst($text),
12259             q{identifier},
12260             $tracelevel)
12261             if defined $::RD_TRACE;
12262 1     1   9 if (1) { no strict qw{refs};
  1         2  
  1         341  
  0         0  
12263 0         0 $expectation->is(q{})->at($text);
12264 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
12265             {
12266              
12267 0 0       0 Parse::RecDescent::_trace(q{<>},
12268             Parse::RecDescent::_tracefirst($text),
12269             q{identifier},
12270             $tracelevel)
12271             if defined $::RD_TRACE;
12272 0         0 $expectation->failed();
12273 0         0 last;
12274             }
12275 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
12276             . $_tok . q{]},
12277              
12278             Parse::RecDescent::_tracefirst($text),
12279             q{identifier},
12280             $tracelevel)
12281             if defined $::RD_TRACE;
12282 0         0 $item{q{NAME}} = $_tok;
12283 0         0 push @item, $_tok;
12284              
12285             }
12286              
12287              
12288 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
12289             Parse::RecDescent::_tracefirst($text),
12290             q{identifier},
12291             $tracelevel)
12292             if defined $::RD_TRACE;
12293 0         0 $_matched = 1;
12294 0         0 last;
12295             }
12296              
12297              
12298 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
12299             {
12300              
12301              
12302 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
12303 0 0       0 Parse::RecDescent::_trace(q{<>},
12304             Parse::RecDescent::_tracefirst($_[1]),
12305             q{identifier},
12306             $tracelevel)
12307             if defined $::RD_TRACE;
12308 0         0 return undef;
12309             }
12310 0 0 0     0 if (!defined($return) && defined($score))
12311             {
12312 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12313             q{identifier},
12314             $tracelevel)
12315             if defined $::RD_TRACE;
12316 0         0 $return = $score_return;
12317             }
12318 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
12319 0 0       0 $return = $item[$#item] unless defined $return;
12320 0 0       0 if (defined $::RD_TRACE)
12321             {
12322 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12323             $return . q{])}, "",
12324             q{identifier},
12325             $tracelevel);
12326 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
12327             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
12328             Parse::RecDescent::_tracefirst($text),
12329             , q{identifier},
12330             $tracelevel)
12331             }
12332 0         0 $_[1] = $text;
12333 0         0 return $return;
12334             }
12335              
12336             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12337             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause
12338             {
12339 0     0   0 my $thisparser = $_[0];
12340 1     1   6 use vars q{$tracelevel};
  1         3  
  1         289  
12341 0   0     0 local $tracelevel = ($tracelevel||0)+1;
12342 0         0 $ERRORS = 0;
12343 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause"};
12344              
12345 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause]},
12346             Parse::RecDescent::_tracefirst($_[1]),
12347             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12348             $tracelevel)
12349             if defined $::RD_TRACE;
12350              
12351              
12352 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
12353              
12354 0         0 my $score;
12355             my $score_return;
12356 0         0 my $_tok;
12357 0         0 my $return = undef;
12358 0         0 my $_matched=0;
12359 0         0 my $commit=0;
12360 0         0 my @item = ();
12361 0         0 my %item = ();
12362 0   0     0 my $repeating = defined($_[2]) && $_[2];
12363 0   0     0 my $_noactions = defined($_[3]) && $_[3];
12364 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
12365 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
12366 0         0 my $text;
12367 0         0 my $lastsep="";
12368 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12369 0         0 $expectation->at($_[1]);
12370              
12371 0         0 my $thisline;
12372 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12373              
12374              
12375              
12376 0   0     0 while (!$_matched && !$commit)
12377             {
12378              
12379 0 0       0 Parse::RecDescent::_trace(q{Trying production: [asc_option]},
12380             Parse::RecDescent::_tracefirst($_[1]),
12381             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12382             $tracelevel)
12383             if defined $::RD_TRACE;
12384 0         0 my $thisprod = $thisrule->{"prods"}[0];
12385 0         0 $text = $_[1];
12386 0         0 my $_savetext;
12387 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
12388 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
12389 0         0 my $repcount = 0;
12390              
12391              
12392 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [asc_option]},
12393             Parse::RecDescent::_tracefirst($text),
12394             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12395             $tracelevel)
12396             if defined $::RD_TRACE;
12397 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         227  
  0         0  
12398 0         0 $expectation->is(q{})->at($text);
12399 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::asc_option($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
12400             {
12401              
12402 0 0       0 Parse::RecDescent::_trace(q{<>},
12403             Parse::RecDescent::_tracefirst($text),
12404             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12405             $tracelevel)
12406             if defined $::RD_TRACE;
12407 0         0 $expectation->failed();
12408 0         0 last;
12409             }
12410 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [asc_option]<< (return value: [}
12411             . $_tok . q{]},
12412              
12413             Parse::RecDescent::_tracefirst($text),
12414             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12415             $tracelevel)
12416             if defined $::RD_TRACE;
12417 0         0 $item{q{asc_option}} = $_tok;
12418 0         0 push @item, $_tok;
12419              
12420             }
12421              
12422              
12423 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [asc_option]<<},
12424             Parse::RecDescent::_tracefirst($text),
12425             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12426             $tracelevel)
12427             if defined $::RD_TRACE;
12428 0         0 $_matched = 1;
12429 0         0 last;
12430             }
12431              
12432              
12433 0   0     0 while (!$_matched && !$commit)
12434             {
12435              
12436 0 0       0 Parse::RecDescent::_trace(q{Trying production: [desc_option]},
12437             Parse::RecDescent::_tracefirst($_[1]),
12438             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12439             $tracelevel)
12440             if defined $::RD_TRACE;
12441 0         0 my $thisprod = $thisrule->{"prods"}[1];
12442 0         0 $text = $_[1];
12443 0         0 my $_savetext;
12444 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
12445 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
12446 0         0 my $repcount = 0;
12447              
12448              
12449 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [desc_option]},
12450             Parse::RecDescent::_tracefirst($text),
12451             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12452             $tracelevel)
12453             if defined $::RD_TRACE;
12454 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         375  
  0         0  
12455 0         0 $expectation->is(q{})->at($text);
12456 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::desc_option($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
12457             {
12458              
12459 0 0       0 Parse::RecDescent::_trace(q{<>},
12460             Parse::RecDescent::_tracefirst($text),
12461             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12462             $tracelevel)
12463             if defined $::RD_TRACE;
12464 0         0 $expectation->failed();
12465 0         0 last;
12466             }
12467 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [desc_option]<< (return value: [}
12468             . $_tok . q{]},
12469              
12470             Parse::RecDescent::_tracefirst($text),
12471             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12472             $tracelevel)
12473             if defined $::RD_TRACE;
12474 0         0 $item{q{desc_option}} = $_tok;
12475 0         0 push @item, $_tok;
12476              
12477             }
12478              
12479              
12480 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [desc_option]<<},
12481             Parse::RecDescent::_tracefirst($text),
12482             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12483             $tracelevel)
12484             if defined $::RD_TRACE;
12485 0         0 $_matched = 1;
12486 0         0 last;
12487             }
12488              
12489              
12490 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
12491             {
12492              
12493              
12494 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
12495 0 0       0 Parse::RecDescent::_trace(q{<>},
12496             Parse::RecDescent::_tracefirst($_[1]),
12497             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12498             $tracelevel)
12499             if defined $::RD_TRACE;
12500 0         0 return undef;
12501             }
12502 0 0 0     0 if (!defined($return) && defined($score))
12503             {
12504 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12505             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12506             $tracelevel)
12507             if defined $::RD_TRACE;
12508 0         0 $return = $score_return;
12509             }
12510 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
12511 0 0       0 $return = $item[$#item] unless defined $return;
12512 0 0       0 if (defined $::RD_TRACE)
12513             {
12514 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12515             $return . q{])}, "",
12516             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12517             $tracelevel);
12518 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
12519             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
12520             Parse::RecDescent::_tracefirst($text),
12521             , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12522             $tracelevel)
12523             }
12524 0         0 $_[1] = $text;
12525 0         0 return $return;
12526             }
12527              
12528             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12529             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression
12530             {
12531 0     0   0 my $thisparser = $_[0];
12532 1     1   7 use vars q{$tracelevel};
  1         3  
  1         323  
12533 0   0     0 local $tracelevel = ($tracelevel||0)+1;
12534 0         0 $ERRORS = 0;
12535 0         0 my $thisrule = $thisparser->{"rules"}{"result_expression"};
12536              
12537 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [result_expression]},
12538             Parse::RecDescent::_tracefirst($_[1]),
12539             q{result_expression},
12540             $tracelevel)
12541             if defined $::RD_TRACE;
12542              
12543              
12544 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
12545              
12546 0         0 my $score;
12547             my $score_return;
12548 0         0 my $_tok;
12549 0         0 my $return = undef;
12550 0         0 my $_matched=0;
12551 0         0 my $commit=0;
12552 0         0 my @item = ();
12553 0         0 my %item = ();
12554 0   0     0 my $repeating = defined($_[2]) && $_[2];
12555 0   0     0 my $_noactions = defined($_[3]) && $_[3];
12556 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
12557 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
12558 0         0 my $text;
12559 0         0 my $lastsep="";
12560 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12561 0         0 $expectation->at($_[1]);
12562              
12563 0         0 my $thisline;
12564 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12565              
12566              
12567              
12568 0   0     0 while (!$_matched && !$commit)
12569             {
12570              
12571 0 0       0 Parse::RecDescent::_trace(q{Trying production: [expression]},
12572             Parse::RecDescent::_tracefirst($_[1]),
12573             q{result_expression},
12574             $tracelevel)
12575             if defined $::RD_TRACE;
12576 0         0 my $thisprod = $thisrule->{"prods"}[0];
12577 0         0 $text = $_[1];
12578 0         0 my $_savetext;
12579 0         0 @item = (q{result_expression});
12580 0         0 %item = (__RULE__ => q{result_expression});
12581 0         0 my $repcount = 0;
12582              
12583              
12584 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
12585             Parse::RecDescent::_tracefirst($text),
12586             q{result_expression},
12587             $tracelevel)
12588             if defined $::RD_TRACE;
12589 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         359  
  0         0  
12590 0         0 $expectation->is(q{})->at($text);
12591 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
12592             {
12593              
12594 0 0       0 Parse::RecDescent::_trace(q{<>},
12595             Parse::RecDescent::_tracefirst($text),
12596             q{result_expression},
12597             $tracelevel)
12598             if defined $::RD_TRACE;
12599 0         0 $expectation->failed();
12600 0         0 last;
12601             }
12602 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
12603             . $_tok . q{]},
12604              
12605             Parse::RecDescent::_tracefirst($text),
12606             q{result_expression},
12607             $tracelevel)
12608             if defined $::RD_TRACE;
12609 0         0 $item{q{expression}} = $_tok;
12610 0         0 push @item, $_tok;
12611              
12612             }
12613              
12614              
12615 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
12616             Parse::RecDescent::_tracefirst($text),
12617             q{result_expression},
12618             $tracelevel)
12619             if defined $::RD_TRACE;
12620 0         0 $_matched = 1;
12621 0         0 last;
12622             }
12623              
12624              
12625 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
12626             {
12627              
12628              
12629 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
12630 0 0       0 Parse::RecDescent::_trace(q{<>},
12631             Parse::RecDescent::_tracefirst($_[1]),
12632             q{result_expression},
12633             $tracelevel)
12634             if defined $::RD_TRACE;
12635 0         0 return undef;
12636             }
12637 0 0 0     0 if (!defined($return) && defined($score))
12638             {
12639 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12640             q{result_expression},
12641             $tracelevel)
12642             if defined $::RD_TRACE;
12643 0         0 $return = $score_return;
12644             }
12645 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
12646 0 0       0 $return = $item[$#item] unless defined $return;
12647 0 0       0 if (defined $::RD_TRACE)
12648             {
12649 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12650             $return . q{])}, "",
12651             q{result_expression},
12652             $tracelevel);
12653 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
12654             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
12655             Parse::RecDescent::_tracefirst($text),
12656             , q{result_expression},
12657             $tracelevel)
12658             }
12659 0         0 $_[1] = $text;
12660 0         0 return $return;
12661             }
12662              
12663             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12664             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scoped_reference_expression
12665             {
12666 0     0   0 my $thisparser = $_[0];
12667 1     1   7 use vars q{$tracelevel};
  1         2  
  1         274  
12668 0   0     0 local $tracelevel = ($tracelevel||0)+1;
12669 0         0 $ERRORS = 0;
12670 0         0 my $thisrule = $thisparser->{"rules"}{"scoped_reference_expression"};
12671              
12672 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [scoped_reference_expression]},
12673             Parse::RecDescent::_tracefirst($_[1]),
12674             q{scoped_reference_expression},
12675             $tracelevel)
12676             if defined $::RD_TRACE;
12677              
12678              
12679 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
12680              
12681 0         0 my $score;
12682             my $score_return;
12683 0         0 my $_tok;
12684 0         0 my $return = undef;
12685 0         0 my $_matched=0;
12686 0         0 my $commit=0;
12687 0         0 my @item = ();
12688 0         0 my %item = ();
12689 0   0     0 my $repeating = defined($_[2]) && $_[2];
12690 0   0     0 my $_noactions = defined($_[3]) && $_[3];
12691 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
12692 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
12693 0         0 my $text;
12694 0         0 my $lastsep="";
12695 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12696 0         0 $expectation->at($_[1]);
12697              
12698 0         0 my $thisline;
12699 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12700              
12701              
12702              
12703 0   0     0 while (!$_matched && !$commit)
12704             {
12705              
12706 0 0       0 Parse::RecDescent::_trace(q{Trying production: [expression]},
12707             Parse::RecDescent::_tracefirst($_[1]),
12708             q{scoped_reference_expression},
12709             $tracelevel)
12710             if defined $::RD_TRACE;
12711 0         0 my $thisprod = $thisrule->{"prods"}[0];
12712 0         0 $text = $_[1];
12713 0         0 my $_savetext;
12714 0         0 @item = (q{scoped_reference_expression});
12715 0         0 %item = (__RULE__ => q{scoped_reference_expression});
12716 0         0 my $repcount = 0;
12717              
12718              
12719 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
12720             Parse::RecDescent::_tracefirst($text),
12721             q{scoped_reference_expression},
12722             $tracelevel)
12723             if defined $::RD_TRACE;
12724 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         407  
  0         0  
12725 0         0 $expectation->is(q{})->at($text);
12726 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
12727             {
12728              
12729 0 0       0 Parse::RecDescent::_trace(q{<>},
12730             Parse::RecDescent::_tracefirst($text),
12731             q{scoped_reference_expression},
12732             $tracelevel)
12733             if defined $::RD_TRACE;
12734 0         0 $expectation->failed();
12735 0         0 last;
12736             }
12737 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
12738             . $_tok . q{]},
12739              
12740             Parse::RecDescent::_tracefirst($text),
12741             q{scoped_reference_expression},
12742             $tracelevel)
12743             if defined $::RD_TRACE;
12744 0         0 $item{q{expression}} = $_tok;
12745 0         0 push @item, $_tok;
12746              
12747             }
12748              
12749 0 0       0 Parse::RecDescent::_trace(q{Trying action},
12750             Parse::RecDescent::_tracefirst($text),
12751             q{scoped_reference_expression},
12752             $tracelevel)
12753             if defined $::RD_TRACE;
12754              
12755              
12756 0 0       0 $_tok = ($_noactions) ? 0 : do { # scoped, reference
12757             };
12758 0 0       0 unless (defined $_tok)
12759             {
12760 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
12761             if defined $::RD_TRACE;
12762 0         0 last;
12763             }
12764 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
12765             . $_tok . q{])},
12766             Parse::RecDescent::_tracefirst($text))
12767             if defined $::RD_TRACE;
12768 0         0 push @item, $_tok;
12769 0         0 $item{__ACTION1__}=$_tok;
12770              
12771              
12772              
12773 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
12774             Parse::RecDescent::_tracefirst($text),
12775             q{scoped_reference_expression},
12776             $tracelevel)
12777             if defined $::RD_TRACE;
12778 0         0 $_matched = 1;
12779 0         0 last;
12780             }
12781              
12782              
12783 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
12784             {
12785              
12786              
12787 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
12788 0 0       0 Parse::RecDescent::_trace(q{<>},
12789             Parse::RecDescent::_tracefirst($_[1]),
12790             q{scoped_reference_expression},
12791             $tracelevel)
12792             if defined $::RD_TRACE;
12793 0         0 return undef;
12794             }
12795 0 0 0     0 if (!defined($return) && defined($score))
12796             {
12797 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12798             q{scoped_reference_expression},
12799             $tracelevel)
12800             if defined $::RD_TRACE;
12801 0         0 $return = $score_return;
12802             }
12803 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
12804 0 0       0 $return = $item[$#item] unless defined $return;
12805 0 0       0 if (defined $::RD_TRACE)
12806             {
12807 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12808             $return . q{])}, "",
12809             q{scoped_reference_expression},
12810             $tracelevel);
12811 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
12812             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
12813             Parse::RecDescent::_tracefirst($text),
12814             , q{scoped_reference_expression},
12815             $tracelevel)
12816             }
12817 0         0 $_[1] = $text;
12818 0         0 return $return;
12819             }
12820              
12821             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12822             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification
12823             {
12824 0     0   0 my $thisparser = $_[0];
12825 1     1   8 use vars q{$tracelevel};
  1         2  
  1         308  
12826 0   0     0 local $tracelevel = ($tracelevel||0)+1;
12827 0         0 $ERRORS = 0;
12828 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification"};
12829              
12830 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]},
12831             Parse::RecDescent::_tracefirst($_[1]),
12832             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12833             $tracelevel)
12834             if defined $::RD_TRACE;
12835              
12836              
12837 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
12838              
12839 0         0 my $score;
12840             my $score_return;
12841 0         0 my $_tok;
12842 0         0 my $return = undef;
12843 0         0 my $_matched=0;
12844 0         0 my $commit=0;
12845 0         0 my @item = ();
12846 0         0 my %item = ();
12847 0   0     0 my $repeating = defined($_[2]) && $_[2];
12848 0   0     0 my $_noactions = defined($_[3]) && $_[3];
12849 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
12850 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
12851 0         0 my $text;
12852 0         0 my $lastsep="";
12853 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12854 0         0 $expectation->at($_[1]);
12855              
12856 0         0 my $thisline;
12857 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12858              
12859              
12860              
12861 0   0     0 while (!$_matched && !$commit)
12862             {
12863              
12864 0 0       0 Parse::RecDescent::_trace(q{Trying production: [typed_table_name]},
12865             Parse::RecDescent::_tracefirst($_[1]),
12866             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12867             $tracelevel)
12868             if defined $::RD_TRACE;
12869 0         0 my $thisprod = $thisrule->{"prods"}[0];
12870 0         0 $text = $_[1];
12871 0         0 my $_savetext;
12872 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
12873 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
12874 0         0 my $repcount = 0;
12875              
12876              
12877 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [typed_table_name]},
12878             Parse::RecDescent::_tracefirst($text),
12879             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12880             $tracelevel)
12881             if defined $::RD_TRACE;
12882 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         252  
  0         0  
12883 0         0 $expectation->is(q{})->at($text);
12884 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::typed_table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
12885             {
12886              
12887 0 0       0 Parse::RecDescent::_trace(q{<>},
12888             Parse::RecDescent::_tracefirst($text),
12889             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12890             $tracelevel)
12891             if defined $::RD_TRACE;
12892 0         0 $expectation->failed();
12893 0         0 last;
12894             }
12895 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [typed_table_name]<< (return value: [}
12896             . $_tok . q{]},
12897              
12898             Parse::RecDescent::_tracefirst($text),
12899             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12900             $tracelevel)
12901             if defined $::RD_TRACE;
12902 0         0 $item{q{typed_table_name}} = $_tok;
12903 0         0 push @item, $_tok;
12904              
12905             }
12906              
12907              
12908 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [typed_table_name]<<},
12909             Parse::RecDescent::_tracefirst($text),
12910             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12911             $tracelevel)
12912             if defined $::RD_TRACE;
12913 0         0 $_matched = 1;
12914 0         0 last;
12915             }
12916              
12917              
12918 0   0     0 while (!$_matched && !$commit)
12919             {
12920              
12921 0 0       0 Parse::RecDescent::_trace(q{Trying production: [typed_view_name]},
12922             Parse::RecDescent::_tracefirst($_[1]),
12923             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12924             $tracelevel)
12925             if defined $::RD_TRACE;
12926 0         0 my $thisprod = $thisrule->{"prods"}[1];
12927 0         0 $text = $_[1];
12928 0         0 my $_savetext;
12929 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
12930 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
12931 0         0 my $repcount = 0;
12932              
12933              
12934 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [typed_view_name]},
12935             Parse::RecDescent::_tracefirst($text),
12936             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12937             $tracelevel)
12938             if defined $::RD_TRACE;
12939 1     1   7 if (1) { no strict qw{refs};
  1         4  
  1         364  
  0         0  
12940 0         0 $expectation->is(q{})->at($text);
12941 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::typed_view_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
12942             {
12943              
12944 0 0       0 Parse::RecDescent::_trace(q{<>},
12945             Parse::RecDescent::_tracefirst($text),
12946             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12947             $tracelevel)
12948             if defined $::RD_TRACE;
12949 0         0 $expectation->failed();
12950 0         0 last;
12951             }
12952 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [typed_view_name]<< (return value: [}
12953             . $_tok . q{]},
12954              
12955             Parse::RecDescent::_tracefirst($text),
12956             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12957             $tracelevel)
12958             if defined $::RD_TRACE;
12959 0         0 $item{q{typed_view_name}} = $_tok;
12960 0         0 push @item, $_tok;
12961              
12962             }
12963              
12964              
12965 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [typed_view_name]<<},
12966             Parse::RecDescent::_tracefirst($text),
12967             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12968             $tracelevel)
12969             if defined $::RD_TRACE;
12970 0         0 $_matched = 1;
12971 0         0 last;
12972             }
12973              
12974              
12975 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
12976             {
12977              
12978              
12979 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
12980 0 0       0 Parse::RecDescent::_trace(q{<>},
12981             Parse::RecDescent::_tracefirst($_[1]),
12982             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12983             $tracelevel)
12984             if defined $::RD_TRACE;
12985 0         0 return undef;
12986             }
12987 0 0 0     0 if (!defined($return) && defined($score))
12988             {
12989 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12990             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12991             $tracelevel)
12992             if defined $::RD_TRACE;
12993 0         0 $return = $score_return;
12994             }
12995 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
12996 0 0       0 $return = $item[$#item] unless defined $return;
12997 0 0       0 if (defined $::RD_TRACE)
12998             {
12999 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13000             $return . q{])}, "",
13001             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
13002             $tracelevel);
13003 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
13004             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
13005             Parse::RecDescent::_tracefirst($text),
13006             , q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
13007             $tracelevel)
13008             }
13009 0         0 $_[1] = $text;
13010 0         0 return $return;
13011             }
13012              
13013             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13014             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::when_clause
13015             {
13016 0     0   0 my $thisparser = $_[0];
13017 1     1   7 use vars q{$tracelevel};
  1         3  
  1         509  
13018 0   0     0 local $tracelevel = ($tracelevel||0)+1;
13019 0         0 $ERRORS = 0;
13020 0         0 my $thisrule = $thisparser->{"rules"}{"when_clause"};
13021              
13022 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [when_clause]},
13023             Parse::RecDescent::_tracefirst($_[1]),
13024             q{when_clause},
13025             $tracelevel)
13026             if defined $::RD_TRACE;
13027              
13028              
13029 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
13030              
13031 0         0 my $score;
13032             my $score_return;
13033 0         0 my $_tok;
13034 0         0 my $return = undef;
13035 0         0 my $_matched=0;
13036 0         0 my $commit=0;
13037 0         0 my @item = ();
13038 0         0 my %item = ();
13039 0   0     0 my $repeating = defined($_[2]) && $_[2];
13040 0   0     0 my $_noactions = defined($_[3]) && $_[3];
13041 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
13042 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
13043 0         0 my $text;
13044 0         0 my $lastsep="";
13045 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13046 0         0 $expectation->at($_[1]);
13047              
13048 0         0 my $thisline;
13049 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13050              
13051              
13052              
13053 0   0     0 while (!$_matched && !$commit)
13054             {
13055              
13056 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/WHEN/i '(' search_condition ')']},
13057             Parse::RecDescent::_tracefirst($_[1]),
13058             q{when_clause},
13059             $tracelevel)
13060             if defined $::RD_TRACE;
13061 0         0 my $thisprod = $thisrule->{"prods"}[0];
13062 0         0 $text = $_[1];
13063 0         0 my $_savetext;
13064 0         0 @item = (q{when_clause});
13065 0         0 %item = (__RULE__ => q{when_clause});
13066 0         0 my $repcount = 0;
13067              
13068              
13069 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/WHEN/i]}, Parse::RecDescent::_tracefirst($text),
13070             q{when_clause},
13071             $tracelevel)
13072             if defined $::RD_TRACE;
13073 0         0 $lastsep = "";
13074 0         0 $expectation->is(q{})->at($text);
13075              
13076              
13077 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:WHEN)//i)
  0 0       0  
13078             {
13079              
13080 0         0 $expectation->failed();
13081 0 0       0 Parse::RecDescent::_trace(q{<>},
13082             Parse::RecDescent::_tracefirst($text))
13083             if defined $::RD_TRACE;
13084              
13085 0         0 last;
13086             }
13087 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13088             . $& . q{])},
13089             Parse::RecDescent::_tracefirst($text))
13090             if defined $::RD_TRACE;
13091 0         0 push @item, $item{__PATTERN1__}=$&;
13092              
13093              
13094 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
13095             Parse::RecDescent::_tracefirst($text),
13096             q{when_clause},
13097             $tracelevel)
13098             if defined $::RD_TRACE;
13099 0         0 $lastsep = "";
13100 0         0 $expectation->is(q{'('})->at($text);
13101              
13102              
13103 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
13104             {
13105              
13106 0         0 $expectation->failed();
13107 0 0       0 Parse::RecDescent::_trace(qq{<>},
13108             Parse::RecDescent::_tracefirst($text))
13109             if defined $::RD_TRACE;
13110 0         0 last;
13111             }
13112 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13113             . $& . q{])},
13114             Parse::RecDescent::_tracefirst($text))
13115             if defined $::RD_TRACE;
13116 0         0 push @item, $item{__STRING1__}=$&;
13117              
13118              
13119 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
13120             Parse::RecDescent::_tracefirst($text),
13121             q{when_clause},
13122             $tracelevel)
13123             if defined $::RD_TRACE;
13124 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         556  
  0         0  
13125 0         0 $expectation->is(q{search_condition})->at($text);
13126 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
13127             {
13128              
13129 0 0       0 Parse::RecDescent::_trace(q{<>},
13130             Parse::RecDescent::_tracefirst($text),
13131             q{when_clause},
13132             $tracelevel)
13133             if defined $::RD_TRACE;
13134 0         0 $expectation->failed();
13135 0         0 last;
13136             }
13137 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
13138             . $_tok . q{]},
13139              
13140             Parse::RecDescent::_tracefirst($text),
13141             q{when_clause},
13142             $tracelevel)
13143             if defined $::RD_TRACE;
13144 0         0 $item{q{search_condition}} = $_tok;
13145 0         0 push @item, $_tok;
13146              
13147             }
13148              
13149 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
13150             Parse::RecDescent::_tracefirst($text),
13151             q{when_clause},
13152             $tracelevel)
13153             if defined $::RD_TRACE;
13154 0         0 $lastsep = "";
13155 0         0 $expectation->is(q{')'})->at($text);
13156              
13157              
13158 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
13159             {
13160              
13161 0         0 $expectation->failed();
13162 0 0       0 Parse::RecDescent::_trace(qq{<>},
13163             Parse::RecDescent::_tracefirst($text))
13164             if defined $::RD_TRACE;
13165 0         0 last;
13166             }
13167 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13168             . $& . q{])},
13169             Parse::RecDescent::_tracefirst($text))
13170             if defined $::RD_TRACE;
13171 0         0 push @item, $item{__STRING2__}=$&;
13172              
13173              
13174 0 0       0 Parse::RecDescent::_trace(q{Trying action},
13175             Parse::RecDescent::_tracefirst($text),
13176             q{when_clause},
13177             $tracelevel)
13178             if defined $::RD_TRACE;
13179              
13180              
13181 0 0       0 $_tok = ($_noactions) ? 0 : do {$return = $item[3]};
  0         0  
13182 0 0       0 unless (defined $_tok)
13183             {
13184 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
13185             if defined $::RD_TRACE;
13186 0         0 last;
13187             }
13188 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
13189             . $_tok . q{])},
13190             Parse::RecDescent::_tracefirst($text))
13191             if defined $::RD_TRACE;
13192 0         0 push @item, $_tok;
13193 0         0 $item{__ACTION1__}=$_tok;
13194              
13195              
13196              
13197 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i '(' search_condition ')']<<},
13198             Parse::RecDescent::_tracefirst($text),
13199             q{when_clause},
13200             $tracelevel)
13201             if defined $::RD_TRACE;
13202 0         0 $_matched = 1;
13203 0         0 last;
13204             }
13205              
13206              
13207 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
13208             {
13209              
13210              
13211 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
13212 0 0       0 Parse::RecDescent::_trace(q{<>},
13213             Parse::RecDescent::_tracefirst($_[1]),
13214             q{when_clause},
13215             $tracelevel)
13216             if defined $::RD_TRACE;
13217 0         0 return undef;
13218             }
13219 0 0 0     0 if (!defined($return) && defined($score))
13220             {
13221 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
13222             q{when_clause},
13223             $tracelevel)
13224             if defined $::RD_TRACE;
13225 0         0 $return = $score_return;
13226             }
13227 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
13228 0 0       0 $return = $item[$#item] unless defined $return;
13229 0 0       0 if (defined $::RD_TRACE)
13230             {
13231 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13232             $return . q{])}, "",
13233             q{when_clause},
13234             $tracelevel);
13235 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
13236             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
13237             Parse::RecDescent::_tracefirst($text),
13238             , q{when_clause},
13239             $tracelevel)
13240             }
13241 0         0 $_[1] = $text;
13242 0         0 return $return;
13243             }
13244              
13245             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13246             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_asc_option
13247             {
13248 0     0   0 my $thisparser = $_[0];
13249 1     1   10 use vars q{$tracelevel};
  1         3  
  1         839  
13250 0   0     0 local $tracelevel = ($tracelevel||0)+1;
13251 0         0 $ERRORS = 0;
13252 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_asc_option"};
13253              
13254 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_asc_option]},
13255             Parse::RecDescent::_tracefirst($_[1]),
13256             q{_alternation_1_of_production_1_of_rule_asc_option},
13257             $tracelevel)
13258             if defined $::RD_TRACE;
13259              
13260              
13261 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
13262              
13263 0         0 my $score;
13264             my $score_return;
13265 0         0 my $_tok;
13266 0         0 my $return = undef;
13267 0         0 my $_matched=0;
13268 0         0 my $commit=0;
13269 0         0 my @item = ();
13270 0         0 my %item = ();
13271 0   0     0 my $repeating = defined($_[2]) && $_[2];
13272 0   0     0 my $_noactions = defined($_[3]) && $_[3];
13273 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
13274 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
13275 0         0 my $text;
13276 0         0 my $lastsep="";
13277 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13278 0         0 $expectation->at($_[1]);
13279              
13280 0         0 my $thisline;
13281 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13282              
13283              
13284              
13285 0   0     0 while (!$_matched && !$commit)
13286             {
13287              
13288 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+FIRST/i]},
13289             Parse::RecDescent::_tracefirst($_[1]),
13290             q{_alternation_1_of_production_1_of_rule_asc_option},
13291             $tracelevel)
13292             if defined $::RD_TRACE;
13293 0         0 my $thisprod = $thisrule->{"prods"}[0];
13294 0         0 $text = $_[1];
13295 0         0 my $_savetext;
13296 0         0 @item = (q{_alternation_1_of_production_1_of_rule_asc_option});
13297 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_asc_option});
13298 0         0 my $repcount = 0;
13299              
13300              
13301 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+FIRST/i]}, Parse::RecDescent::_tracefirst($text),
13302             q{_alternation_1_of_production_1_of_rule_asc_option},
13303             $tracelevel)
13304             if defined $::RD_TRACE;
13305 0         0 $lastsep = "";
13306 0         0 $expectation->is(q{})->at($text);
13307              
13308              
13309 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NULLS\s+FIRST)//i)
  0 0       0  
13310             {
13311              
13312 0         0 $expectation->failed();
13313 0 0       0 Parse::RecDescent::_trace(q{<>},
13314             Parse::RecDescent::_tracefirst($text))
13315             if defined $::RD_TRACE;
13316              
13317 0         0 last;
13318             }
13319 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13320             . $& . q{])},
13321             Parse::RecDescent::_tracefirst($text))
13322             if defined $::RD_TRACE;
13323 0         0 push @item, $item{__PATTERN1__}=$&;
13324              
13325              
13326              
13327 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NULLS\\s+FIRST/i]<<},
13328             Parse::RecDescent::_tracefirst($text),
13329             q{_alternation_1_of_production_1_of_rule_asc_option},
13330             $tracelevel)
13331             if defined $::RD_TRACE;
13332 0         0 $_matched = 1;
13333 0         0 last;
13334             }
13335              
13336              
13337 0   0     0 while (!$_matched && !$commit)
13338             {
13339              
13340 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+LAST/i]},
13341             Parse::RecDescent::_tracefirst($_[1]),
13342             q{_alternation_1_of_production_1_of_rule_asc_option},
13343             $tracelevel)
13344             if defined $::RD_TRACE;
13345 0         0 my $thisprod = $thisrule->{"prods"}[1];
13346 0         0 $text = $_[1];
13347 0         0 my $_savetext;
13348 0         0 @item = (q{_alternation_1_of_production_1_of_rule_asc_option});
13349 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_asc_option});
13350 0         0 my $repcount = 0;
13351              
13352              
13353 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+LAST/i]}, Parse::RecDescent::_tracefirst($text),
13354             q{_alternation_1_of_production_1_of_rule_asc_option},
13355             $tracelevel)
13356             if defined $::RD_TRACE;
13357 0         0 $lastsep = "";
13358 0         0 $expectation->is(q{})->at($text);
13359              
13360              
13361 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NULLS\s+LAST)//i)
  0 0       0  
13362             {
13363              
13364 0         0 $expectation->failed();
13365 0 0       0 Parse::RecDescent::_trace(q{<>},
13366             Parse::RecDescent::_tracefirst($text))
13367             if defined $::RD_TRACE;
13368              
13369 0         0 last;
13370             }
13371 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13372             . $& . q{])},
13373             Parse::RecDescent::_tracefirst($text))
13374             if defined $::RD_TRACE;
13375 0         0 push @item, $item{__PATTERN1__}=$&;
13376              
13377              
13378              
13379 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NULLS\\s+LAST/i]<<},
13380             Parse::RecDescent::_tracefirst($text),
13381             q{_alternation_1_of_production_1_of_rule_asc_option},
13382             $tracelevel)
13383             if defined $::RD_TRACE;
13384 0         0 $_matched = 1;
13385 0         0 last;
13386             }
13387              
13388              
13389 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
13390             {
13391              
13392              
13393 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
13394 0 0       0 Parse::RecDescent::_trace(q{<>},
13395             Parse::RecDescent::_tracefirst($_[1]),
13396             q{_alternation_1_of_production_1_of_rule_asc_option},
13397             $tracelevel)
13398             if defined $::RD_TRACE;
13399 0         0 return undef;
13400             }
13401 0 0 0     0 if (!defined($return) && defined($score))
13402             {
13403 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
13404             q{_alternation_1_of_production_1_of_rule_asc_option},
13405             $tracelevel)
13406             if defined $::RD_TRACE;
13407 0         0 $return = $score_return;
13408             }
13409 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
13410 0 0       0 $return = $item[$#item] unless defined $return;
13411 0 0       0 if (defined $::RD_TRACE)
13412             {
13413 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13414             $return . q{])}, "",
13415             q{_alternation_1_of_production_1_of_rule_asc_option},
13416             $tracelevel);
13417 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
13418             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
13419             Parse::RecDescent::_tracefirst($text),
13420             , q{_alternation_1_of_production_1_of_rule_asc_option},
13421             $tracelevel)
13422             }
13423 0         0 $_[1] = $text;
13424 0         0 return $return;
13425             }
13426              
13427             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13428             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name
13429             {
13430 0     0   0 my $thisparser = $_[0];
13431 1     1   7 use vars q{$tracelevel};
  1         2  
  1         302  
13432 0   0     0 local $tracelevel = ($tracelevel||0)+1;
13433 0         0 $ERRORS = 0;
13434 0         0 my $thisrule = $thisparser->{"rules"}{"sequence_name"};
13435              
13436 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [sequence_name]},
13437             Parse::RecDescent::_tracefirst($_[1]),
13438             q{sequence_name},
13439             $tracelevel)
13440             if defined $::RD_TRACE;
13441              
13442              
13443 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
13444              
13445 0         0 my $score;
13446             my $score_return;
13447 0         0 my $_tok;
13448 0         0 my $return = undef;
13449 0         0 my $_matched=0;
13450 0         0 my $commit=0;
13451 0         0 my @item = ();
13452 0         0 my %item = ();
13453 0   0     0 my $repeating = defined($_[2]) && $_[2];
13454 0   0     0 my $_noactions = defined($_[3]) && $_[3];
13455 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
13456 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
13457 0         0 my $text;
13458 0         0 my $lastsep="";
13459 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13460 0         0 $expectation->at($_[1]);
13461              
13462 0         0 my $thisline;
13463 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13464              
13465              
13466              
13467 0   0     0 while (!$_matched && !$commit)
13468             {
13469              
13470 0 0       0 Parse::RecDescent::_trace(q{Trying production: [NAME]},
13471             Parse::RecDescent::_tracefirst($_[1]),
13472             q{sequence_name},
13473             $tracelevel)
13474             if defined $::RD_TRACE;
13475 0         0 my $thisprod = $thisrule->{"prods"}[0];
13476 0         0 $text = $_[1];
13477 0         0 my $_savetext;
13478 0         0 @item = (q{sequence_name});
13479 0         0 %item = (__RULE__ => q{sequence_name});
13480 0         0 my $repcount = 0;
13481              
13482              
13483 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
13484             Parse::RecDescent::_tracefirst($text),
13485             q{sequence_name},
13486             $tracelevel)
13487             if defined $::RD_TRACE;
13488 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         356  
  0         0  
13489 0         0 $expectation->is(q{})->at($text);
13490 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
13491             {
13492              
13493 0 0       0 Parse::RecDescent::_trace(q{<>},
13494             Parse::RecDescent::_tracefirst($text),
13495             q{sequence_name},
13496             $tracelevel)
13497             if defined $::RD_TRACE;
13498 0         0 $expectation->failed();
13499 0         0 last;
13500             }
13501 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
13502             . $_tok . q{]},
13503              
13504             Parse::RecDescent::_tracefirst($text),
13505             q{sequence_name},
13506             $tracelevel)
13507             if defined $::RD_TRACE;
13508 0         0 $item{q{NAME}} = $_tok;
13509 0         0 push @item, $_tok;
13510              
13511             }
13512              
13513              
13514 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
13515             Parse::RecDescent::_tracefirst($text),
13516             q{sequence_name},
13517             $tracelevel)
13518             if defined $::RD_TRACE;
13519 0         0 $_matched = 1;
13520 0         0 last;
13521             }
13522              
13523              
13524 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
13525             {
13526              
13527              
13528 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
13529 0 0       0 Parse::RecDescent::_trace(q{<>},
13530             Parse::RecDescent::_tracefirst($_[1]),
13531             q{sequence_name},
13532             $tracelevel)
13533             if defined $::RD_TRACE;
13534 0         0 return undef;
13535             }
13536 0 0 0     0 if (!defined($return) && defined($score))
13537             {
13538 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
13539             q{sequence_name},
13540             $tracelevel)
13541             if defined $::RD_TRACE;
13542 0         0 $return = $score_return;
13543             }
13544 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
13545 0 0       0 $return = $item[$#item] unless defined $return;
13546 0 0       0 if (defined $::RD_TRACE)
13547             {
13548 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13549             $return . q{])}, "",
13550             q{sequence_name},
13551             $tracelevel);
13552 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
13553             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
13554             Parse::RecDescent::_tracefirst($text),
13555             , q{sequence_name},
13556             $tracelevel)
13557             }
13558 0         0 $_[1] = $text;
13559 0         0 return $return;
13560             }
13561              
13562             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13563             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_duration
13564             {
13565 0     0   0 my $thisparser = $_[0];
13566 1     1   7 use vars q{$tracelevel};
  1         3  
  1         1799  
13567 0   0     0 local $tracelevel = ($tracelevel||0)+1;
13568 0         0 $ERRORS = 0;
13569 0         0 my $thisrule = $thisparser->{"rules"}{"ld_duration"};
13570              
13571 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [ld_duration]},
13572             Parse::RecDescent::_tracefirst($_[1]),
13573             q{ld_duration},
13574             $tracelevel)
13575             if defined $::RD_TRACE;
13576              
13577              
13578 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
13579              
13580 0         0 my $score;
13581             my $score_return;
13582 0         0 my $_tok;
13583 0         0 my $return = undef;
13584 0         0 my $_matched=0;
13585 0         0 my $commit=0;
13586 0         0 my @item = ();
13587 0         0 my %item = ();
13588 0   0     0 my $repeating = defined($_[2]) && $_[2];
13589 0   0     0 my $_noactions = defined($_[3]) && $_[3];
13590 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
13591 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
13592 0         0 my $text;
13593 0         0 my $lastsep="";
13594 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13595 0         0 $expectation->at($_[1]);
13596              
13597 0         0 my $thisline;
13598 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13599              
13600              
13601              
13602 0   0     0 while (!$_matched && !$commit)
13603             {
13604              
13605 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/YEARS?/i]},
13606             Parse::RecDescent::_tracefirst($_[1]),
13607             q{ld_duration},
13608             $tracelevel)
13609             if defined $::RD_TRACE;
13610 0         0 my $thisprod = $thisrule->{"prods"}[0];
13611 0         0 $text = $_[1];
13612 0         0 my $_savetext;
13613 0         0 @item = (q{ld_duration});
13614 0         0 %item = (__RULE__ => q{ld_duration});
13615 0         0 my $repcount = 0;
13616              
13617              
13618 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/YEARS?/i]}, Parse::RecDescent::_tracefirst($text),
13619             q{ld_duration},
13620             $tracelevel)
13621             if defined $::RD_TRACE;
13622 0         0 $lastsep = "";
13623 0         0 $expectation->is(q{})->at($text);
13624              
13625              
13626 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:YEARS?)//i)
  0 0       0  
13627             {
13628              
13629 0         0 $expectation->failed();
13630 0 0       0 Parse::RecDescent::_trace(q{<>},
13631             Parse::RecDescent::_tracefirst($text))
13632             if defined $::RD_TRACE;
13633              
13634 0         0 last;
13635             }
13636 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13637             . $& . q{])},
13638             Parse::RecDescent::_tracefirst($text))
13639             if defined $::RD_TRACE;
13640 0         0 push @item, $item{__PATTERN1__}=$&;
13641              
13642              
13643              
13644 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/YEARS?/i]<<},
13645             Parse::RecDescent::_tracefirst($text),
13646             q{ld_duration},
13647             $tracelevel)
13648             if defined $::RD_TRACE;
13649 0         0 $_matched = 1;
13650 0         0 last;
13651             }
13652              
13653              
13654 0   0     0 while (!$_matched && !$commit)
13655             {
13656              
13657 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/MONTHS?/i]},
13658             Parse::RecDescent::_tracefirst($_[1]),
13659             q{ld_duration},
13660             $tracelevel)
13661             if defined $::RD_TRACE;
13662 0         0 my $thisprod = $thisrule->{"prods"}[1];
13663 0         0 $text = $_[1];
13664 0         0 my $_savetext;
13665 0         0 @item = (q{ld_duration});
13666 0         0 %item = (__RULE__ => q{ld_duration});
13667 0         0 my $repcount = 0;
13668              
13669              
13670 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/MONTHS?/i]}, Parse::RecDescent::_tracefirst($text),
13671             q{ld_duration},
13672             $tracelevel)
13673             if defined $::RD_TRACE;
13674 0         0 $lastsep = "";
13675 0         0 $expectation->is(q{})->at($text);
13676              
13677              
13678 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:MONTHS?)//i)
  0 0       0  
13679             {
13680              
13681 0         0 $expectation->failed();
13682 0 0       0 Parse::RecDescent::_trace(q{<>},
13683             Parse::RecDescent::_tracefirst($text))
13684             if defined $::RD_TRACE;
13685              
13686 0         0 last;
13687             }
13688 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13689             . $& . q{])},
13690             Parse::RecDescent::_tracefirst($text))
13691             if defined $::RD_TRACE;
13692 0         0 push @item, $item{__PATTERN1__}=$&;
13693              
13694              
13695              
13696 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/MONTHS?/i]<<},
13697             Parse::RecDescent::_tracefirst($text),
13698             q{ld_duration},
13699             $tracelevel)
13700             if defined $::RD_TRACE;
13701 0         0 $_matched = 1;
13702 0         0 last;
13703             }
13704              
13705              
13706 0   0     0 while (!$_matched && !$commit)
13707             {
13708              
13709 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DAYS?/i]},
13710             Parse::RecDescent::_tracefirst($_[1]),
13711             q{ld_duration},
13712             $tracelevel)
13713             if defined $::RD_TRACE;
13714 0         0 my $thisprod = $thisrule->{"prods"}[2];
13715 0         0 $text = $_[1];
13716 0         0 my $_savetext;
13717 0         0 @item = (q{ld_duration});
13718 0         0 %item = (__RULE__ => q{ld_duration});
13719 0         0 my $repcount = 0;
13720              
13721              
13722 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DAYS?/i]}, Parse::RecDescent::_tracefirst($text),
13723             q{ld_duration},
13724             $tracelevel)
13725             if defined $::RD_TRACE;
13726 0         0 $lastsep = "";
13727 0         0 $expectation->is(q{})->at($text);
13728              
13729              
13730 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DAYS?)//i)
  0 0       0  
13731             {
13732              
13733 0         0 $expectation->failed();
13734 0 0       0 Parse::RecDescent::_trace(q{<>},
13735             Parse::RecDescent::_tracefirst($text))
13736             if defined $::RD_TRACE;
13737              
13738 0         0 last;
13739             }
13740 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13741             . $& . q{])},
13742             Parse::RecDescent::_tracefirst($text))
13743             if defined $::RD_TRACE;
13744 0         0 push @item, $item{__PATTERN1__}=$&;
13745              
13746              
13747              
13748 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DAYS?/i]<<},
13749             Parse::RecDescent::_tracefirst($text),
13750             q{ld_duration},
13751             $tracelevel)
13752             if defined $::RD_TRACE;
13753 0         0 $_matched = 1;
13754 0         0 last;
13755             }
13756              
13757              
13758 0   0     0 while (!$_matched && !$commit)
13759             {
13760              
13761 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/HOURS?/i]},
13762             Parse::RecDescent::_tracefirst($_[1]),
13763             q{ld_duration},
13764             $tracelevel)
13765             if defined $::RD_TRACE;
13766 0         0 my $thisprod = $thisrule->{"prods"}[3];
13767 0         0 $text = $_[1];
13768 0         0 my $_savetext;
13769 0         0 @item = (q{ld_duration});
13770 0         0 %item = (__RULE__ => q{ld_duration});
13771 0         0 my $repcount = 0;
13772              
13773              
13774 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/HOURS?/i]}, Parse::RecDescent::_tracefirst($text),
13775             q{ld_duration},
13776             $tracelevel)
13777             if defined $::RD_TRACE;
13778 0         0 $lastsep = "";
13779 0         0 $expectation->is(q{})->at($text);
13780              
13781              
13782 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:HOURS?)//i)
  0 0       0  
13783             {
13784              
13785 0         0 $expectation->failed();
13786 0 0       0 Parse::RecDescent::_trace(q{<>},
13787             Parse::RecDescent::_tracefirst($text))
13788             if defined $::RD_TRACE;
13789              
13790 0         0 last;
13791             }
13792 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13793             . $& . q{])},
13794             Parse::RecDescent::_tracefirst($text))
13795             if defined $::RD_TRACE;
13796 0         0 push @item, $item{__PATTERN1__}=$&;
13797              
13798              
13799              
13800 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/HOURS?/i]<<},
13801             Parse::RecDescent::_tracefirst($text),
13802             q{ld_duration},
13803             $tracelevel)
13804             if defined $::RD_TRACE;
13805 0         0 $_matched = 1;
13806 0         0 last;
13807             }
13808              
13809              
13810 0   0     0 while (!$_matched && !$commit)
13811             {
13812              
13813 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/MINUTES?/i]},
13814             Parse::RecDescent::_tracefirst($_[1]),
13815             q{ld_duration},
13816             $tracelevel)
13817             if defined $::RD_TRACE;
13818 0         0 my $thisprod = $thisrule->{"prods"}[4];
13819 0         0 $text = $_[1];
13820 0         0 my $_savetext;
13821 0         0 @item = (q{ld_duration});
13822 0         0 %item = (__RULE__ => q{ld_duration});
13823 0         0 my $repcount = 0;
13824              
13825              
13826 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/MINUTES?/i]}, Parse::RecDescent::_tracefirst($text),
13827             q{ld_duration},
13828             $tracelevel)
13829             if defined $::RD_TRACE;
13830 0         0 $lastsep = "";
13831 0         0 $expectation->is(q{})->at($text);
13832              
13833              
13834 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:MINUTES?)//i)
  0 0       0  
13835             {
13836              
13837 0         0 $expectation->failed();
13838 0 0       0 Parse::RecDescent::_trace(q{<>},
13839             Parse::RecDescent::_tracefirst($text))
13840             if defined $::RD_TRACE;
13841              
13842 0         0 last;
13843             }
13844 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13845             . $& . q{])},
13846             Parse::RecDescent::_tracefirst($text))
13847             if defined $::RD_TRACE;
13848 0         0 push @item, $item{__PATTERN1__}=$&;
13849              
13850              
13851              
13852 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/MINUTES?/i]<<},
13853             Parse::RecDescent::_tracefirst($text),
13854             q{ld_duration},
13855             $tracelevel)
13856             if defined $::RD_TRACE;
13857 0         0 $_matched = 1;
13858 0         0 last;
13859             }
13860              
13861              
13862 0   0     0 while (!$_matched && !$commit)
13863             {
13864              
13865 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SECONDS?/i]},
13866             Parse::RecDescent::_tracefirst($_[1]),
13867             q{ld_duration},
13868             $tracelevel)
13869             if defined $::RD_TRACE;
13870 0         0 my $thisprod = $thisrule->{"prods"}[5];
13871 0         0 $text = $_[1];
13872 0         0 my $_savetext;
13873 0         0 @item = (q{ld_duration});
13874 0         0 %item = (__RULE__ => q{ld_duration});
13875 0         0 my $repcount = 0;
13876              
13877              
13878 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SECONDS?/i]}, Parse::RecDescent::_tracefirst($text),
13879             q{ld_duration},
13880             $tracelevel)
13881             if defined $::RD_TRACE;
13882 0         0 $lastsep = "";
13883 0         0 $expectation->is(q{})->at($text);
13884              
13885              
13886 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SECONDS?)//i)
  0 0       0  
13887             {
13888              
13889 0         0 $expectation->failed();
13890 0 0       0 Parse::RecDescent::_trace(q{<>},
13891             Parse::RecDescent::_tracefirst($text))
13892             if defined $::RD_TRACE;
13893              
13894 0         0 last;
13895             }
13896 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13897             . $& . q{])},
13898             Parse::RecDescent::_tracefirst($text))
13899             if defined $::RD_TRACE;
13900 0         0 push @item, $item{__PATTERN1__}=$&;
13901              
13902              
13903              
13904 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SECONDS?/i]<<},
13905             Parse::RecDescent::_tracefirst($text),
13906             q{ld_duration},
13907             $tracelevel)
13908             if defined $::RD_TRACE;
13909 0         0 $_matched = 1;
13910 0         0 last;
13911             }
13912              
13913              
13914 0   0     0 while (!$_matched && !$commit)
13915             {
13916              
13917 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/MICROSECONDS?/i]},
13918             Parse::RecDescent::_tracefirst($_[1]),
13919             q{ld_duration},
13920             $tracelevel)
13921             if defined $::RD_TRACE;
13922 0         0 my $thisprod = $thisrule->{"prods"}[6];
13923 0         0 $text = $_[1];
13924 0         0 my $_savetext;
13925 0         0 @item = (q{ld_duration});
13926 0         0 %item = (__RULE__ => q{ld_duration});
13927 0         0 my $repcount = 0;
13928              
13929              
13930 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/MICROSECONDS?/i]}, Parse::RecDescent::_tracefirst($text),
13931             q{ld_duration},
13932             $tracelevel)
13933             if defined $::RD_TRACE;
13934 0         0 $lastsep = "";
13935 0         0 $expectation->is(q{})->at($text);
13936              
13937              
13938 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:MICROSECONDS?)//i)
  0 0       0  
13939             {
13940              
13941 0         0 $expectation->failed();
13942 0 0       0 Parse::RecDescent::_trace(q{<>},
13943             Parse::RecDescent::_tracefirst($text))
13944             if defined $::RD_TRACE;
13945              
13946 0         0 last;
13947             }
13948 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13949             . $& . q{])},
13950             Parse::RecDescent::_tracefirst($text))
13951             if defined $::RD_TRACE;
13952 0         0 push @item, $item{__PATTERN1__}=$&;
13953              
13954              
13955              
13956 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/MICROSECONDS?/i]<<},
13957             Parse::RecDescent::_tracefirst($text),
13958             q{ld_duration},
13959             $tracelevel)
13960             if defined $::RD_TRACE;
13961 0         0 $_matched = 1;
13962 0         0 last;
13963             }
13964              
13965              
13966 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
13967             {
13968              
13969              
13970 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
13971 0 0       0 Parse::RecDescent::_trace(q{<>},
13972             Parse::RecDescent::_tracefirst($_[1]),
13973             q{ld_duration},
13974             $tracelevel)
13975             if defined $::RD_TRACE;
13976 0         0 return undef;
13977             }
13978 0 0 0     0 if (!defined($return) && defined($score))
13979             {
13980 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
13981             q{ld_duration},
13982             $tracelevel)
13983             if defined $::RD_TRACE;
13984 0         0 $return = $score_return;
13985             }
13986 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
13987 0 0       0 $return = $item[$#item] unless defined $return;
13988 0 0       0 if (defined $::RD_TRACE)
13989             {
13990 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13991             $return . q{])}, "",
13992             q{ld_duration},
13993             $tracelevel);
13994 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
13995             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
13996             Parse::RecDescent::_tracefirst($text),
13997             , q{ld_duration},
13998             $tracelevel)
13999             }
14000 0         0 $_[1] = $text;
14001 0         0 return $return;
14002             }
14003              
14004             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14005             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_a
14006             {
14007 0     0   0 my $thisparser = $_[0];
14008 1     1   10 use vars q{$tracelevel};
  1         2  
  1         905  
14009 0   0     0 local $tracelevel = ($tracelevel||0)+1;
14010 0         0 $ERRORS = 0;
14011 0         0 my $thisrule = $thisparser->{"rules"}{"reference_a"};
14012              
14013 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [reference_a]},
14014             Parse::RecDescent::_tracefirst($_[1]),
14015             q{reference_a},
14016             $tracelevel)
14017             if defined $::RD_TRACE;
14018              
14019              
14020 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
14021              
14022 0         0 my $score;
14023             my $score_return;
14024 0         0 my $_tok;
14025 0         0 my $return = undef;
14026 0         0 my $_matched=0;
14027 0         0 my $commit=0;
14028 0         0 my @item = ();
14029 0         0 my %item = ();
14030 0   0     0 my $repeating = defined($_[2]) && $_[2];
14031 0   0     0 my $_noactions = defined($_[3]) && $_[3];
14032 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
14033 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
14034 0         0 my $text;
14035 0         0 my $lastsep="";
14036 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14037 0         0 $expectation->at($_[1]);
14038              
14039 0         0 my $thisline;
14040 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14041              
14042              
14043              
14044 0   0     0 while (!$_matched && !$commit)
14045             {
14046              
14047 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REFERENCING/i old_new_corr old_new_table]},
14048             Parse::RecDescent::_tracefirst($_[1]),
14049             q{reference_a},
14050             $tracelevel)
14051             if defined $::RD_TRACE;
14052 0         0 my $thisprod = $thisrule->{"prods"}[0];
14053 0         0 $text = $_[1];
14054 0         0 my $_savetext;
14055 0         0 @item = (q{reference_a});
14056 0         0 %item = (__RULE__ => q{reference_a});
14057 0         0 my $repcount = 0;
14058              
14059              
14060 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REFERENCING/i]}, Parse::RecDescent::_tracefirst($text),
14061             q{reference_a},
14062             $tracelevel)
14063             if defined $::RD_TRACE;
14064 0         0 $lastsep = "";
14065 0         0 $expectation->is(q{})->at($text);
14066              
14067              
14068 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REFERENCING)//i)
  0 0       0  
14069             {
14070              
14071 0         0 $expectation->failed();
14072 0 0       0 Parse::RecDescent::_trace(q{<>},
14073             Parse::RecDescent::_tracefirst($text))
14074             if defined $::RD_TRACE;
14075              
14076 0         0 last;
14077             }
14078 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14079             . $& . q{])},
14080             Parse::RecDescent::_tracefirst($text))
14081             if defined $::RD_TRACE;
14082 0         0 push @item, $item{__PATTERN1__}=$&;
14083              
14084              
14085 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [old_new_corr]},
14086             Parse::RecDescent::_tracefirst($text),
14087             q{reference_a},
14088             $tracelevel)
14089             if defined $::RD_TRACE;
14090 0         0 $expectation->is(q{old_new_corr})->at($text);
14091              
14092 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr, 0, 2, $_noactions,$expectation,undef)))
14093             {
14094 0 0       0 Parse::RecDescent::_trace(q{<>},
14095             Parse::RecDescent::_tracefirst($text),
14096             q{reference_a},
14097             $tracelevel)
14098             if defined $::RD_TRACE;
14099 0         0 last;
14100             }
14101 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [old_new_corr]<< (}
14102             . @$_tok . q{ times)},
14103              
14104             Parse::RecDescent::_tracefirst($text),
14105             q{reference_a},
14106             $tracelevel)
14107             if defined $::RD_TRACE;
14108 0         0 $item{q{old_new_corr(0..2)}} = $_tok;
14109 0         0 push @item, $_tok;
14110              
14111              
14112              
14113 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [old_new_table]},
14114             Parse::RecDescent::_tracefirst($text),
14115             q{reference_a},
14116             $tracelevel)
14117             if defined $::RD_TRACE;
14118 0         0 $expectation->is(q{old_new_table})->at($text);
14119              
14120 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_table, 0, 2, $_noactions,$expectation,undef)))
14121             {
14122 0 0       0 Parse::RecDescent::_trace(q{<>},
14123             Parse::RecDescent::_tracefirst($text),
14124             q{reference_a},
14125             $tracelevel)
14126             if defined $::RD_TRACE;
14127 0         0 last;
14128             }
14129 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [old_new_table]<< (}
14130             . @$_tok . q{ times)},
14131              
14132             Parse::RecDescent::_tracefirst($text),
14133             q{reference_a},
14134             $tracelevel)
14135             if defined $::RD_TRACE;
14136 0         0 $item{q{old_new_table(0..2)}} = $_tok;
14137 0         0 push @item, $_tok;
14138              
14139              
14140              
14141 0 0       0 Parse::RecDescent::_trace(q{Trying action},
14142             Parse::RecDescent::_tracefirst($text),
14143             q{reference_a},
14144             $tracelevel)
14145             if defined $::RD_TRACE;
14146              
14147              
14148 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = join(' ', $item[1], join(' ', @{$item[2]}), join(' ', @{$item[3]}) ) };
  0         0  
  0         0  
  0         0  
14149 0 0       0 unless (defined $_tok)
14150             {
14151 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
14152             if defined $::RD_TRACE;
14153 0         0 last;
14154             }
14155 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
14156             . $_tok . q{])},
14157             Parse::RecDescent::_tracefirst($text))
14158             if defined $::RD_TRACE;
14159 0         0 push @item, $_tok;
14160 0         0 $item{__ACTION1__}=$_tok;
14161              
14162              
14163              
14164 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REFERENCING/i old_new_corr old_new_table]<<},
14165             Parse::RecDescent::_tracefirst($text),
14166             q{reference_a},
14167             $tracelevel)
14168             if defined $::RD_TRACE;
14169 0         0 $_matched = 1;
14170 0         0 last;
14171             }
14172              
14173              
14174 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
14175             {
14176              
14177              
14178 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
14179 0 0       0 Parse::RecDescent::_trace(q{<>},
14180             Parse::RecDescent::_tracefirst($_[1]),
14181             q{reference_a},
14182             $tracelevel)
14183             if defined $::RD_TRACE;
14184 0         0 return undef;
14185             }
14186 0 0 0     0 if (!defined($return) && defined($score))
14187             {
14188 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
14189             q{reference_a},
14190             $tracelevel)
14191             if defined $::RD_TRACE;
14192 0         0 $return = $score_return;
14193             }
14194 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
14195 0 0       0 $return = $item[$#item] unless defined $return;
14196 0 0       0 if (defined $::RD_TRACE)
14197             {
14198 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
14199             $return . q{])}, "",
14200             q{reference_a},
14201             $tracelevel);
14202 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
14203             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
14204             Parse::RecDescent::_tracefirst($text),
14205             , q{reference_a},
14206             $tracelevel)
14207             }
14208 0         0 $_[1] = $text;
14209 0         0 return $return;
14210             }
14211              
14212             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14213             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cast_specification
14214             {
14215 0     0   0 my $thisparser = $_[0];
14216 1     1   7 use vars q{$tracelevel};
  1         2  
  1         552  
14217 0   0     0 local $tracelevel = ($tracelevel||0)+1;
14218 0         0 $ERRORS = 0;
14219 0         0 my $thisrule = $thisparser->{"rules"}{"cast_specification"};
14220              
14221 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [cast_specification]},
14222             Parse::RecDescent::_tracefirst($_[1]),
14223             q{cast_specification},
14224             $tracelevel)
14225             if defined $::RD_TRACE;
14226              
14227              
14228 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
14229              
14230 0         0 my $score;
14231             my $score_return;
14232 0         0 my $_tok;
14233 0         0 my $return = undef;
14234 0         0 my $_matched=0;
14235 0         0 my $commit=0;
14236 0         0 my @item = ();
14237 0         0 my %item = ();
14238 0   0     0 my $repeating = defined($_[2]) && $_[2];
14239 0   0     0 my $_noactions = defined($_[3]) && $_[3];
14240 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
14241 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
14242 0         0 my $text;
14243 0         0 my $lastsep="";
14244 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14245 0         0 $expectation->at($_[1]);
14246              
14247 0         0 my $thisline;
14248 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14249              
14250              
14251              
14252 0   0     0 while (!$_matched && !$commit)
14253             {
14254              
14255 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CAST/i '(' expression, or /NULL/i, or parameter_marker /AS/i data_type /SCOPE/ ')']},
14256             Parse::RecDescent::_tracefirst($_[1]),
14257             q{cast_specification},
14258             $tracelevel)
14259             if defined $::RD_TRACE;
14260 0         0 my $thisprod = $thisrule->{"prods"}[0];
14261 0         0 $text = $_[1];
14262 0         0 my $_savetext;
14263 0         0 @item = (q{cast_specification});
14264 0         0 %item = (__RULE__ => q{cast_specification});
14265 0         0 my $repcount = 0;
14266              
14267              
14268 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CAST/i]}, Parse::RecDescent::_tracefirst($text),
14269             q{cast_specification},
14270             $tracelevel)
14271             if defined $::RD_TRACE;
14272 0         0 $lastsep = "";
14273 0         0 $expectation->is(q{})->at($text);
14274              
14275              
14276 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CAST)//i)
  0 0       0  
14277             {
14278              
14279 0         0 $expectation->failed();
14280 0 0       0 Parse::RecDescent::_trace(q{<>},
14281             Parse::RecDescent::_tracefirst($text))
14282             if defined $::RD_TRACE;
14283              
14284 0         0 last;
14285             }
14286 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14287             . $& . q{])},
14288             Parse::RecDescent::_tracefirst($text))
14289             if defined $::RD_TRACE;
14290 0         0 push @item, $item{__PATTERN1__}=$&;
14291              
14292              
14293 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
14294             Parse::RecDescent::_tracefirst($text),
14295             q{cast_specification},
14296             $tracelevel)
14297             if defined $::RD_TRACE;
14298 0         0 $lastsep = "";
14299 0         0 $expectation->is(q{'('})->at($text);
14300              
14301              
14302 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
14303             {
14304              
14305 0         0 $expectation->failed();
14306 0 0       0 Parse::RecDescent::_trace(qq{<>},
14307             Parse::RecDescent::_tracefirst($text))
14308             if defined $::RD_TRACE;
14309 0         0 last;
14310             }
14311 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14312             . $& . q{])},
14313             Parse::RecDescent::_tracefirst($text))
14314             if defined $::RD_TRACE;
14315 0         0 push @item, $item{__STRING1__}=$&;
14316              
14317              
14318 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_cast_specification]},
14319             Parse::RecDescent::_tracefirst($text),
14320             q{cast_specification},
14321             $tracelevel)
14322             if defined $::RD_TRACE;
14323 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         267  
  0         0  
14324 0         0 $expectation->is(q{expression, or /NULL/i, or parameter_marker})->at($text);
14325 0 0   0   0 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 })))
  0         0  
14326             {
14327              
14328 0 0       0 Parse::RecDescent::_trace(q{<>},
14329             Parse::RecDescent::_tracefirst($text),
14330             q{cast_specification},
14331             $tracelevel)
14332             if defined $::RD_TRACE;
14333 0         0 $expectation->failed();
14334 0         0 last;
14335             }
14336 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_cast_specification]<< (return value: [}
14337             . $_tok . q{]},
14338              
14339             Parse::RecDescent::_tracefirst($text),
14340             q{cast_specification},
14341             $tracelevel)
14342             if defined $::RD_TRACE;
14343 0         0 $item{q{_alternation_1_of_production_1_of_rule_cast_specification}} = $_tok;
14344 0         0 push @item, $_tok;
14345              
14346             }
14347              
14348 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
14349             q{cast_specification},
14350             $tracelevel)
14351             if defined $::RD_TRACE;
14352 0         0 $lastsep = "";
14353 0         0 $expectation->is(q{/AS/i})->at($text);
14354              
14355              
14356 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:AS)//i)
  0 0       0  
14357             {
14358              
14359 0         0 $expectation->failed();
14360 0 0       0 Parse::RecDescent::_trace(q{<>},
14361             Parse::RecDescent::_tracefirst($text))
14362             if defined $::RD_TRACE;
14363              
14364 0         0 last;
14365             }
14366 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14367             . $& . q{])},
14368             Parse::RecDescent::_tracefirst($text))
14369             if defined $::RD_TRACE;
14370 0         0 push @item, $item{__PATTERN2__}=$&;
14371              
14372              
14373 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [data_type]},
14374             Parse::RecDescent::_tracefirst($text),
14375             q{cast_specification},
14376             $tracelevel)
14377             if defined $::RD_TRACE;
14378 1     1   6 if (1) { no strict qw{refs};
  1         4  
  1         602  
  0         0  
14379 0         0 $expectation->is(q{data_type})->at($text);
14380 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::data_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
14381             {
14382              
14383 0 0       0 Parse::RecDescent::_trace(q{<>},
14384             Parse::RecDescent::_tracefirst($text),
14385             q{cast_specification},
14386             $tracelevel)
14387             if defined $::RD_TRACE;
14388 0         0 $expectation->failed();
14389 0         0 last;
14390             }
14391 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [data_type]<< (return value: [}
14392             . $_tok . q{]},
14393              
14394             Parse::RecDescent::_tracefirst($text),
14395             q{cast_specification},
14396             $tracelevel)
14397             if defined $::RD_TRACE;
14398 0         0 $item{q{data_type}} = $_tok;
14399 0         0 push @item, $_tok;
14400              
14401             }
14402              
14403 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [/SCOPE/]},
14404             Parse::RecDescent::_tracefirst($text),
14405             q{cast_specification},
14406             $tracelevel)
14407             if defined $::RD_TRACE;
14408 0         0 $expectation->is(q{/SCOPE/})->at($text);
14409              
14410 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cast_specification, 0, 1, $_noactions,$expectation,undef)))
14411             {
14412 0 0       0 Parse::RecDescent::_trace(q{<>},
14413             Parse::RecDescent::_tracefirst($text),
14414             q{cast_specification},
14415             $tracelevel)
14416             if defined $::RD_TRACE;
14417 0         0 last;
14418             }
14419 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_cast_specification]<< (}
14420             . @$_tok . q{ times)},
14421              
14422             Parse::RecDescent::_tracefirst($text),
14423             q{cast_specification},
14424             $tracelevel)
14425             if defined $::RD_TRACE;
14426 0         0 $item{q{_alternation_2_of_production_1_of_rule_cast_specification(?)}} = $_tok;
14427 0         0 push @item, $_tok;
14428              
14429              
14430              
14431 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
14432             Parse::RecDescent::_tracefirst($text),
14433             q{cast_specification},
14434             $tracelevel)
14435             if defined $::RD_TRACE;
14436 0         0 $lastsep = "";
14437 0         0 $expectation->is(q{')'})->at($text);
14438              
14439              
14440 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
14441             {
14442              
14443 0         0 $expectation->failed();
14444 0 0       0 Parse::RecDescent::_trace(qq{<>},
14445             Parse::RecDescent::_tracefirst($text))
14446             if defined $::RD_TRACE;
14447 0         0 last;
14448             }
14449 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14450             . $& . q{])},
14451             Parse::RecDescent::_tracefirst($text))
14452             if defined $::RD_TRACE;
14453 0         0 push @item, $item{__STRING2__}=$&;
14454              
14455              
14456              
14457 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CAST/i '(' expression, or /NULL/i, or parameter_marker /AS/i data_type /SCOPE/ ')']<<},
14458             Parse::RecDescent::_tracefirst($text),
14459             q{cast_specification},
14460             $tracelevel)
14461             if defined $::RD_TRACE;
14462 0         0 $_matched = 1;
14463 0         0 last;
14464             }
14465              
14466              
14467 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
14468             {
14469              
14470              
14471 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
14472 0 0       0 Parse::RecDescent::_trace(q{<>},
14473             Parse::RecDescent::_tracefirst($_[1]),
14474             q{cast_specification},
14475             $tracelevel)
14476             if defined $::RD_TRACE;
14477 0         0 return undef;
14478             }
14479 0 0 0     0 if (!defined($return) && defined($score))
14480             {
14481 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
14482             q{cast_specification},
14483             $tracelevel)
14484             if defined $::RD_TRACE;
14485 0         0 $return = $score_return;
14486             }
14487 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
14488 0 0       0 $return = $item[$#item] unless defined $return;
14489 0 0       0 if (defined $::RD_TRACE)
14490             {
14491 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
14492             $return . q{])}, "",
14493             q{cast_specification},
14494             $tracelevel);
14495 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
14496             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
14497             Parse::RecDescent::_tracefirst($text),
14498             , q{cast_specification},
14499             $tracelevel)
14500             }
14501 0         0 $_[1] = $text;
14502 0         0 return $return;
14503             }
14504              
14505             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14506             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type
14507             {
14508 0     0   0 my $thisparser = $_[0];
14509 1     1   8 use vars q{$tracelevel};
  1         3  
  1         558  
14510 0   0     0 local $tracelevel = ($tracelevel||0)+1;
14511 0         0 $ERRORS = 0;
14512 0         0 my $thisrule = $thisparser->{"rules"}{"type"};
14513              
14514 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [type]},
14515             Parse::RecDescent::_tracefirst($_[1]),
14516             q{type},
14517             $tracelevel)
14518             if defined $::RD_TRACE;
14519              
14520              
14521 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
14522              
14523 0         0 my $score;
14524             my $score_return;
14525 0         0 my $_tok;
14526 0         0 my $return = undef;
14527 0         0 my $_matched=0;
14528 0         0 my $commit=0;
14529 0         0 my @item = ();
14530 0         0 my %item = ();
14531 0   0     0 my $repeating = defined($_[2]) && $_[2];
14532 0   0     0 my $_noactions = defined($_[3]) && $_[3];
14533 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
14534 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
14535 0         0 my $text;
14536 0         0 my $lastsep="";
14537 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14538 0         0 $expectation->at($_[1]);
14539              
14540 0         0 my $thisline;
14541 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14542              
14543              
14544              
14545 0   0     0 while (!$_matched && !$commit)
14546             {
14547              
14548 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/UPDATE/i /OF/i ]},
14549             Parse::RecDescent::_tracefirst($_[1]),
14550             q{type},
14551             $tracelevel)
14552             if defined $::RD_TRACE;
14553 0         0 my $thisprod = $thisrule->{"prods"}[0];
14554 0         0 $text = $_[1];
14555 0         0 my $_savetext;
14556 0         0 @item = (q{type});
14557 0         0 %item = (__RULE__ => q{type});
14558 0         0 my $repcount = 0;
14559              
14560              
14561 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/UPDATE/i]}, Parse::RecDescent::_tracefirst($text),
14562             q{type},
14563             $tracelevel)
14564             if defined $::RD_TRACE;
14565 0         0 $lastsep = "";
14566 0         0 $expectation->is(q{})->at($text);
14567              
14568              
14569 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:UPDATE)//i)
  0 0       0  
14570             {
14571              
14572 0         0 $expectation->failed();
14573 0 0       0 Parse::RecDescent::_trace(q{<>},
14574             Parse::RecDescent::_tracefirst($text))
14575             if defined $::RD_TRACE;
14576              
14577 0         0 last;
14578             }
14579 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14580             . $& . q{])},
14581             Parse::RecDescent::_tracefirst($text))
14582             if defined $::RD_TRACE;
14583 0         0 push @item, $item{__PATTERN1__}=$&;
14584              
14585              
14586 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/OF/i]}, Parse::RecDescent::_tracefirst($text),
14587             q{type},
14588             $tracelevel)
14589             if defined $::RD_TRACE;
14590 0         0 $lastsep = "";
14591 0         0 $expectation->is(q{/OF/i})->at($text);
14592              
14593              
14594 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:OF)//i)
  0 0       0  
14595             {
14596              
14597 0         0 $expectation->failed();
14598 0 0       0 Parse::RecDescent::_trace(q{<>},
14599             Parse::RecDescent::_tracefirst($text))
14600             if defined $::RD_TRACE;
14601              
14602 0         0 last;
14603             }
14604 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14605             . $& . q{])},
14606             Parse::RecDescent::_tracefirst($text))
14607             if defined $::RD_TRACE;
14608 0         0 push @item, $item{__PATTERN2__}=$&;
14609              
14610              
14611 0 0       0 Parse::RecDescent::_trace(q{Trying operator: []},
14612             Parse::RecDescent::_tracefirst($text),
14613             q{type},
14614             $tracelevel)
14615             if defined $::RD_TRACE;
14616 0         0 $expectation->is(q{})->at($text);
14617              
14618 0         0 $_tok = undef;
14619 0         0 OPLOOP: while (1)
14620             {
14621 0         0 $repcount = 0;
14622 0         0 my @item;
14623              
14624             # MATCH LEFTARG
14625              
14626 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
14627             Parse::RecDescent::_tracefirst($text),
14628             q{type},
14629             $tracelevel)
14630             if defined $::RD_TRACE;
14631 1     1   7 if (1) { no strict qw{refs};
  1         4  
  1         292  
  0         0  
14632 0         0 $expectation->is(q{column_name})->at($text);
14633 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
14634             {
14635              
14636 0 0       0 Parse::RecDescent::_trace(q{<>},
14637             Parse::RecDescent::_tracefirst($text),
14638             q{type},
14639             $tracelevel)
14640             if defined $::RD_TRACE;
14641 0         0 $expectation->failed();
14642 0         0 last;
14643             }
14644 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
14645             . $_tok . q{]},
14646              
14647             Parse::RecDescent::_tracefirst($text),
14648             q{type},
14649             $tracelevel)
14650             if defined $::RD_TRACE;
14651 0         0 $item{q{column_name}} = $_tok;
14652 0         0 push @item, $_tok;
14653              
14654             }
14655              
14656              
14657 0         0 $repcount++;
14658              
14659 0         0 my $savetext = $text;
14660 0         0 my $backtrack;
14661              
14662             # MATCH (OP RIGHTARG)(s)
14663 0         0 while ($repcount < 100000000)
14664             {
14665 0         0 $backtrack = 0;
14666              
14667 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
14668             q{type},
14669             $tracelevel)
14670             if defined $::RD_TRACE;
14671 0         0 $lastsep = "";
14672 0         0 $expectation->is(q{/,/})->at($text);
14673              
14674              
14675 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//)
  0 0       0  
14676             {
14677              
14678 0         0 $expectation->failed();
14679 0 0       0 Parse::RecDescent::_trace(q{<>},
14680             Parse::RecDescent::_tracefirst($text))
14681             if defined $::RD_TRACE;
14682              
14683 0         0 last;
14684             }
14685 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14686             . $& . q{])},
14687             Parse::RecDescent::_tracefirst($text))
14688             if defined $::RD_TRACE;
14689 0         0 push @item, $item{__PATTERN3__}=$&;
14690              
14691              
14692 0         0 pop @item;
14693 0 0       0 if (defined $1) {push @item, $item{'column_name(s)'}=$1; $backtrack=1;}
  0         0  
  0         0  
14694              
14695 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
14696             Parse::RecDescent::_tracefirst($text),
14697             q{type},
14698             $tracelevel)
14699             if defined $::RD_TRACE;
14700 1     1   7 if (1) { no strict qw{refs};
  1         1  
  1         415  
  0         0  
14701 0         0 $expectation->is(q{column_name})->at($text);
14702 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
14703             {
14704              
14705 0 0       0 Parse::RecDescent::_trace(q{<>},
14706             Parse::RecDescent::_tracefirst($text),
14707             q{type},
14708             $tracelevel)
14709             if defined $::RD_TRACE;
14710 0         0 $expectation->failed();
14711 0         0 last;
14712             }
14713 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
14714             . $_tok . q{]},
14715              
14716             Parse::RecDescent::_tracefirst($text),
14717             q{type},
14718             $tracelevel)
14719             if defined $::RD_TRACE;
14720 0         0 $item{q{column_name}} = $_tok;
14721 0         0 push @item, $_tok;
14722              
14723             }
14724              
14725 0         0 $savetext = $text;
14726 0         0 $repcount++;
14727             }
14728 0         0 $text = $savetext;
14729 0 0       0 pop @item if $backtrack;
14730              
14731 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
14732 0         0 $_tok = [ @item ];
14733 0         0 last;
14734             }
14735              
14736 0 0       0 unless ($repcount>=1)
14737             {
14738 0 0       0 Parse::RecDescent::_trace(q{<]>>},
14739             Parse::RecDescent::_tracefirst($text),
14740             q{type},
14741             $tracelevel)
14742             if defined $::RD_TRACE;
14743 0         0 $expectation->failed();
14744 0         0 last;
14745             }
14746 0 0       0 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
14747 0 0       0 . qq{@{$_tok||[]}} . q{]},
14748             Parse::RecDescent::_tracefirst($text),
14749             q{type},
14750             $tracelevel)
14751             if defined $::RD_TRACE;
14752              
14753 0   0     0 push @item, $item{'column_name(s)'}=$_tok||[];
14754              
14755              
14756 0 0       0 Parse::RecDescent::_trace(q{Trying action},
14757             Parse::RecDescent::_tracefirst($text),
14758             q{type},
14759             $tracelevel)
14760             if defined $::RD_TRACE;
14761              
14762              
14763 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = { event => 'update_on',
  0         0  
14764             fields => $item[3] }
14765             };
14766 0 0       0 unless (defined $_tok)
14767             {
14768 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
14769             if defined $::RD_TRACE;
14770 0         0 last;
14771             }
14772 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
14773             . $_tok . q{])},
14774             Parse::RecDescent::_tracefirst($text))
14775             if defined $::RD_TRACE;
14776 0         0 push @item, $_tok;
14777 0         0 $item{__ACTION1__}=$_tok;
14778              
14779              
14780              
14781 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/UPDATE/i /OF/i ]<<},
14782             Parse::RecDescent::_tracefirst($text),
14783             q{type},
14784             $tracelevel)
14785             if defined $::RD_TRACE;
14786 0         0 $_matched = 1;
14787 0         0 last;
14788             }
14789              
14790              
14791 0   0     0 while (!$_matched && !$commit)
14792             {
14793              
14794 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/INSERT/i, or /DELETE/i, or /UPDATE/i]},
14795             Parse::RecDescent::_tracefirst($_[1]),
14796             q{type},
14797             $tracelevel)
14798             if defined $::RD_TRACE;
14799 0         0 my $thisprod = $thisrule->{"prods"}[1];
14800 0         0 $text = $_[1];
14801 0         0 my $_savetext;
14802 0         0 @item = (q{type});
14803 0         0 %item = (__RULE__ => q{type});
14804 0         0 my $repcount = 0;
14805              
14806              
14807 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_2_of_rule_type]},
14808             Parse::RecDescent::_tracefirst($text),
14809             q{type},
14810             $tracelevel)
14811             if defined $::RD_TRACE;
14812 1     1   9 if (1) { no strict qw{refs};
  1         2  
  1         521  
  0         0  
14813 0         0 $expectation->is(q{})->at($text);
14814 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
14815             {
14816              
14817 0 0       0 Parse::RecDescent::_trace(q{<>},
14818             Parse::RecDescent::_tracefirst($text),
14819             q{type},
14820             $tracelevel)
14821             if defined $::RD_TRACE;
14822 0         0 $expectation->failed();
14823 0         0 last;
14824             }
14825 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_2_of_rule_type]<< (return value: [}
14826             . $_tok . q{]},
14827              
14828             Parse::RecDescent::_tracefirst($text),
14829             q{type},
14830             $tracelevel)
14831             if defined $::RD_TRACE;
14832 0         0 $item{q{_alternation_1_of_production_2_of_rule_type}} = $_tok;
14833 0         0 push @item, $_tok;
14834              
14835             }
14836              
14837 0 0       0 Parse::RecDescent::_trace(q{Trying action},
14838             Parse::RecDescent::_tracefirst($text),
14839             q{type},
14840             $tracelevel)
14841             if defined $::RD_TRACE;
14842              
14843              
14844 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = { event => $item[1] } };
  0         0  
14845 0 0       0 unless (defined $_tok)
14846             {
14847 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
14848             if defined $::RD_TRACE;
14849 0         0 last;
14850             }
14851 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
14852             . $_tok . q{])},
14853             Parse::RecDescent::_tracefirst($text))
14854             if defined $::RD_TRACE;
14855 0         0 push @item, $_tok;
14856 0         0 $item{__ACTION1__}=$_tok;
14857              
14858              
14859              
14860 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/INSERT/i, or /DELETE/i, or /UPDATE/i]<<},
14861             Parse::RecDescent::_tracefirst($text),
14862             q{type},
14863             $tracelevel)
14864             if defined $::RD_TRACE;
14865 0         0 $_matched = 1;
14866 0         0 last;
14867             }
14868              
14869              
14870 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
14871             {
14872              
14873              
14874 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
14875 0 0       0 Parse::RecDescent::_trace(q{<>},
14876             Parse::RecDescent::_tracefirst($_[1]),
14877             q{type},
14878             $tracelevel)
14879             if defined $::RD_TRACE;
14880 0         0 return undef;
14881             }
14882 0 0 0     0 if (!defined($return) && defined($score))
14883             {
14884 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
14885             q{type},
14886             $tracelevel)
14887             if defined $::RD_TRACE;
14888 0         0 $return = $score_return;
14889             }
14890 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
14891 0 0       0 $return = $item[$#item] unless defined $return;
14892 0 0       0 if (defined $::RD_TRACE)
14893             {
14894 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
14895             $return . q{])}, "",
14896             q{type},
14897             $tracelevel);
14898 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
14899             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
14900             Parse::RecDescent::_tracefirst($text),
14901             , q{type},
14902             $tracelevel)
14903             }
14904 0         0 $_[1] = $text;
14905 0         0 return $return;
14906             }
14907              
14908             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14909             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_12_of_rule_sysibm_function
14910             {
14911 0     0   0 my $thisparser = $_[0];
14912 1     1   7 use vars q{$tracelevel};
  1         2  
  1         803  
14913 0   0     0 local $tracelevel = ($tracelevel||0)+1;
14914 0         0 $ERRORS = 0;
14915 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_12_of_rule_sysibm_function"};
14916              
14917 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_12_of_rule_sysibm_function]},
14918             Parse::RecDescent::_tracefirst($_[1]),
14919             q{_alternation_1_of_production_12_of_rule_sysibm_function},
14920             $tracelevel)
14921             if defined $::RD_TRACE;
14922              
14923              
14924 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
14925              
14926 0         0 my $score;
14927             my $score_return;
14928 0         0 my $_tok;
14929 0         0 my $return = undef;
14930 0         0 my $_matched=0;
14931 0         0 my $commit=0;
14932 0         0 my @item = ();
14933 0         0 my %item = ();
14934 0   0     0 my $repeating = defined($_[2]) && $_[2];
14935 0   0     0 my $_noactions = defined($_[3]) && $_[3];
14936 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
14937 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
14938 0         0 my $text;
14939 0         0 my $lastsep="";
14940 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14941 0         0 $expectation->at($_[1]);
14942              
14943 0         0 my $thisline;
14944 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14945              
14946              
14947              
14948 0   0     0 while (!$_matched && !$commit)
14949             {
14950              
14951 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/COVARIANCE/i]},
14952             Parse::RecDescent::_tracefirst($_[1]),
14953             q{_alternation_1_of_production_12_of_rule_sysibm_function},
14954             $tracelevel)
14955             if defined $::RD_TRACE;
14956 0         0 my $thisprod = $thisrule->{"prods"}[0];
14957 0         0 $text = $_[1];
14958 0         0 my $_savetext;
14959 0         0 @item = (q{_alternation_1_of_production_12_of_rule_sysibm_function});
14960 0         0 %item = (__RULE__ => q{_alternation_1_of_production_12_of_rule_sysibm_function});
14961 0         0 my $repcount = 0;
14962              
14963              
14964 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/COVARIANCE/i]}, Parse::RecDescent::_tracefirst($text),
14965             q{_alternation_1_of_production_12_of_rule_sysibm_function},
14966             $tracelevel)
14967             if defined $::RD_TRACE;
14968 0         0 $lastsep = "";
14969 0         0 $expectation->is(q{})->at($text);
14970              
14971              
14972 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:COVARIANCE)//i)
  0 0       0  
14973             {
14974              
14975 0         0 $expectation->failed();
14976 0 0       0 Parse::RecDescent::_trace(q{<>},
14977             Parse::RecDescent::_tracefirst($text))
14978             if defined $::RD_TRACE;
14979              
14980 0         0 last;
14981             }
14982 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14983             . $& . q{])},
14984             Parse::RecDescent::_tracefirst($text))
14985             if defined $::RD_TRACE;
14986 0         0 push @item, $item{__PATTERN1__}=$&;
14987              
14988              
14989              
14990 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/COVARIANCE/i]<<},
14991             Parse::RecDescent::_tracefirst($text),
14992             q{_alternation_1_of_production_12_of_rule_sysibm_function},
14993             $tracelevel)
14994             if defined $::RD_TRACE;
14995 0         0 $_matched = 1;
14996 0         0 last;
14997             }
14998              
14999              
15000 0   0     0 while (!$_matched && !$commit)
15001             {
15002              
15003 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/COVAR/i]},
15004             Parse::RecDescent::_tracefirst($_[1]),
15005             q{_alternation_1_of_production_12_of_rule_sysibm_function},
15006             $tracelevel)
15007             if defined $::RD_TRACE;
15008 0         0 my $thisprod = $thisrule->{"prods"}[1];
15009 0         0 $text = $_[1];
15010 0         0 my $_savetext;
15011 0         0 @item = (q{_alternation_1_of_production_12_of_rule_sysibm_function});
15012 0         0 %item = (__RULE__ => q{_alternation_1_of_production_12_of_rule_sysibm_function});
15013 0         0 my $repcount = 0;
15014              
15015              
15016 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/COVAR/i]}, Parse::RecDescent::_tracefirst($text),
15017             q{_alternation_1_of_production_12_of_rule_sysibm_function},
15018             $tracelevel)
15019             if defined $::RD_TRACE;
15020 0         0 $lastsep = "";
15021 0         0 $expectation->is(q{})->at($text);
15022              
15023              
15024 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:COVAR)//i)
  0 0       0  
15025             {
15026              
15027 0         0 $expectation->failed();
15028 0 0       0 Parse::RecDescent::_trace(q{<>},
15029             Parse::RecDescent::_tracefirst($text))
15030             if defined $::RD_TRACE;
15031              
15032 0         0 last;
15033             }
15034 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15035             . $& . q{])},
15036             Parse::RecDescent::_tracefirst($text))
15037             if defined $::RD_TRACE;
15038 0         0 push @item, $item{__PATTERN1__}=$&;
15039              
15040              
15041              
15042 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/COVAR/i]<<},
15043             Parse::RecDescent::_tracefirst($text),
15044             q{_alternation_1_of_production_12_of_rule_sysibm_function},
15045             $tracelevel)
15046             if defined $::RD_TRACE;
15047 0         0 $_matched = 1;
15048 0         0 last;
15049             }
15050              
15051              
15052 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
15053             {
15054              
15055              
15056 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
15057 0 0       0 Parse::RecDescent::_trace(q{<>},
15058             Parse::RecDescent::_tracefirst($_[1]),
15059             q{_alternation_1_of_production_12_of_rule_sysibm_function},
15060             $tracelevel)
15061             if defined $::RD_TRACE;
15062 0         0 return undef;
15063             }
15064 0 0 0     0 if (!defined($return) && defined($score))
15065             {
15066 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15067             q{_alternation_1_of_production_12_of_rule_sysibm_function},
15068             $tracelevel)
15069             if defined $::RD_TRACE;
15070 0         0 $return = $score_return;
15071             }
15072 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
15073 0 0       0 $return = $item[$#item] unless defined $return;
15074 0 0       0 if (defined $::RD_TRACE)
15075             {
15076 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15077             $return . q{])}, "",
15078             q{_alternation_1_of_production_12_of_rule_sysibm_function},
15079             $tracelevel);
15080 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
15081             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
15082             Parse::RecDescent::_tracefirst($text),
15083             , q{_alternation_1_of_production_12_of_rule_sysibm_function},
15084             $tracelevel)
15085             }
15086 0         0 $_[1] = $text;
15087 0         0 return $return;
15088             }
15089              
15090             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15091             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scalar_fullselect
15092             {
15093 0     0   0 my $thisparser = $_[0];
15094 1     1   7 use vars q{$tracelevel};
  1         2  
  1         424  
15095 0   0     0 local $tracelevel = ($tracelevel||0)+1;
15096 0         0 $ERRORS = 0;
15097 0         0 my $thisrule = $thisparser->{"rules"}{"scalar_fullselect"};
15098              
15099 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [scalar_fullselect]},
15100             Parse::RecDescent::_tracefirst($_[1]),
15101             q{scalar_fullselect},
15102             $tracelevel)
15103             if defined $::RD_TRACE;
15104              
15105              
15106 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
15107              
15108 0         0 my $score;
15109             my $score_return;
15110 0         0 my $_tok;
15111 0         0 my $return = undef;
15112 0         0 my $_matched=0;
15113 0         0 my $commit=0;
15114 0         0 my @item = ();
15115 0         0 my %item = ();
15116 0   0     0 my $repeating = defined($_[2]) && $_[2];
15117 0   0     0 my $_noactions = defined($_[3]) && $_[3];
15118 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
15119 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
15120 0         0 my $text;
15121 0         0 my $lastsep="";
15122 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15123 0         0 $expectation->at($_[1]);
15124              
15125 0         0 my $thisline;
15126 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15127              
15128              
15129              
15130 0   0     0 while (!$_matched && !$commit)
15131             {
15132              
15133 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['(' fullselect ')']},
15134             Parse::RecDescent::_tracefirst($_[1]),
15135             q{scalar_fullselect},
15136             $tracelevel)
15137             if defined $::RD_TRACE;
15138 0         0 my $thisprod = $thisrule->{"prods"}[0];
15139 0         0 $text = $_[1];
15140 0         0 my $_savetext;
15141 0         0 @item = (q{scalar_fullselect});
15142 0         0 %item = (__RULE__ => q{scalar_fullselect});
15143 0         0 my $repcount = 0;
15144              
15145              
15146 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
15147             Parse::RecDescent::_tracefirst($text),
15148             q{scalar_fullselect},
15149             $tracelevel)
15150             if defined $::RD_TRACE;
15151 0         0 $lastsep = "";
15152 0         0 $expectation->is(q{})->at($text);
15153              
15154              
15155 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
15156             {
15157              
15158 0         0 $expectation->failed();
15159 0 0       0 Parse::RecDescent::_trace(qq{<>},
15160             Parse::RecDescent::_tracefirst($text))
15161             if defined $::RD_TRACE;
15162 0         0 last;
15163             }
15164 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15165             . $& . q{])},
15166             Parse::RecDescent::_tracefirst($text))
15167             if defined $::RD_TRACE;
15168 0         0 push @item, $item{__STRING1__}=$&;
15169              
15170              
15171 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [fullselect]},
15172             Parse::RecDescent::_tracefirst($text),
15173             q{scalar_fullselect},
15174             $tracelevel)
15175             if defined $::RD_TRACE;
15176 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         501  
  0         0  
15177 0         0 $expectation->is(q{fullselect})->at($text);
15178 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
15179             {
15180              
15181 0 0       0 Parse::RecDescent::_trace(q{<>},
15182             Parse::RecDescent::_tracefirst($text),
15183             q{scalar_fullselect},
15184             $tracelevel)
15185             if defined $::RD_TRACE;
15186 0         0 $expectation->failed();
15187 0         0 last;
15188             }
15189 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [fullselect]<< (return value: [}
15190             . $_tok . q{]},
15191              
15192             Parse::RecDescent::_tracefirst($text),
15193             q{scalar_fullselect},
15194             $tracelevel)
15195             if defined $::RD_TRACE;
15196 0         0 $item{q{fullselect}} = $_tok;
15197 0         0 push @item, $_tok;
15198              
15199             }
15200              
15201 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
15202             Parse::RecDescent::_tracefirst($text),
15203             q{scalar_fullselect},
15204             $tracelevel)
15205             if defined $::RD_TRACE;
15206 0         0 $lastsep = "";
15207 0         0 $expectation->is(q{')'})->at($text);
15208              
15209              
15210 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
15211             {
15212              
15213 0         0 $expectation->failed();
15214 0 0       0 Parse::RecDescent::_trace(qq{<>},
15215             Parse::RecDescent::_tracefirst($text))
15216             if defined $::RD_TRACE;
15217 0         0 last;
15218             }
15219 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15220             . $& . q{])},
15221             Parse::RecDescent::_tracefirst($text))
15222             if defined $::RD_TRACE;
15223 0         0 push @item, $item{__STRING2__}=$&;
15224              
15225              
15226              
15227 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['(' fullselect ')']<<},
15228             Parse::RecDescent::_tracefirst($text),
15229             q{scalar_fullselect},
15230             $tracelevel)
15231             if defined $::RD_TRACE;
15232 0         0 $_matched = 1;
15233 0         0 last;
15234             }
15235              
15236              
15237 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
15238             {
15239              
15240              
15241 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
15242 0 0       0 Parse::RecDescent::_trace(q{<>},
15243             Parse::RecDescent::_tracefirst($_[1]),
15244             q{scalar_fullselect},
15245             $tracelevel)
15246             if defined $::RD_TRACE;
15247 0         0 return undef;
15248             }
15249 0 0 0     0 if (!defined($return) && defined($score))
15250             {
15251 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15252             q{scalar_fullselect},
15253             $tracelevel)
15254             if defined $::RD_TRACE;
15255 0         0 $return = $score_return;
15256             }
15257 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
15258 0 0       0 $return = $item[$#item] unless defined $return;
15259 0 0       0 if (defined $::RD_TRACE)
15260             {
15261 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15262             $return . q{])}, "",
15263             q{scalar_fullselect},
15264             $tracelevel);
15265 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
15266             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
15267             Parse::RecDescent::_tracefirst($text),
15268             , q{scalar_fullselect},
15269             $tracelevel)
15270             }
15271 0         0 $_[1] = $text;
15272 0         0 return $return;
15273             }
15274              
15275             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15276             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_options
15277             {
15278 0     0   0 my $thisparser = $_[0];
15279 1     1   7 use vars q{$tracelevel};
  1         2  
  1         789  
15280 0   0     0 local $tracelevel = ($tracelevel||0)+1;
15281 0         0 $ERRORS = 0;
15282 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_options"};
15283              
15284 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_options]},
15285             Parse::RecDescent::_tracefirst($_[1]),
15286             q{_alternation_1_of_production_1_of_rule_options},
15287             $tracelevel)
15288             if defined $::RD_TRACE;
15289              
15290              
15291 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
15292              
15293 0         0 my $score;
15294             my $score_return;
15295 0         0 my $_tok;
15296 0         0 my $return = undef;
15297 0         0 my $_matched=0;
15298 0         0 my $commit=0;
15299 0         0 my @item = ();
15300 0         0 my %item = ();
15301 0   0     0 my $repeating = defined($_[2]) && $_[2];
15302 0   0     0 my $_noactions = defined($_[3]) && $_[3];
15303 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
15304 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
15305 0         0 my $text;
15306 0         0 my $lastsep="";
15307 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15308 0         0 $expectation->at($_[1]);
15309              
15310 0         0 my $thisline;
15311 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15312              
15313              
15314              
15315 0   0     0 while (!$_matched && !$commit)
15316             {
15317              
15318 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CASCADED/i]},
15319             Parse::RecDescent::_tracefirst($_[1]),
15320             q{_alternation_1_of_production_1_of_rule_options},
15321             $tracelevel)
15322             if defined $::RD_TRACE;
15323 0         0 my $thisprod = $thisrule->{"prods"}[0];
15324 0         0 $text = $_[1];
15325 0         0 my $_savetext;
15326 0         0 @item = (q{_alternation_1_of_production_1_of_rule_options});
15327 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_options});
15328 0         0 my $repcount = 0;
15329              
15330              
15331 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CASCADED/i]}, Parse::RecDescent::_tracefirst($text),
15332             q{_alternation_1_of_production_1_of_rule_options},
15333             $tracelevel)
15334             if defined $::RD_TRACE;
15335 0         0 $lastsep = "";
15336 0         0 $expectation->is(q{})->at($text);
15337              
15338              
15339 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CASCADED)//i)
  0 0       0  
15340             {
15341              
15342 0         0 $expectation->failed();
15343 0 0       0 Parse::RecDescent::_trace(q{<>},
15344             Parse::RecDescent::_tracefirst($text))
15345             if defined $::RD_TRACE;
15346              
15347 0         0 last;
15348             }
15349 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15350             . $& . q{])},
15351             Parse::RecDescent::_tracefirst($text))
15352             if defined $::RD_TRACE;
15353 0         0 push @item, $item{__PATTERN1__}=$&;
15354              
15355              
15356              
15357 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CASCADED/i]<<},
15358             Parse::RecDescent::_tracefirst($text),
15359             q{_alternation_1_of_production_1_of_rule_options},
15360             $tracelevel)
15361             if defined $::RD_TRACE;
15362 0         0 $_matched = 1;
15363 0         0 last;
15364             }
15365              
15366              
15367 0   0     0 while (!$_matched && !$commit)
15368             {
15369              
15370 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LOCAL/i]},
15371             Parse::RecDescent::_tracefirst($_[1]),
15372             q{_alternation_1_of_production_1_of_rule_options},
15373             $tracelevel)
15374             if defined $::RD_TRACE;
15375 0         0 my $thisprod = $thisrule->{"prods"}[1];
15376 0         0 $text = $_[1];
15377 0         0 my $_savetext;
15378 0         0 @item = (q{_alternation_1_of_production_1_of_rule_options});
15379 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_options});
15380 0         0 my $repcount = 0;
15381              
15382              
15383 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LOCAL/i]}, Parse::RecDescent::_tracefirst($text),
15384             q{_alternation_1_of_production_1_of_rule_options},
15385             $tracelevel)
15386             if defined $::RD_TRACE;
15387 0         0 $lastsep = "";
15388 0         0 $expectation->is(q{})->at($text);
15389              
15390              
15391 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LOCAL)//i)
  0 0       0  
15392             {
15393              
15394 0         0 $expectation->failed();
15395 0 0       0 Parse::RecDescent::_trace(q{<>},
15396             Parse::RecDescent::_tracefirst($text))
15397             if defined $::RD_TRACE;
15398              
15399 0         0 last;
15400             }
15401 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15402             . $& . q{])},
15403             Parse::RecDescent::_tracefirst($text))
15404             if defined $::RD_TRACE;
15405 0         0 push @item, $item{__PATTERN1__}=$&;
15406              
15407              
15408              
15409 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LOCAL/i]<<},
15410             Parse::RecDescent::_tracefirst($text),
15411             q{_alternation_1_of_production_1_of_rule_options},
15412             $tracelevel)
15413             if defined $::RD_TRACE;
15414 0         0 $_matched = 1;
15415 0         0 last;
15416             }
15417              
15418              
15419 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
15420             {
15421              
15422              
15423 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
15424 0 0       0 Parse::RecDescent::_trace(q{<>},
15425             Parse::RecDescent::_tracefirst($_[1]),
15426             q{_alternation_1_of_production_1_of_rule_options},
15427             $tracelevel)
15428             if defined $::RD_TRACE;
15429 0         0 return undef;
15430             }
15431 0 0 0     0 if (!defined($return) && defined($score))
15432             {
15433 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15434             q{_alternation_1_of_production_1_of_rule_options},
15435             $tracelevel)
15436             if defined $::RD_TRACE;
15437 0         0 $return = $score_return;
15438             }
15439 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
15440 0 0       0 $return = $item[$#item] unless defined $return;
15441 0 0       0 if (defined $::RD_TRACE)
15442             {
15443 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15444             $return . q{])}, "",
15445             q{_alternation_1_of_production_1_of_rule_options},
15446             $tracelevel);
15447 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
15448             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
15449             Parse::RecDescent::_tracefirst($text),
15450             , q{_alternation_1_of_production_1_of_rule_options},
15451             $tracelevel)
15452             }
15453 0         0 $_[1] = $text;
15454 0         0 return $return;
15455             }
15456              
15457             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15458             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args
15459             {
15460 0     0   0 my $thisparser = $_[0];
15461 1     1   8 use vars q{$tracelevel};
  1         2  
  1         311  
15462 0   0     0 local $tracelevel = ($tracelevel||0)+1;
15463 0         0 $ERRORS = 0;
15464 0         0 my $thisrule = $thisparser->{"rules"}{"func_args"};
15465              
15466 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [func_args]},
15467             Parse::RecDescent::_tracefirst($_[1]),
15468             q{func_args},
15469             $tracelevel)
15470             if defined $::RD_TRACE;
15471              
15472              
15473 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
15474              
15475 0         0 my $score;
15476             my $score_return;
15477 0         0 my $_tok;
15478 0         0 my $return = undef;
15479 0         0 my $_matched=0;
15480 0         0 my $commit=0;
15481 0         0 my @item = ();
15482 0         0 my %item = ();
15483 0   0     0 my $repeating = defined($_[2]) && $_[2];
15484 0   0     0 my $_noactions = defined($_[3]) && $_[3];
15485 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
15486 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
15487 0         0 my $text;
15488 0         0 my $lastsep="";
15489 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15490 0         0 $expectation->at($_[1]);
15491              
15492 0         0 my $thisline;
15493 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15494              
15495              
15496              
15497 0   0     0 while (!$_matched && !$commit)
15498             {
15499              
15500 0 0       0 Parse::RecDescent::_trace(q{Trying production: [expression]},
15501             Parse::RecDescent::_tracefirst($_[1]),
15502             q{func_args},
15503             $tracelevel)
15504             if defined $::RD_TRACE;
15505 0         0 my $thisprod = $thisrule->{"prods"}[0];
15506 0         0 $text = $_[1];
15507 0         0 my $_savetext;
15508 0         0 @item = (q{func_args});
15509 0         0 %item = (__RULE__ => q{func_args});
15510 0         0 my $repcount = 0;
15511              
15512              
15513 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
15514             Parse::RecDescent::_tracefirst($text),
15515             q{func_args},
15516             $tracelevel)
15517             if defined $::RD_TRACE;
15518 1     1   8 if (1) { no strict qw{refs};
  1         3  
  1         344  
  0         0  
15519 0         0 $expectation->is(q{})->at($text);
15520 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
15521             {
15522              
15523 0 0       0 Parse::RecDescent::_trace(q{<>},
15524             Parse::RecDescent::_tracefirst($text),
15525             q{func_args},
15526             $tracelevel)
15527             if defined $::RD_TRACE;
15528 0         0 $expectation->failed();
15529 0         0 last;
15530             }
15531 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
15532             . $_tok . q{]},
15533              
15534             Parse::RecDescent::_tracefirst($text),
15535             q{func_args},
15536             $tracelevel)
15537             if defined $::RD_TRACE;
15538 0         0 $item{q{expression}} = $_tok;
15539 0         0 push @item, $_tok;
15540              
15541             }
15542              
15543              
15544 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
15545             Parse::RecDescent::_tracefirst($text),
15546             q{func_args},
15547             $tracelevel)
15548             if defined $::RD_TRACE;
15549 0         0 $_matched = 1;
15550 0         0 last;
15551             }
15552              
15553              
15554 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
15555             {
15556              
15557              
15558 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
15559 0 0       0 Parse::RecDescent::_trace(q{<>},
15560             Parse::RecDescent::_tracefirst($_[1]),
15561             q{func_args},
15562             $tracelevel)
15563             if defined $::RD_TRACE;
15564 0         0 return undef;
15565             }
15566 0 0 0     0 if (!defined($return) && defined($score))
15567             {
15568 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15569             q{func_args},
15570             $tracelevel)
15571             if defined $::RD_TRACE;
15572 0         0 $return = $score_return;
15573             }
15574 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
15575 0 0       0 $return = $item[$#item] unless defined $return;
15576 0 0       0 if (defined $::RD_TRACE)
15577             {
15578 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15579             $return . q{])}, "",
15580             q{func_args},
15581             $tracelevel);
15582 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
15583             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
15584             Parse::RecDescent::_tracefirst($text),
15585             , q{func_args},
15586             $tracelevel)
15587             }
15588 0         0 $_[1] = $text;
15589 0         0 return $return;
15590             }
15591              
15592             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15593             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::trigger_name
15594             {
15595 0     0   0 my $thisparser = $_[0];
15596 1     1   7 use vars q{$tracelevel};
  1         2  
  1         298  
15597 0   0     0 local $tracelevel = ($tracelevel||0)+1;
15598 0         0 $ERRORS = 0;
15599 0         0 my $thisrule = $thisparser->{"rules"}{"trigger_name"};
15600              
15601 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [trigger_name]},
15602             Parse::RecDescent::_tracefirst($_[1]),
15603             q{trigger_name},
15604             $tracelevel)
15605             if defined $::RD_TRACE;
15606              
15607              
15608 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
15609              
15610 0         0 my $score;
15611             my $score_return;
15612 0         0 my $_tok;
15613 0         0 my $return = undef;
15614 0         0 my $_matched=0;
15615 0         0 my $commit=0;
15616 0         0 my @item = ();
15617 0         0 my %item = ();
15618 0   0     0 my $repeating = defined($_[2]) && $_[2];
15619 0   0     0 my $_noactions = defined($_[3]) && $_[3];
15620 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
15621 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
15622 0         0 my $text;
15623 0         0 my $lastsep="";
15624 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15625 0         0 $expectation->at($_[1]);
15626              
15627 0         0 my $thisline;
15628 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15629              
15630              
15631              
15632 0   0     0 while (!$_matched && !$commit)
15633             {
15634              
15635 0 0       0 Parse::RecDescent::_trace(q{Trying production: [SCHEMA '.' NAME]},
15636             Parse::RecDescent::_tracefirst($_[1]),
15637             q{trigger_name},
15638             $tracelevel)
15639             if defined $::RD_TRACE;
15640 0         0 my $thisprod = $thisrule->{"prods"}[0];
15641 0         0 $text = $_[1];
15642 0         0 my $_savetext;
15643 0         0 @item = (q{trigger_name});
15644 0         0 %item = (__RULE__ => q{trigger_name});
15645 0         0 my $repcount = 0;
15646              
15647              
15648 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [SCHEMA]},
15649             Parse::RecDescent::_tracefirst($text),
15650             q{trigger_name},
15651             $tracelevel)
15652             if defined $::RD_TRACE;
15653 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         265  
  0         0  
15654 0         0 $expectation->is(q{})->at($text);
15655 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
15656             {
15657              
15658 0 0       0 Parse::RecDescent::_trace(q{<>},
15659             Parse::RecDescent::_tracefirst($text),
15660             q{trigger_name},
15661             $tracelevel)
15662             if defined $::RD_TRACE;
15663 0         0 $expectation->failed();
15664 0         0 last;
15665             }
15666 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [SCHEMA]<< (return value: [}
15667             . $_tok . q{]},
15668              
15669             Parse::RecDescent::_tracefirst($text),
15670             q{trigger_name},
15671             $tracelevel)
15672             if defined $::RD_TRACE;
15673 0         0 $item{q{SCHEMA}} = $_tok;
15674 0         0 push @item, $_tok;
15675              
15676             }
15677              
15678 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['.']},
15679             Parse::RecDescent::_tracefirst($text),
15680             q{trigger_name},
15681             $tracelevel)
15682             if defined $::RD_TRACE;
15683 0         0 $lastsep = "";
15684 0         0 $expectation->is(q{'.'})->at($text);
15685              
15686              
15687 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\.//)
  0 0       0  
15688             {
15689              
15690 0         0 $expectation->failed();
15691 0 0       0 Parse::RecDescent::_trace(qq{<>},
15692             Parse::RecDescent::_tracefirst($text))
15693             if defined $::RD_TRACE;
15694 0         0 last;
15695             }
15696 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15697             . $& . q{])},
15698             Parse::RecDescent::_tracefirst($text))
15699             if defined $::RD_TRACE;
15700 0         0 push @item, $item{__STRING1__}=$&;
15701              
15702              
15703 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
15704             Parse::RecDescent::_tracefirst($text),
15705             q{trigger_name},
15706             $tracelevel)
15707             if defined $::RD_TRACE;
15708 1     1   7 if (1) { no strict qw{refs};
  1         4  
  1         288  
  0         0  
15709 0         0 $expectation->is(q{NAME})->at($text);
15710 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
15711             {
15712              
15713 0 0       0 Parse::RecDescent::_trace(q{<>},
15714             Parse::RecDescent::_tracefirst($text),
15715             q{trigger_name},
15716             $tracelevel)
15717             if defined $::RD_TRACE;
15718 0         0 $expectation->failed();
15719 0         0 last;
15720             }
15721 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
15722             . $_tok . q{]},
15723              
15724             Parse::RecDescent::_tracefirst($text),
15725             q{trigger_name},
15726             $tracelevel)
15727             if defined $::RD_TRACE;
15728 0         0 $item{q{NAME}} = $_tok;
15729 0         0 push @item, $_tok;
15730              
15731             }
15732              
15733 0 0       0 Parse::RecDescent::_trace(q{Trying action},
15734             Parse::RecDescent::_tracefirst($text),
15735             q{trigger_name},
15736             $tracelevel)
15737             if defined $::RD_TRACE;
15738              
15739              
15740 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = { schema => $item[1], name => $item[3] } };
  0         0  
15741 0 0       0 unless (defined $_tok)
15742             {
15743 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
15744             if defined $::RD_TRACE;
15745 0         0 last;
15746             }
15747 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
15748             . $_tok . q{])},
15749             Parse::RecDescent::_tracefirst($text))
15750             if defined $::RD_TRACE;
15751 0         0 push @item, $_tok;
15752 0         0 $item{__ACTION1__}=$_tok;
15753              
15754              
15755              
15756 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [SCHEMA '.' NAME]<<},
15757             Parse::RecDescent::_tracefirst($text),
15758             q{trigger_name},
15759             $tracelevel)
15760             if defined $::RD_TRACE;
15761 0         0 $_matched = 1;
15762 0         0 last;
15763             }
15764              
15765              
15766 0   0     0 while (!$_matched && !$commit)
15767             {
15768              
15769 0 0       0 Parse::RecDescent::_trace(q{Trying production: [NAME]},
15770             Parse::RecDescent::_tracefirst($_[1]),
15771             q{trigger_name},
15772             $tracelevel)
15773             if defined $::RD_TRACE;
15774 0         0 my $thisprod = $thisrule->{"prods"}[1];
15775 0         0 $text = $_[1];
15776 0         0 my $_savetext;
15777 0         0 @item = (q{trigger_name});
15778 0         0 %item = (__RULE__ => q{trigger_name});
15779 0         0 my $repcount = 0;
15780              
15781              
15782 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
15783             Parse::RecDescent::_tracefirst($text),
15784             q{trigger_name},
15785             $tracelevel)
15786             if defined $::RD_TRACE;
15787 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         459  
  0         0  
15788 0         0 $expectation->is(q{})->at($text);
15789 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
15790             {
15791              
15792 0 0       0 Parse::RecDescent::_trace(q{<>},
15793             Parse::RecDescent::_tracefirst($text),
15794             q{trigger_name},
15795             $tracelevel)
15796             if defined $::RD_TRACE;
15797 0         0 $expectation->failed();
15798 0         0 last;
15799             }
15800 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
15801             . $_tok . q{]},
15802              
15803             Parse::RecDescent::_tracefirst($text),
15804             q{trigger_name},
15805             $tracelevel)
15806             if defined $::RD_TRACE;
15807 0         0 $item{q{NAME}} = $_tok;
15808 0         0 push @item, $_tok;
15809              
15810             }
15811              
15812 0 0       0 Parse::RecDescent::_trace(q{Trying action},
15813             Parse::RecDescent::_tracefirst($text),
15814             q{trigger_name},
15815             $tracelevel)
15816             if defined $::RD_TRACE;
15817              
15818              
15819 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = { name => $item[1] } };
  0         0  
15820 0 0       0 unless (defined $_tok)
15821             {
15822 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
15823             if defined $::RD_TRACE;
15824 0         0 last;
15825             }
15826 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
15827             . $_tok . q{])},
15828             Parse::RecDescent::_tracefirst($text))
15829             if defined $::RD_TRACE;
15830 0         0 push @item, $_tok;
15831 0         0 $item{__ACTION1__}=$_tok;
15832              
15833              
15834              
15835 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
15836             Parse::RecDescent::_tracefirst($text),
15837             q{trigger_name},
15838             $tracelevel)
15839             if defined $::RD_TRACE;
15840 0         0 $_matched = 1;
15841 0         0 last;
15842             }
15843              
15844              
15845 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
15846             {
15847              
15848              
15849 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
15850 0 0       0 Parse::RecDescent::_trace(q{<>},
15851             Parse::RecDescent::_tracefirst($_[1]),
15852             q{trigger_name},
15853             $tracelevel)
15854             if defined $::RD_TRACE;
15855 0         0 return undef;
15856             }
15857 0 0 0     0 if (!defined($return) && defined($score))
15858             {
15859 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15860             q{trigger_name},
15861             $tracelevel)
15862             if defined $::RD_TRACE;
15863 0         0 $return = $score_return;
15864             }
15865 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
15866 0 0       0 $return = $item[$#item] unless defined $return;
15867 0 0       0 if (defined $::RD_TRACE)
15868             {
15869 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15870             $return . q{])}, "",
15871             q{trigger_name},
15872             $tracelevel);
15873 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
15874             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
15875             Parse::RecDescent::_tracefirst($text),
15876             , q{trigger_name},
15877             $tracelevel)
15878             }
15879 0         0 $_[1] = $text;
15880 0         0 return $return;
15881             }
15882              
15883             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15884             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_numbering_function
15885             {
15886 0     0   0 my $thisparser = $_[0];
15887 1     1   7 use vars q{$tracelevel};
  1         4  
  1         512  
15888 0   0     0 local $tracelevel = ($tracelevel||0)+1;
15889 0         0 $ERRORS = 0;
15890 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_numbering_function"};
15891              
15892 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_numbering_function]},
15893             Parse::RecDescent::_tracefirst($_[1]),
15894             q{_alternation_2_of_production_1_of_rule_numbering_function},
15895             $tracelevel)
15896             if defined $::RD_TRACE;
15897              
15898              
15899 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
15900              
15901 0         0 my $score;
15902             my $score_return;
15903 0         0 my $_tok;
15904 0         0 my $return = undef;
15905 0         0 my $_matched=0;
15906 0         0 my $commit=0;
15907 0         0 my @item = ();
15908 0         0 my %item = ();
15909 0   0     0 my $repeating = defined($_[2]) && $_[2];
15910 0   0     0 my $_noactions = defined($_[3]) && $_[3];
15911 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
15912 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
15913 0         0 my $text;
15914 0         0 my $lastsep="";
15915 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15916 0         0 $expectation->at($_[1]);
15917              
15918 0         0 my $thisline;
15919 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15920              
15921              
15922              
15923 0   0     0 while (!$_matched && !$commit)
15924             {
15925              
15926 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]},
15927             Parse::RecDescent::_tracefirst($_[1]),
15928             q{_alternation_2_of_production_1_of_rule_numbering_function},
15929             $tracelevel)
15930             if defined $::RD_TRACE;
15931 0         0 my $thisprod = $thisrule->{"prods"}[0];
15932 0         0 $text = $_[1];
15933 0         0 my $_savetext;
15934 0         0 @item = (q{_alternation_2_of_production_1_of_rule_numbering_function});
15935 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_numbering_function});
15936 0         0 my $repcount = 0;
15937              
15938              
15939 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
15940             q{_alternation_2_of_production_1_of_rule_numbering_function},
15941             $tracelevel)
15942             if defined $::RD_TRACE;
15943 0         0 $lastsep = "";
15944 0         0 $expectation->is(q{})->at($text);
15945              
15946              
15947 0 0 0     0 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)
  0 0       0  
15948             {
15949              
15950 0         0 $expectation->failed();
15951 0 0       0 Parse::RecDescent::_trace(q{<>},
15952             Parse::RecDescent::_tracefirst($text))
15953             if defined $::RD_TRACE;
15954              
15955 0         0 last;
15956             }
15957 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15958             . $& . q{])},
15959             Parse::RecDescent::_tracefirst($text))
15960             if defined $::RD_TRACE;
15961 0         0 push @item, $item{__PATTERN1__}=$&;
15962              
15963              
15964              
15965 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]<<},
15966             Parse::RecDescent::_tracefirst($text),
15967             q{_alternation_2_of_production_1_of_rule_numbering_function},
15968             $tracelevel)
15969             if defined $::RD_TRACE;
15970 0         0 $_matched = 1;
15971 0         0 last;
15972             }
15973              
15974              
15975 0   0     0 while (!$_matched && !$commit)
15976             {
15977              
15978 0 0       0 Parse::RecDescent::_trace(q{Trying production: [window_aggregation_group_clause]},
15979             Parse::RecDescent::_tracefirst($_[1]),
15980             q{_alternation_2_of_production_1_of_rule_numbering_function},
15981             $tracelevel)
15982             if defined $::RD_TRACE;
15983 0         0 my $thisprod = $thisrule->{"prods"}[1];
15984 0         0 $text = $_[1];
15985 0         0 my $_savetext;
15986 0         0 @item = (q{_alternation_2_of_production_1_of_rule_numbering_function});
15987 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_numbering_function});
15988 0         0 my $repcount = 0;
15989              
15990              
15991 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [window_aggregation_group_clause]},
15992             Parse::RecDescent::_tracefirst($text),
15993             q{_alternation_2_of_production_1_of_rule_numbering_function},
15994             $tracelevel)
15995             if defined $::RD_TRACE;
15996 1     1   45 if (1) { no strict qw{refs};
  1         4  
  1         364  
  0         0  
15997 0         0 $expectation->is(q{})->at($text);
15998 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
15999             {
16000              
16001 0 0       0 Parse::RecDescent::_trace(q{<>},
16002             Parse::RecDescent::_tracefirst($text),
16003             q{_alternation_2_of_production_1_of_rule_numbering_function},
16004             $tracelevel)
16005             if defined $::RD_TRACE;
16006 0         0 $expectation->failed();
16007 0         0 last;
16008             }
16009 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [window_aggregation_group_clause]<< (return value: [}
16010             . $_tok . q{]},
16011              
16012             Parse::RecDescent::_tracefirst($text),
16013             q{_alternation_2_of_production_1_of_rule_numbering_function},
16014             $tracelevel)
16015             if defined $::RD_TRACE;
16016 0         0 $item{q{window_aggregation_group_clause}} = $_tok;
16017 0         0 push @item, $_tok;
16018              
16019             }
16020              
16021              
16022 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [window_aggregation_group_clause]<<},
16023             Parse::RecDescent::_tracefirst($text),
16024             q{_alternation_2_of_production_1_of_rule_numbering_function},
16025             $tracelevel)
16026             if defined $::RD_TRACE;
16027 0         0 $_matched = 1;
16028 0         0 last;
16029             }
16030              
16031              
16032 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
16033             {
16034              
16035              
16036 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
16037 0 0       0 Parse::RecDescent::_trace(q{<>},
16038             Parse::RecDescent::_tracefirst($_[1]),
16039             q{_alternation_2_of_production_1_of_rule_numbering_function},
16040             $tracelevel)
16041             if defined $::RD_TRACE;
16042 0         0 return undef;
16043             }
16044 0 0 0     0 if (!defined($return) && defined($score))
16045             {
16046 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
16047             q{_alternation_2_of_production_1_of_rule_numbering_function},
16048             $tracelevel)
16049             if defined $::RD_TRACE;
16050 0         0 $return = $score_return;
16051             }
16052 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
16053 0 0       0 $return = $item[$#item] unless defined $return;
16054 0 0       0 if (defined $::RD_TRACE)
16055             {
16056 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
16057             $return . q{])}, "",
16058             q{_alternation_2_of_production_1_of_rule_numbering_function},
16059             $tracelevel);
16060 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
16061             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
16062             Parse::RecDescent::_tracefirst($text),
16063             , q{_alternation_2_of_production_1_of_rule_numbering_function},
16064             $tracelevel)
16065             }
16066 0         0 $_[1] = $text;
16067 0         0 return $return;
16068             }
16069              
16070             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16071             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_name
16072             {
16073 0     0   0 my $thisparser = $_[0];
16074 1     1   9 use vars q{$tracelevel};
  1         2  
  1         287  
16075 0   0     0 local $tracelevel = ($tracelevel||0)+1;
16076 0         0 $ERRORS = 0;
16077 0         0 my $thisrule = $thisparser->{"rules"}{"method_name"};
16078              
16079 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [method_name]},
16080             Parse::RecDescent::_tracefirst($_[1]),
16081             q{method_name},
16082             $tracelevel)
16083             if defined $::RD_TRACE;
16084              
16085              
16086 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
16087              
16088 0         0 my $score;
16089             my $score_return;
16090 0         0 my $_tok;
16091 0         0 my $return = undef;
16092 0         0 my $_matched=0;
16093 0         0 my $commit=0;
16094 0         0 my @item = ();
16095 0         0 my %item = ();
16096 0   0     0 my $repeating = defined($_[2]) && $_[2];
16097 0   0     0 my $_noactions = defined($_[3]) && $_[3];
16098 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
16099 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
16100 0         0 my $text;
16101 0         0 my $lastsep="";
16102 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16103 0         0 $expectation->at($_[1]);
16104              
16105 0         0 my $thisline;
16106 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16107              
16108              
16109              
16110 0   0     0 while (!$_matched && !$commit)
16111             {
16112              
16113 0 0       0 Parse::RecDescent::_trace(q{Trying production: [NAME]},
16114             Parse::RecDescent::_tracefirst($_[1]),
16115             q{method_name},
16116             $tracelevel)
16117             if defined $::RD_TRACE;
16118 0         0 my $thisprod = $thisrule->{"prods"}[0];
16119 0         0 $text = $_[1];
16120 0         0 my $_savetext;
16121 0         0 @item = (q{method_name});
16122 0         0 %item = (__RULE__ => q{method_name});
16123 0         0 my $repcount = 0;
16124              
16125              
16126 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
16127             Parse::RecDescent::_tracefirst($text),
16128             q{method_name},
16129             $tracelevel)
16130             if defined $::RD_TRACE;
16131 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         395  
  0         0  
16132 0         0 $expectation->is(q{})->at($text);
16133 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
16134             {
16135              
16136 0 0       0 Parse::RecDescent::_trace(q{<>},
16137             Parse::RecDescent::_tracefirst($text),
16138             q{method_name},
16139             $tracelevel)
16140             if defined $::RD_TRACE;
16141 0         0 $expectation->failed();
16142 0         0 last;
16143             }
16144 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
16145             . $_tok . q{]},
16146              
16147             Parse::RecDescent::_tracefirst($text),
16148             q{method_name},
16149             $tracelevel)
16150             if defined $::RD_TRACE;
16151 0         0 $item{q{NAME}} = $_tok;
16152 0         0 push @item, $_tok;
16153              
16154             }
16155              
16156 0 0       0 Parse::RecDescent::_trace(q{Trying action},
16157             Parse::RecDescent::_tracefirst($text),
16158             q{method_name},
16159             $tracelevel)
16160             if defined $::RD_TRACE;
16161              
16162              
16163 0 0       0 $_tok = ($_noactions) ? 0 : do { # must be a method of subject_expression
16164             };
16165 0 0       0 unless (defined $_tok)
16166             {
16167 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
16168             if defined $::RD_TRACE;
16169 0         0 last;
16170             }
16171 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
16172             . $_tok . q{])},
16173             Parse::RecDescent::_tracefirst($text))
16174             if defined $::RD_TRACE;
16175 0         0 push @item, $_tok;
16176 0         0 $item{__ACTION1__}=$_tok;
16177              
16178              
16179              
16180 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
16181             Parse::RecDescent::_tracefirst($text),
16182             q{method_name},
16183             $tracelevel)
16184             if defined $::RD_TRACE;
16185 0         0 $_matched = 1;
16186 0         0 last;
16187             }
16188              
16189              
16190 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
16191             {
16192              
16193              
16194 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
16195 0 0       0 Parse::RecDescent::_trace(q{<>},
16196             Parse::RecDescent::_tracefirst($_[1]),
16197             q{method_name},
16198             $tracelevel)
16199             if defined $::RD_TRACE;
16200 0         0 return undef;
16201             }
16202 0 0 0     0 if (!defined($return) && defined($score))
16203             {
16204 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
16205             q{method_name},
16206             $tracelevel)
16207             if defined $::RD_TRACE;
16208 0         0 $return = $score_return;
16209             }
16210 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
16211 0 0       0 $return = $item[$#item] unless defined $return;
16212 0 0       0 if (defined $::RD_TRACE)
16213             {
16214 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
16215             $return . q{])}, "",
16216             q{method_name},
16217             $tracelevel);
16218 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
16219             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
16220             Parse::RecDescent::_tracefirst($text),
16221             , q{method_name},
16222             $tracelevel)
16223             }
16224 0         0 $_[1] = $text;
16225 0         0 return $return;
16226             }
16227              
16228             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16229             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::quantified_p
16230             {
16231 0     0   0 my $thisparser = $_[0];
16232 1     1   7 use vars q{$tracelevel};
  1         3  
  1         287  
16233 0   0     0 local $tracelevel = ($tracelevel||0)+1;
16234 0         0 $ERRORS = 0;
16235 0         0 my $thisrule = $thisparser->{"rules"}{"quantified_p"};
16236              
16237 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [quantified_p]},
16238             Parse::RecDescent::_tracefirst($_[1]),
16239             q{quantified_p},
16240             $tracelevel)
16241             if defined $::RD_TRACE;
16242              
16243              
16244 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
16245              
16246 0         0 my $score;
16247             my $score_return;
16248 0         0 my $_tok;
16249 0         0 my $return = undef;
16250 0         0 my $_matched=0;
16251 0         0 my $commit=0;
16252 0         0 my @item = ();
16253 0         0 my %item = ();
16254 0   0     0 my $repeating = defined($_[2]) && $_[2];
16255 0   0     0 my $_noactions = defined($_[3]) && $_[3];
16256 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
16257 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
16258 0         0 my $text;
16259 0         0 my $lastsep="";
16260 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16261 0         0 $expectation->at($_[1]);
16262              
16263 0         0 my $thisline;
16264 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16265              
16266              
16267              
16268 0   0     0 while (!$_matched && !$commit)
16269             {
16270              
16271 0 0       0 Parse::RecDescent::_trace(q{Trying production: [expression1 /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ /SOME|ANY|ALL/i '(' fullselect ')']},
16272             Parse::RecDescent::_tracefirst($_[1]),
16273             q{quantified_p},
16274             $tracelevel)
16275             if defined $::RD_TRACE;
16276 0         0 my $thisprod = $thisrule->{"prods"}[0];
16277 0         0 $text = $_[1];
16278 0         0 my $_savetext;
16279 0         0 @item = (q{quantified_p});
16280 0         0 %item = (__RULE__ => q{quantified_p});
16281 0         0 my $repcount = 0;
16282              
16283              
16284 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expression1]},
16285             Parse::RecDescent::_tracefirst($text),
16286             q{quantified_p},
16287             $tracelevel)
16288             if defined $::RD_TRACE;
16289 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         546  
  0         0  
16290 0         0 $expectation->is(q{})->at($text);
16291 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression1($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
16292             {
16293              
16294 0 0       0 Parse::RecDescent::_trace(q{<>},
16295             Parse::RecDescent::_tracefirst($text),
16296             q{quantified_p},
16297             $tracelevel)
16298             if defined $::RD_TRACE;
16299 0         0 $expectation->failed();
16300 0         0 last;
16301             }
16302 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expression1]<< (return value: [}
16303             . $_tok . q{]},
16304              
16305             Parse::RecDescent::_tracefirst($text),
16306             q{quantified_p},
16307             $tracelevel)
16308             if defined $::RD_TRACE;
16309 0         0 $item{q{expression1}} = $_tok;
16310 0         0 push @item, $_tok;
16311              
16312             }
16313              
16314 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/]}, Parse::RecDescent::_tracefirst($text),
16315             q{quantified_p},
16316             $tracelevel)
16317             if defined $::RD_TRACE;
16318 0         0 $lastsep = "";
16319 0         0 $expectation->is(q{/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/})->at($text);
16320              
16321              
16322 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(=|<>|<|>|<=|=>|\^=|\^<|\^>|\!=))//)
  0 0       0  
16323             {
16324              
16325 0         0 $expectation->failed();
16326 0 0       0 Parse::RecDescent::_trace(q{<>},
16327             Parse::RecDescent::_tracefirst($text))
16328             if defined $::RD_TRACE;
16329              
16330 0         0 last;
16331             }
16332 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16333             . $& . q{])},
16334             Parse::RecDescent::_tracefirst($text))
16335             if defined $::RD_TRACE;
16336 0         0 push @item, $item{__PATTERN1__}=$&;
16337              
16338              
16339 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SOME|ANY|ALL/i]}, Parse::RecDescent::_tracefirst($text),
16340             q{quantified_p},
16341             $tracelevel)
16342             if defined $::RD_TRACE;
16343 0         0 $lastsep = "";
16344 0         0 $expectation->is(q{/SOME|ANY|ALL/i})->at($text);
16345              
16346              
16347 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SOME|ANY|ALL)//i)
  0 0       0  
16348             {
16349              
16350 0         0 $expectation->failed();
16351 0 0       0 Parse::RecDescent::_trace(q{<>},
16352             Parse::RecDescent::_tracefirst($text))
16353             if defined $::RD_TRACE;
16354              
16355 0         0 last;
16356             }
16357 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16358             . $& . q{])},
16359             Parse::RecDescent::_tracefirst($text))
16360             if defined $::RD_TRACE;
16361 0         0 push @item, $item{__PATTERN2__}=$&;
16362              
16363              
16364 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
16365             Parse::RecDescent::_tracefirst($text),
16366             q{quantified_p},
16367             $tracelevel)
16368             if defined $::RD_TRACE;
16369 0         0 $lastsep = "";
16370 0         0 $expectation->is(q{'('})->at($text);
16371              
16372              
16373 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
16374             {
16375              
16376 0         0 $expectation->failed();
16377 0 0       0 Parse::RecDescent::_trace(qq{<>},
16378             Parse::RecDescent::_tracefirst($text))
16379             if defined $::RD_TRACE;
16380 0         0 last;
16381             }
16382 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16383             . $& . q{])},
16384             Parse::RecDescent::_tracefirst($text))
16385             if defined $::RD_TRACE;
16386 0         0 push @item, $item{__STRING1__}=$&;
16387              
16388              
16389 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [fullselect]},
16390             Parse::RecDescent::_tracefirst($text),
16391             q{quantified_p},
16392             $tracelevel)
16393             if defined $::RD_TRACE;
16394 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         499  
  0         0  
16395 0         0 $expectation->is(q{fullselect})->at($text);
16396 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
16397             {
16398              
16399 0 0       0 Parse::RecDescent::_trace(q{<>},
16400             Parse::RecDescent::_tracefirst($text),
16401             q{quantified_p},
16402             $tracelevel)
16403             if defined $::RD_TRACE;
16404 0         0 $expectation->failed();
16405 0         0 last;
16406             }
16407 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [fullselect]<< (return value: [}
16408             . $_tok . q{]},
16409              
16410             Parse::RecDescent::_tracefirst($text),
16411             q{quantified_p},
16412             $tracelevel)
16413             if defined $::RD_TRACE;
16414 0         0 $item{q{fullselect}} = $_tok;
16415 0         0 push @item, $_tok;
16416              
16417             }
16418              
16419 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
16420             Parse::RecDescent::_tracefirst($text),
16421             q{quantified_p},
16422             $tracelevel)
16423             if defined $::RD_TRACE;
16424 0         0 $lastsep = "";
16425 0         0 $expectation->is(q{')'})->at($text);
16426              
16427              
16428 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
16429             {
16430              
16431 0         0 $expectation->failed();
16432 0 0       0 Parse::RecDescent::_trace(qq{<>},
16433             Parse::RecDescent::_tracefirst($text))
16434             if defined $::RD_TRACE;
16435 0         0 last;
16436             }
16437 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16438             . $& . q{])},
16439             Parse::RecDescent::_tracefirst($text))
16440             if defined $::RD_TRACE;
16441 0         0 push @item, $item{__STRING2__}=$&;
16442              
16443              
16444              
16445 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [expression1 /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ /SOME|ANY|ALL/i '(' fullselect ')']<<},
16446             Parse::RecDescent::_tracefirst($text),
16447             q{quantified_p},
16448             $tracelevel)
16449             if defined $::RD_TRACE;
16450 0         0 $_matched = 1;
16451 0         0 last;
16452             }
16453              
16454              
16455 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
16456             {
16457              
16458              
16459 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
16460 0 0       0 Parse::RecDescent::_trace(q{<>},
16461             Parse::RecDescent::_tracefirst($_[1]),
16462             q{quantified_p},
16463             $tracelevel)
16464             if defined $::RD_TRACE;
16465 0         0 return undef;
16466             }
16467 0 0 0     0 if (!defined($return) && defined($score))
16468             {
16469 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
16470             q{quantified_p},
16471             $tracelevel)
16472             if defined $::RD_TRACE;
16473 0         0 $return = $score_return;
16474             }
16475 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
16476 0 0       0 $return = $item[$#item] unless defined $return;
16477 0 0       0 if (defined $::RD_TRACE)
16478             {
16479 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
16480             $return . q{])}, "",
16481             q{quantified_p},
16482             $tracelevel);
16483 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
16484             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
16485             Parse::RecDescent::_tracefirst($text),
16486             , q{quantified_p},
16487             $tracelevel)
16488             }
16489 0         0 $_[1] = $text;
16490 0         0 return $return;
16491             }
16492              
16493             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16494             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression
16495             {
16496 0     0   0 my $thisparser = $_[0];
16497 1     1   8 use vars q{$tracelevel};
  1         3  
  1         288  
16498 0   0     0 local $tracelevel = ($tracelevel||0)+1;
16499 0         0 $ERRORS = 0;
16500 0         0 my $thisrule = $thisparser->{"rules"}{"common_table_expression"};
16501              
16502 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [common_table_expression]},
16503             Parse::RecDescent::_tracefirst($_[1]),
16504             q{common_table_expression},
16505             $tracelevel)
16506             if defined $::RD_TRACE;
16507              
16508              
16509 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
16510              
16511 0         0 my $score;
16512             my $score_return;
16513 0         0 my $_tok;
16514 0         0 my $return = undef;
16515 0         0 my $_matched=0;
16516 0         0 my $commit=0;
16517 0         0 my @item = ();
16518 0         0 my %item = ();
16519 0   0     0 my $repeating = defined($_[2]) && $_[2];
16520 0   0     0 my $_noactions = defined($_[3]) && $_[3];
16521 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
16522 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
16523 0         0 my $text;
16524 0         0 my $lastsep="";
16525 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16526 0         0 $expectation->at($_[1]);
16527              
16528 0         0 my $thisline;
16529 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16530              
16531              
16532              
16533 0   0     0 while (!$_matched && !$commit)
16534             {
16535              
16536 0 0       0 Parse::RecDescent::_trace(q{Trying production: [table_name column_list /AS/i get_bracketed]},
16537             Parse::RecDescent::_tracefirst($_[1]),
16538             q{common_table_expression},
16539             $tracelevel)
16540             if defined $::RD_TRACE;
16541 0         0 my $thisprod = $thisrule->{"prods"}[0];
16542 0         0 $text = $_[1];
16543 0         0 my $_savetext;
16544 0         0 @item = (q{common_table_expression});
16545 0         0 %item = (__RULE__ => q{common_table_expression});
16546 0         0 my $repcount = 0;
16547              
16548              
16549 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
16550             Parse::RecDescent::_tracefirst($text),
16551             q{common_table_expression},
16552             $tracelevel)
16553             if defined $::RD_TRACE;
16554 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         132  
  0         0  
16555 0         0 $expectation->is(q{})->at($text);
16556 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
16557             {
16558              
16559 0 0       0 Parse::RecDescent::_trace(q{<>},
16560             Parse::RecDescent::_tracefirst($text),
16561             q{common_table_expression},
16562             $tracelevel)
16563             if defined $::RD_TRACE;
16564 0         0 $expectation->failed();
16565 0         0 last;
16566             }
16567 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
16568             . $_tok . q{]},
16569              
16570             Parse::RecDescent::_tracefirst($text),
16571             q{common_table_expression},
16572             $tracelevel)
16573             if defined $::RD_TRACE;
16574 0         0 $item{q{table_name}} = $_tok;
16575 0         0 push @item, $_tok;
16576              
16577             }
16578              
16579 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [column_list]},
16580             Parse::RecDescent::_tracefirst($text),
16581             q{common_table_expression},
16582             $tracelevel)
16583             if defined $::RD_TRACE;
16584 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         275  
  0         0  
16585 0         0 $expectation->is(q{column_list})->at($text);
16586 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
16587             {
16588              
16589 0 0       0 Parse::RecDescent::_trace(q{<>},
16590             Parse::RecDescent::_tracefirst($text),
16591             q{common_table_expression},
16592             $tracelevel)
16593             if defined $::RD_TRACE;
16594 0         0 $expectation->failed();
16595 0         0 last;
16596             }
16597 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [column_list]<< (return value: [}
16598             . $_tok . q{]},
16599              
16600             Parse::RecDescent::_tracefirst($text),
16601             q{common_table_expression},
16602             $tracelevel)
16603             if defined $::RD_TRACE;
16604 0         0 $item{q{column_list}} = $_tok;
16605 0         0 push @item, $_tok;
16606              
16607             }
16608              
16609 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
16610             q{common_table_expression},
16611             $tracelevel)
16612             if defined $::RD_TRACE;
16613 0         0 $lastsep = "";
16614 0         0 $expectation->is(q{/AS/i})->at($text);
16615              
16616              
16617 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:AS)//i)
  0 0       0  
16618             {
16619              
16620 0         0 $expectation->failed();
16621 0 0       0 Parse::RecDescent::_trace(q{<>},
16622             Parse::RecDescent::_tracefirst($text))
16623             if defined $::RD_TRACE;
16624              
16625 0         0 last;
16626             }
16627 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16628             . $& . q{])},
16629             Parse::RecDescent::_tracefirst($text))
16630             if defined $::RD_TRACE;
16631 0         0 push @item, $item{__PATTERN1__}=$&;
16632              
16633              
16634 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [get_bracketed]},
16635             Parse::RecDescent::_tracefirst($text),
16636             q{common_table_expression},
16637             $tracelevel)
16638             if defined $::RD_TRACE;
16639 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         331  
  0         0  
16640 0         0 $expectation->is(q{get_bracketed})->at($text);
16641 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::get_bracketed($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
16642             {
16643              
16644 0 0       0 Parse::RecDescent::_trace(q{<>},
16645             Parse::RecDescent::_tracefirst($text),
16646             q{common_table_expression},
16647             $tracelevel)
16648             if defined $::RD_TRACE;
16649 0         0 $expectation->failed();
16650 0         0 last;
16651             }
16652 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [get_bracketed]<< (return value: [}
16653             . $_tok . q{]},
16654              
16655             Parse::RecDescent::_tracefirst($text),
16656             q{common_table_expression},
16657             $tracelevel)
16658             if defined $::RD_TRACE;
16659 0         0 $item{q{get_bracketed}} = $_tok;
16660 0         0 push @item, $_tok;
16661              
16662             }
16663              
16664 0 0       0 Parse::RecDescent::_trace(q{Trying action},
16665             Parse::RecDescent::_tracefirst($text),
16666             q{common_table_expression},
16667             $tracelevel)
16668             if defined $::RD_TRACE;
16669              
16670              
16671 0 0       0 $_tok = ($_noactions) ? 0 : do {
16672             $return = { name => $item{table_name}{name},
16673 0         0 query => $item[4]
16674             };
16675             };
16676 0 0       0 unless (defined $_tok)
16677             {
16678 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
16679             if defined $::RD_TRACE;
16680 0         0 last;
16681             }
16682 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
16683             . $_tok . q{])},
16684             Parse::RecDescent::_tracefirst($text))
16685             if defined $::RD_TRACE;
16686 0         0 push @item, $_tok;
16687 0         0 $item{__ACTION1__}=$_tok;
16688              
16689              
16690              
16691 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [table_name column_list /AS/i get_bracketed]<<},
16692             Parse::RecDescent::_tracefirst($text),
16693             q{common_table_expression},
16694             $tracelevel)
16695             if defined $::RD_TRACE;
16696 0         0 $_matched = 1;
16697 0         0 last;
16698             }
16699              
16700              
16701 0   0     0 while (!$_matched && !$commit)
16702             {
16703              
16704 0 0       0 Parse::RecDescent::_trace(q{Trying production: [table_name column_list /AS/i '(' fullselect ')']},
16705             Parse::RecDescent::_tracefirst($_[1]),
16706             q{common_table_expression},
16707             $tracelevel)
16708             if defined $::RD_TRACE;
16709 0         0 my $thisprod = $thisrule->{"prods"}[1];
16710 0         0 $text = $_[1];
16711 0         0 my $_savetext;
16712 0         0 @item = (q{common_table_expression});
16713 0         0 %item = (__RULE__ => q{common_table_expression});
16714 0         0 my $repcount = 0;
16715              
16716              
16717 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
16718             Parse::RecDescent::_tracefirst($text),
16719             q{common_table_expression},
16720             $tracelevel)
16721             if defined $::RD_TRACE;
16722 1     1   6 if (1) { no strict qw{refs};
  1         9  
  1         144  
  0         0  
16723 0         0 $expectation->is(q{})->at($text);
16724 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
16725             {
16726              
16727 0 0       0 Parse::RecDescent::_trace(q{<>},
16728             Parse::RecDescent::_tracefirst($text),
16729             q{common_table_expression},
16730             $tracelevel)
16731             if defined $::RD_TRACE;
16732 0         0 $expectation->failed();
16733 0         0 last;
16734             }
16735 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
16736             . $_tok . q{]},
16737              
16738             Parse::RecDescent::_tracefirst($text),
16739             q{common_table_expression},
16740             $tracelevel)
16741             if defined $::RD_TRACE;
16742 0         0 $item{q{table_name}} = $_tok;
16743 0         0 push @item, $_tok;
16744              
16745             }
16746              
16747 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [column_list]},
16748             Parse::RecDescent::_tracefirst($text),
16749             q{common_table_expression},
16750             $tracelevel)
16751             if defined $::RD_TRACE;
16752 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         450  
  0         0  
16753 0         0 $expectation->is(q{column_list})->at($text);
16754 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
16755             {
16756              
16757 0 0       0 Parse::RecDescent::_trace(q{<>},
16758             Parse::RecDescent::_tracefirst($text),
16759             q{common_table_expression},
16760             $tracelevel)
16761             if defined $::RD_TRACE;
16762 0         0 $expectation->failed();
16763 0         0 last;
16764             }
16765 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [column_list]<< (return value: [}
16766             . $_tok . q{]},
16767              
16768             Parse::RecDescent::_tracefirst($text),
16769             q{common_table_expression},
16770             $tracelevel)
16771             if defined $::RD_TRACE;
16772 0         0 $item{q{column_list}} = $_tok;
16773 0         0 push @item, $_tok;
16774              
16775             }
16776              
16777 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
16778             q{common_table_expression},
16779             $tracelevel)
16780             if defined $::RD_TRACE;
16781 0         0 $lastsep = "";
16782 0         0 $expectation->is(q{/AS/i})->at($text);
16783              
16784              
16785 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:AS)//i)
  0 0       0  
16786             {
16787              
16788 0         0 $expectation->failed();
16789 0 0       0 Parse::RecDescent::_trace(q{<>},
16790             Parse::RecDescent::_tracefirst($text))
16791             if defined $::RD_TRACE;
16792              
16793 0         0 last;
16794             }
16795 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16796             . $& . q{])},
16797             Parse::RecDescent::_tracefirst($text))
16798             if defined $::RD_TRACE;
16799 0         0 push @item, $item{__PATTERN1__}=$&;
16800              
16801              
16802 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
16803             Parse::RecDescent::_tracefirst($text),
16804             q{common_table_expression},
16805             $tracelevel)
16806             if defined $::RD_TRACE;
16807 0         0 $lastsep = "";
16808 0         0 $expectation->is(q{'('})->at($text);
16809              
16810              
16811 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
16812             {
16813              
16814 0         0 $expectation->failed();
16815 0 0       0 Parse::RecDescent::_trace(qq{<>},
16816             Parse::RecDescent::_tracefirst($text))
16817             if defined $::RD_TRACE;
16818 0         0 last;
16819             }
16820 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16821             . $& . q{])},
16822             Parse::RecDescent::_tracefirst($text))
16823             if defined $::RD_TRACE;
16824 0         0 push @item, $item{__STRING1__}=$&;
16825              
16826              
16827 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [fullselect]},
16828             Parse::RecDescent::_tracefirst($text),
16829             q{common_table_expression},
16830             $tracelevel)
16831             if defined $::RD_TRACE;
16832 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         557  
  0         0  
16833 0         0 $expectation->is(q{fullselect})->at($text);
16834 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
16835             {
16836              
16837 0 0       0 Parse::RecDescent::_trace(q{<>},
16838             Parse::RecDescent::_tracefirst($text),
16839             q{common_table_expression},
16840             $tracelevel)
16841             if defined $::RD_TRACE;
16842 0         0 $expectation->failed();
16843 0         0 last;
16844             }
16845 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [fullselect]<< (return value: [}
16846             . $_tok . q{]},
16847              
16848             Parse::RecDescent::_tracefirst($text),
16849             q{common_table_expression},
16850             $tracelevel)
16851             if defined $::RD_TRACE;
16852 0         0 $item{q{fullselect}} = $_tok;
16853 0         0 push @item, $_tok;
16854              
16855             }
16856              
16857 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
16858             Parse::RecDescent::_tracefirst($text),
16859             q{common_table_expression},
16860             $tracelevel)
16861             if defined $::RD_TRACE;
16862 0         0 $lastsep = "";
16863 0         0 $expectation->is(q{')'})->at($text);
16864              
16865              
16866 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
16867             {
16868              
16869 0         0 $expectation->failed();
16870 0 0       0 Parse::RecDescent::_trace(qq{<>},
16871             Parse::RecDescent::_tracefirst($text))
16872             if defined $::RD_TRACE;
16873 0         0 last;
16874             }
16875 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16876             . $& . q{])},
16877             Parse::RecDescent::_tracefirst($text))
16878             if defined $::RD_TRACE;
16879 0         0 push @item, $item{__STRING2__}=$&;
16880              
16881              
16882              
16883 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [table_name column_list /AS/i '(' fullselect ')']<<},
16884             Parse::RecDescent::_tracefirst($text),
16885             q{common_table_expression},
16886             $tracelevel)
16887             if defined $::RD_TRACE;
16888 0         0 $_matched = 1;
16889 0         0 last;
16890             }
16891              
16892              
16893 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
16894             {
16895              
16896              
16897 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
16898 0 0       0 Parse::RecDescent::_trace(q{<>},
16899             Parse::RecDescent::_tracefirst($_[1]),
16900             q{common_table_expression},
16901             $tracelevel)
16902             if defined $::RD_TRACE;
16903 0         0 return undef;
16904             }
16905 0 0 0     0 if (!defined($return) && defined($score))
16906             {
16907 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
16908             q{common_table_expression},
16909             $tracelevel)
16910             if defined $::RD_TRACE;
16911 0         0 $return = $score_return;
16912             }
16913 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
16914 0 0       0 $return = $item[$#item] unless defined $return;
16915 0 0       0 if (defined $::RD_TRACE)
16916             {
16917 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
16918             $return . q{])}, "",
16919             q{common_table_expression},
16920             $tracelevel);
16921 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
16922             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
16923             Parse::RecDescent::_tracefirst($text),
16924             , q{common_table_expression},
16925             $tracelevel)
16926             }
16927 0         0 $_[1] = $text;
16928 0         0 return $return;
16929             }
16930              
16931             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16932             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::after
16933             {
16934 0     0   0 my $thisparser = $_[0];
16935 1     1   9 use vars q{$tracelevel};
  1         2  
  1         634  
16936 0   0     0 local $tracelevel = ($tracelevel||0)+1;
16937 0         0 $ERRORS = 0;
16938 0         0 my $thisrule = $thisparser->{"rules"}{"after"};
16939              
16940 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [after]},
16941             Parse::RecDescent::_tracefirst($_[1]),
16942             q{after},
16943             $tracelevel)
16944             if defined $::RD_TRACE;
16945              
16946              
16947 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
16948              
16949 0         0 my $score;
16950             my $score_return;
16951 0         0 my $_tok;
16952 0         0 my $return = undef;
16953 0         0 my $_matched=0;
16954 0         0 my $commit=0;
16955 0         0 my @item = ();
16956 0         0 my %item = ();
16957 0   0     0 my $repeating = defined($_[2]) && $_[2];
16958 0   0     0 my $_noactions = defined($_[3]) && $_[3];
16959 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
16960 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
16961 0         0 my $text;
16962 0         0 my $lastsep="";
16963 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16964 0         0 $expectation->at($_[1]);
16965              
16966 0         0 my $thisline;
16967 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16968              
16969              
16970              
16971 0   0     0 while (!$_matched && !$commit)
16972             {
16973              
16974 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/AFTER/i]},
16975             Parse::RecDescent::_tracefirst($_[1]),
16976             q{after},
16977             $tracelevel)
16978             if defined $::RD_TRACE;
16979 0         0 my $thisprod = $thisrule->{"prods"}[0];
16980 0         0 $text = $_[1];
16981 0         0 my $_savetext;
16982 0         0 @item = (q{after});
16983 0         0 %item = (__RULE__ => q{after});
16984 0         0 my $repcount = 0;
16985              
16986              
16987 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/AFTER/i]}, Parse::RecDescent::_tracefirst($text),
16988             q{after},
16989             $tracelevel)
16990             if defined $::RD_TRACE;
16991 0         0 $lastsep = "";
16992 0         0 $expectation->is(q{})->at($text);
16993              
16994              
16995 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:AFTER)//i)
  0 0       0  
16996             {
16997              
16998 0         0 $expectation->failed();
16999 0 0       0 Parse::RecDescent::_trace(q{<>},
17000             Parse::RecDescent::_tracefirst($text))
17001             if defined $::RD_TRACE;
17002              
17003 0         0 last;
17004             }
17005 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
17006             . $& . q{])},
17007             Parse::RecDescent::_tracefirst($text))
17008             if defined $::RD_TRACE;
17009 0         0 push @item, $item{__PATTERN1__}=$&;
17010              
17011              
17012              
17013 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/AFTER/i]<<},
17014             Parse::RecDescent::_tracefirst($text),
17015             q{after},
17016             $tracelevel)
17017             if defined $::RD_TRACE;
17018 0         0 $_matched = 1;
17019 0         0 last;
17020             }
17021              
17022              
17023 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
17024             {
17025              
17026              
17027 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
17028 0 0       0 Parse::RecDescent::_trace(q{<>},
17029             Parse::RecDescent::_tracefirst($_[1]),
17030             q{after},
17031             $tracelevel)
17032             if defined $::RD_TRACE;
17033 0         0 return undef;
17034             }
17035 0 0 0     0 if (!defined($return) && defined($score))
17036             {
17037 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
17038             q{after},
17039             $tracelevel)
17040             if defined $::RD_TRACE;
17041 0         0 $return = $score_return;
17042             }
17043 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
17044 0 0       0 $return = $item[$#item] unless defined $return;
17045 0 0       0 if (defined $::RD_TRACE)
17046             {
17047 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
17048             $return . q{])}, "",
17049             q{after},
17050             $tracelevel);
17051 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
17052             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
17053             Parse::RecDescent::_tracefirst($text),
17054             , q{after},
17055             $tracelevel)
17056             }
17057 0         0 $_[1] = $text;
17058 0         0 return $return;
17059             }
17060              
17061             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17062             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate
17063             {
17064 0     0   0 my $thisparser = $_[0];
17065 1     1   7 use vars q{$tracelevel};
  1         2  
  1         300  
17066 0   0     0 local $tracelevel = ($tracelevel||0)+1;
17067 0         0 $ERRORS = 0;
17068 0         0 my $thisrule = $thisparser->{"rules"}{"predicate"};
17069              
17070 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [predicate]},
17071             Parse::RecDescent::_tracefirst($_[1]),
17072             q{predicate},
17073             $tracelevel)
17074             if defined $::RD_TRACE;
17075              
17076              
17077 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
17078              
17079 0         0 my $score;
17080             my $score_return;
17081 0         0 my $_tok;
17082 0         0 my $return = undef;
17083 0         0 my $_matched=0;
17084 0         0 my $commit=0;
17085 0         0 my @item = ();
17086 0         0 my %item = ();
17087 0   0     0 my $repeating = defined($_[2]) && $_[2];
17088 0   0     0 my $_noactions = defined($_[3]) && $_[3];
17089 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
17090 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
17091 0         0 my $text;
17092 0         0 my $lastsep="";
17093 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17094 0         0 $expectation->at($_[1]);
17095              
17096 0         0 my $thisline;
17097 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17098              
17099              
17100              
17101 0   0     0 while (!$_matched && !$commit)
17102             {
17103              
17104 0 0       0 Parse::RecDescent::_trace(q{Trying production: [basic_p]},
17105             Parse::RecDescent::_tracefirst($_[1]),
17106             q{predicate},
17107             $tracelevel)
17108             if defined $::RD_TRACE;
17109 0         0 my $thisprod = $thisrule->{"prods"}[0];
17110 0         0 $text = $_[1];
17111 0         0 my $_savetext;
17112 0         0 @item = (q{predicate});
17113 0         0 %item = (__RULE__ => q{predicate});
17114 0         0 my $repcount = 0;
17115              
17116              
17117 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [basic_p]},
17118             Parse::RecDescent::_tracefirst($text),
17119             q{predicate},
17120             $tracelevel)
17121             if defined $::RD_TRACE;
17122 1     1   7 if (1) { no strict qw{refs};
  1         4  
  1         225  
  0         0  
17123 0         0 $expectation->is(q{})->at($text);
17124 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::basic_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
17125             {
17126              
17127 0 0       0 Parse::RecDescent::_trace(q{<>},
17128             Parse::RecDescent::_tracefirst($text),
17129             q{predicate},
17130             $tracelevel)
17131             if defined $::RD_TRACE;
17132 0         0 $expectation->failed();
17133 0         0 last;
17134             }
17135 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [basic_p]<< (return value: [}
17136             . $_tok . q{]},
17137              
17138             Parse::RecDescent::_tracefirst($text),
17139             q{predicate},
17140             $tracelevel)
17141             if defined $::RD_TRACE;
17142 0         0 $item{q{basic_p}} = $_tok;
17143 0         0 push @item, $_tok;
17144              
17145             }
17146              
17147              
17148 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [basic_p]<<},
17149             Parse::RecDescent::_tracefirst($text),
17150             q{predicate},
17151             $tracelevel)
17152             if defined $::RD_TRACE;
17153 0         0 $_matched = 1;
17154 0         0 last;
17155             }
17156              
17157              
17158 0   0     0 while (!$_matched && !$commit)
17159             {
17160              
17161 0 0       0 Parse::RecDescent::_trace(q{Trying production: [quantified_p]},
17162             Parse::RecDescent::_tracefirst($_[1]),
17163             q{predicate},
17164             $tracelevel)
17165             if defined $::RD_TRACE;
17166 0         0 my $thisprod = $thisrule->{"prods"}[1];
17167 0         0 $text = $_[1];
17168 0         0 my $_savetext;
17169 0         0 @item = (q{predicate});
17170 0         0 %item = (__RULE__ => q{predicate});
17171 0         0 my $repcount = 0;
17172              
17173              
17174 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [quantified_p]},
17175             Parse::RecDescent::_tracefirst($text),
17176             q{predicate},
17177             $tracelevel)
17178             if defined $::RD_TRACE;
17179 1     1   12 if (1) { no strict qw{refs};
  1         2  
  1         229  
  0         0  
17180 0         0 $expectation->is(q{})->at($text);
17181 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::quantified_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
17182             {
17183              
17184 0 0       0 Parse::RecDescent::_trace(q{<>},
17185             Parse::RecDescent::_tracefirst($text),
17186             q{predicate},
17187             $tracelevel)
17188             if defined $::RD_TRACE;
17189 0         0 $expectation->failed();
17190 0         0 last;
17191             }
17192 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [quantified_p]<< (return value: [}
17193             . $_tok . q{]},
17194              
17195             Parse::RecDescent::_tracefirst($text),
17196             q{predicate},
17197             $tracelevel)
17198             if defined $::RD_TRACE;
17199 0         0 $item{q{quantified_p}} = $_tok;
17200 0         0 push @item, $_tok;
17201              
17202             }
17203              
17204              
17205 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [quantified_p]<<},
17206             Parse::RecDescent::_tracefirst($text),
17207             q{predicate},
17208             $tracelevel)
17209             if defined $::RD_TRACE;
17210 0         0 $_matched = 1;
17211 0         0 last;
17212             }
17213              
17214              
17215 0   0     0 while (!$_matched && !$commit)
17216             {
17217              
17218 0 0       0 Parse::RecDescent::_trace(q{Trying production: [between_p]},
17219             Parse::RecDescent::_tracefirst($_[1]),
17220             q{predicate},
17221             $tracelevel)
17222             if defined $::RD_TRACE;
17223 0         0 my $thisprod = $thisrule->{"prods"}[2];
17224 0         0 $text = $_[1];
17225 0         0 my $_savetext;
17226 0         0 @item = (q{predicate});
17227 0         0 %item = (__RULE__ => q{predicate});
17228 0         0 my $repcount = 0;
17229              
17230              
17231 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [between_p]},
17232             Parse::RecDescent::_tracefirst($text),
17233             q{predicate},
17234             $tracelevel)
17235             if defined $::RD_TRACE;
17236 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         221  
  0         0  
17237 0         0 $expectation->is(q{})->at($text);
17238 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::between_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
17239             {
17240              
17241 0 0       0 Parse::RecDescent::_trace(q{<>},
17242             Parse::RecDescent::_tracefirst($text),
17243             q{predicate},
17244             $tracelevel)
17245             if defined $::RD_TRACE;
17246 0         0 $expectation->failed();
17247 0         0 last;
17248             }
17249 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [between_p]<< (return value: [}
17250             . $_tok . q{]},
17251              
17252             Parse::RecDescent::_tracefirst($text),
17253             q{predicate},
17254             $tracelevel)
17255             if defined $::RD_TRACE;
17256 0         0 $item{q{between_p}} = $_tok;
17257 0         0 push @item, $_tok;
17258              
17259             }
17260              
17261              
17262 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [between_p]<<},
17263             Parse::RecDescent::_tracefirst($text),
17264             q{predicate},
17265             $tracelevel)
17266             if defined $::RD_TRACE;
17267 0         0 $_matched = 1;
17268 0         0 last;
17269             }
17270              
17271              
17272 0   0     0 while (!$_matched && !$commit)
17273             {
17274              
17275 0 0       0 Parse::RecDescent::_trace(q{Trying production: [exists_p]},
17276             Parse::RecDescent::_tracefirst($_[1]),
17277             q{predicate},
17278             $tracelevel)
17279             if defined $::RD_TRACE;
17280 0         0 my $thisprod = $thisrule->{"prods"}[3];
17281 0         0 $text = $_[1];
17282 0         0 my $_savetext;
17283 0         0 @item = (q{predicate});
17284 0         0 %item = (__RULE__ => q{predicate});
17285 0         0 my $repcount = 0;
17286              
17287              
17288 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [exists_p]},
17289             Parse::RecDescent::_tracefirst($text),
17290             q{predicate},
17291             $tracelevel)
17292             if defined $::RD_TRACE;
17293 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         248  
  0         0  
17294 0         0 $expectation->is(q{})->at($text);
17295 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::exists_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
17296             {
17297              
17298 0 0       0 Parse::RecDescent::_trace(q{<>},
17299             Parse::RecDescent::_tracefirst($text),
17300             q{predicate},
17301             $tracelevel)
17302             if defined $::RD_TRACE;
17303 0         0 $expectation->failed();
17304 0         0 last;
17305             }
17306 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [exists_p]<< (return value: [}
17307             . $_tok . q{]},
17308              
17309             Parse::RecDescent::_tracefirst($text),
17310             q{predicate},
17311             $tracelevel)
17312             if defined $::RD_TRACE;
17313 0         0 $item{q{exists_p}} = $_tok;
17314 0         0 push @item, $_tok;
17315              
17316             }
17317              
17318              
17319 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [exists_p]<<},
17320             Parse::RecDescent::_tracefirst($text),
17321             q{predicate},
17322             $tracelevel)
17323             if defined $::RD_TRACE;
17324 0         0 $_matched = 1;
17325 0         0 last;
17326             }
17327              
17328              
17329 0   0     0 while (!$_matched && !$commit)
17330             {
17331              
17332 0 0       0 Parse::RecDescent::_trace(q{Trying production: [in_p]},
17333             Parse::RecDescent::_tracefirst($_[1]),
17334             q{predicate},
17335             $tracelevel)
17336             if defined $::RD_TRACE;
17337 0         0 my $thisprod = $thisrule->{"prods"}[4];
17338 0         0 $text = $_[1];
17339 0         0 my $_savetext;
17340 0         0 @item = (q{predicate});
17341 0         0 %item = (__RULE__ => q{predicate});
17342 0         0 my $repcount = 0;
17343              
17344              
17345 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [in_p]},
17346             Parse::RecDescent::_tracefirst($text),
17347             q{predicate},
17348             $tracelevel)
17349             if defined $::RD_TRACE;
17350 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         236  
  0         0  
17351 0         0 $expectation->is(q{})->at($text);
17352 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::in_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
17353             {
17354              
17355 0 0       0 Parse::RecDescent::_trace(q{<>},
17356             Parse::RecDescent::_tracefirst($text),
17357             q{predicate},
17358             $tracelevel)
17359             if defined $::RD_TRACE;
17360 0         0 $expectation->failed();
17361 0         0 last;
17362             }
17363 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [in_p]<< (return value: [}
17364             . $_tok . q{]},
17365              
17366             Parse::RecDescent::_tracefirst($text),
17367             q{predicate},
17368             $tracelevel)
17369             if defined $::RD_TRACE;
17370 0         0 $item{q{in_p}} = $_tok;
17371 0         0 push @item, $_tok;
17372              
17373             }
17374              
17375              
17376 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [in_p]<<},
17377             Parse::RecDescent::_tracefirst($text),
17378             q{predicate},
17379             $tracelevel)
17380             if defined $::RD_TRACE;
17381 0         0 $_matched = 1;
17382 0         0 last;
17383             }
17384              
17385              
17386 0   0     0 while (!$_matched && !$commit)
17387             {
17388              
17389 0 0       0 Parse::RecDescent::_trace(q{Trying production: [like_p]},
17390             Parse::RecDescent::_tracefirst($_[1]),
17391             q{predicate},
17392             $tracelevel)
17393             if defined $::RD_TRACE;
17394 0         0 my $thisprod = $thisrule->{"prods"}[5];
17395 0         0 $text = $_[1];
17396 0         0 my $_savetext;
17397 0         0 @item = (q{predicate});
17398 0         0 %item = (__RULE__ => q{predicate});
17399 0         0 my $repcount = 0;
17400              
17401              
17402 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [like_p]},
17403             Parse::RecDescent::_tracefirst($text),
17404             q{predicate},
17405             $tracelevel)
17406             if defined $::RD_TRACE;
17407 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         240  
  0         0  
17408 0         0 $expectation->is(q{})->at($text);
17409 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::like_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
17410             {
17411              
17412 0 0       0 Parse::RecDescent::_trace(q{<>},
17413             Parse::RecDescent::_tracefirst($text),
17414             q{predicate},
17415             $tracelevel)
17416             if defined $::RD_TRACE;
17417 0         0 $expectation->failed();
17418 0         0 last;
17419             }
17420 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [like_p]<< (return value: [}
17421             . $_tok . q{]},
17422              
17423             Parse::RecDescent::_tracefirst($text),
17424             q{predicate},
17425             $tracelevel)
17426             if defined $::RD_TRACE;
17427 0         0 $item{q{like_p}} = $_tok;
17428 0         0 push @item, $_tok;
17429              
17430             }
17431              
17432              
17433 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [like_p]<<},
17434             Parse::RecDescent::_tracefirst($text),
17435             q{predicate},
17436             $tracelevel)
17437             if defined $::RD_TRACE;
17438 0         0 $_matched = 1;
17439 0         0 last;
17440             }
17441              
17442              
17443 0   0     0 while (!$_matched && !$commit)
17444             {
17445              
17446 0 0       0 Parse::RecDescent::_trace(q{Trying production: [null_p]},
17447             Parse::RecDescent::_tracefirst($_[1]),
17448             q{predicate},
17449             $tracelevel)
17450             if defined $::RD_TRACE;
17451 0         0 my $thisprod = $thisrule->{"prods"}[6];
17452 0         0 $text = $_[1];
17453 0         0 my $_savetext;
17454 0         0 @item = (q{predicate});
17455 0         0 %item = (__RULE__ => q{predicate});
17456 0         0 my $repcount = 0;
17457              
17458              
17459 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [null_p]},
17460             Parse::RecDescent::_tracefirst($text),
17461             q{predicate},
17462             $tracelevel)
17463             if defined $::RD_TRACE;
17464 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         223  
  0         0  
17465 0         0 $expectation->is(q{})->at($text);
17466 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::null_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
17467             {
17468              
17469 0 0       0 Parse::RecDescent::_trace(q{<>},
17470             Parse::RecDescent::_tracefirst($text),
17471             q{predicate},
17472             $tracelevel)
17473             if defined $::RD_TRACE;
17474 0         0 $expectation->failed();
17475 0         0 last;
17476             }
17477 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [null_p]<< (return value: [}
17478             . $_tok . q{]},
17479              
17480             Parse::RecDescent::_tracefirst($text),
17481             q{predicate},
17482             $tracelevel)
17483             if defined $::RD_TRACE;
17484 0         0 $item{q{null_p}} = $_tok;
17485 0         0 push @item, $_tok;
17486              
17487             }
17488              
17489              
17490 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [null_p]<<},
17491             Parse::RecDescent::_tracefirst($text),
17492             q{predicate},
17493             $tracelevel)
17494             if defined $::RD_TRACE;
17495 0         0 $_matched = 1;
17496 0         0 last;
17497             }
17498              
17499              
17500 0   0     0 while (!$_matched && !$commit)
17501             {
17502              
17503 0 0       0 Parse::RecDescent::_trace(q{Trying production: [type_p]},
17504             Parse::RecDescent::_tracefirst($_[1]),
17505             q{predicate},
17506             $tracelevel)
17507             if defined $::RD_TRACE;
17508 0         0 my $thisprod = $thisrule->{"prods"}[7];
17509 0         0 $text = $_[1];
17510 0         0 my $_savetext;
17511 0         0 @item = (q{predicate});
17512 0         0 %item = (__RULE__ => q{predicate});
17513 0         0 my $repcount = 0;
17514              
17515              
17516 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [type_p]},
17517             Parse::RecDescent::_tracefirst($text),
17518             q{predicate},
17519             $tracelevel)
17520             if defined $::RD_TRACE;
17521 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         517  
  0         0  
17522 0         0 $expectation->is(q{})->at($text);
17523 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
17524             {
17525              
17526 0 0       0 Parse::RecDescent::_trace(q{<>},
17527             Parse::RecDescent::_tracefirst($text),
17528             q{predicate},
17529             $tracelevel)
17530             if defined $::RD_TRACE;
17531 0         0 $expectation->failed();
17532 0         0 last;
17533             }
17534 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [type_p]<< (return value: [}
17535             . $_tok . q{]},
17536              
17537             Parse::RecDescent::_tracefirst($text),
17538             q{predicate},
17539             $tracelevel)
17540             if defined $::RD_TRACE;
17541 0         0 $item{q{type_p}} = $_tok;
17542 0         0 push @item, $_tok;
17543              
17544             }
17545              
17546              
17547 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [type_p]<<},
17548             Parse::RecDescent::_tracefirst($text),
17549             q{predicate},
17550             $tracelevel)
17551             if defined $::RD_TRACE;
17552 0         0 $_matched = 1;
17553 0         0 last;
17554             }
17555              
17556              
17557 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
17558             {
17559              
17560              
17561 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
17562 0 0       0 Parse::RecDescent::_trace(q{<>},
17563             Parse::RecDescent::_tracefirst($_[1]),
17564             q{predicate},
17565             $tracelevel)
17566             if defined $::RD_TRACE;
17567 0         0 return undef;
17568             }
17569 0 0 0     0 if (!defined($return) && defined($score))
17570             {
17571 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
17572             q{predicate},
17573             $tracelevel)
17574             if defined $::RD_TRACE;
17575 0         0 $return = $score_return;
17576             }
17577 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
17578 0 0       0 $return = $item[$#item] unless defined $return;
17579 0 0       0 if (defined $::RD_TRACE)
17580             {
17581 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
17582             $return . q{])}, "",
17583             q{predicate},
17584             $tracelevel);
17585 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
17586             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
17587             Parse::RecDescent::_tracefirst($text),
17588             , q{predicate},
17589             $tracelevel)
17590             }
17591 0         0 $_[1] = $text;
17592 0         0 return $return;
17593             }
17594              
17595             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17596             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name
17597             {
17598 0     0   0 my $thisparser = $_[0];
17599 1     1   8 use vars q{$tracelevel};
  1         2  
  1         340  
17600 0   0     0 local $tracelevel = ($tracelevel||0)+1;
17601 0         0 $ERRORS = 0;
17602 0         0 my $thisrule = $thisparser->{"rules"}{"column_name"};
17603              
17604 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [column_name]},
17605             Parse::RecDescent::_tracefirst($_[1]),
17606             q{column_name},
17607             $tracelevel)
17608             if defined $::RD_TRACE;
17609              
17610              
17611 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
17612              
17613 0         0 my $score;
17614             my $score_return;
17615 0         0 my $_tok;
17616 0         0 my $return = undef;
17617 0         0 my $_matched=0;
17618 0         0 my $commit=0;
17619 0         0 my @item = ();
17620 0         0 my %item = ();
17621 0   0     0 my $repeating = defined($_[2]) && $_[2];
17622 0   0     0 my $_noactions = defined($_[3]) && $_[3];
17623 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
17624 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
17625 0         0 my $text;
17626 0         0 my $lastsep="";
17627 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17628 0         0 $expectation->at($_[1]);
17629              
17630 0         0 my $thisline;
17631 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17632              
17633              
17634              
17635 0   0     0 while (!$_matched && !$commit)
17636             {
17637              
17638 0 0       0 Parse::RecDescent::_trace(q{Trying production: [NAME]},
17639             Parse::RecDescent::_tracefirst($_[1]),
17640             q{column_name},
17641             $tracelevel)
17642             if defined $::RD_TRACE;
17643 0         0 my $thisprod = $thisrule->{"prods"}[0];
17644 0         0 $text = $_[1];
17645 0         0 my $_savetext;
17646 0         0 @item = (q{column_name});
17647 0         0 %item = (__RULE__ => q{column_name});
17648 0         0 my $repcount = 0;
17649              
17650              
17651 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
17652             Parse::RecDescent::_tracefirst($text),
17653             q{column_name},
17654             $tracelevel)
17655             if defined $::RD_TRACE;
17656 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         351  
  0         0  
17657 0         0 $expectation->is(q{})->at($text);
17658 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
17659             {
17660              
17661 0 0       0 Parse::RecDescent::_trace(q{<>},
17662             Parse::RecDescent::_tracefirst($text),
17663             q{column_name},
17664             $tracelevel)
17665             if defined $::RD_TRACE;
17666 0         0 $expectation->failed();
17667 0         0 last;
17668             }
17669 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
17670             . $_tok . q{]},
17671              
17672             Parse::RecDescent::_tracefirst($text),
17673             q{column_name},
17674             $tracelevel)
17675             if defined $::RD_TRACE;
17676 0         0 $item{q{NAME}} = $_tok;
17677 0         0 push @item, $_tok;
17678              
17679             }
17680              
17681              
17682 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
17683             Parse::RecDescent::_tracefirst($text),
17684             q{column_name},
17685             $tracelevel)
17686             if defined $::RD_TRACE;
17687 0         0 $_matched = 1;
17688 0         0 last;
17689             }
17690              
17691              
17692 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
17693             {
17694              
17695              
17696 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
17697 0 0       0 Parse::RecDescent::_trace(q{<>},
17698             Parse::RecDescent::_tracefirst($_[1]),
17699             q{column_name},
17700             $tracelevel)
17701             if defined $::RD_TRACE;
17702 0         0 return undef;
17703             }
17704 0 0 0     0 if (!defined($return) && defined($score))
17705             {
17706 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
17707             q{column_name},
17708             $tracelevel)
17709             if defined $::RD_TRACE;
17710 0         0 $return = $score_return;
17711             }
17712 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
17713 0 0       0 $return = $item[$#item] unless defined $return;
17714 0 0       0 if (defined $::RD_TRACE)
17715             {
17716 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
17717             $return . q{])}, "",
17718             q{column_name},
17719             $tracelevel);
17720 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
17721             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
17722             Parse::RecDescent::_tracefirst($text),
17723             , q{column_name},
17724             $tracelevel)
17725             }
17726 0         0 $_[1] = $text;
17727 0         0 return $return;
17728             }
17729              
17730             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17731             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_invocation
17732             {
17733 0     0   0 my $thisparser = $_[0];
17734 1     1   7 use vars q{$tracelevel};
  1         3  
  1         309  
17735 0   0     0 local $tracelevel = ($tracelevel||0)+1;
17736 0         0 $ERRORS = 0;
17737 0         0 my $thisrule = $thisparser->{"rules"}{"method_invocation"};
17738              
17739 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [method_invocation]},
17740             Parse::RecDescent::_tracefirst($_[1]),
17741             q{method_invocation},
17742             $tracelevel)
17743             if defined $::RD_TRACE;
17744              
17745              
17746 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
17747              
17748 0         0 my $score;
17749             my $score_return;
17750 0         0 my $_tok;
17751 0         0 my $return = undef;
17752 0         0 my $_matched=0;
17753 0         0 my $commit=0;
17754 0         0 my @item = ();
17755 0         0 my %item = ();
17756 0   0     0 my $repeating = defined($_[2]) && $_[2];
17757 0   0     0 my $_noactions = defined($_[3]) && $_[3];
17758 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
17759 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
17760 0         0 my $text;
17761 0         0 my $lastsep="";
17762 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17763 0         0 $expectation->at($_[1]);
17764              
17765 0         0 my $thisline;
17766 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17767              
17768              
17769              
17770 0   0     0 while (!$_matched && !$commit)
17771             {
17772              
17773 0 0       0 Parse::RecDescent::_trace(q{Trying production: [subject_expression '..' method_name '(']},
17774             Parse::RecDescent::_tracefirst($_[1]),
17775             q{method_invocation},
17776             $tracelevel)
17777             if defined $::RD_TRACE;
17778 0         0 my $thisprod = $thisrule->{"prods"}[0];
17779 0         0 $text = $_[1];
17780 0         0 my $_savetext;
17781 0         0 @item = (q{method_invocation});
17782 0         0 %item = (__RULE__ => q{method_invocation});
17783 0         0 my $repcount = 0;
17784              
17785              
17786 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [subject_expression]},
17787             Parse::RecDescent::_tracefirst($text),
17788             q{method_invocation},
17789             $tracelevel)
17790             if defined $::RD_TRACE;
17791 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         273  
  0         0  
17792 0         0 $expectation->is(q{})->at($text);
17793 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subject_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
17794             {
17795              
17796 0 0       0 Parse::RecDescent::_trace(q{<>},
17797             Parse::RecDescent::_tracefirst($text),
17798             q{method_invocation},
17799             $tracelevel)
17800             if defined $::RD_TRACE;
17801 0         0 $expectation->failed();
17802 0         0 last;
17803             }
17804 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [subject_expression]<< (return value: [}
17805             . $_tok . q{]},
17806              
17807             Parse::RecDescent::_tracefirst($text),
17808             q{method_invocation},
17809             $tracelevel)
17810             if defined $::RD_TRACE;
17811 0         0 $item{q{subject_expression}} = $_tok;
17812 0         0 push @item, $_tok;
17813              
17814             }
17815              
17816 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['..']},
17817             Parse::RecDescent::_tracefirst($text),
17818             q{method_invocation},
17819             $tracelevel)
17820             if defined $::RD_TRACE;
17821 0         0 $lastsep = "";
17822 0         0 $expectation->is(q{'..'})->at($text);
17823              
17824              
17825 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\.\.//)
  0 0       0  
17826             {
17827              
17828 0         0 $expectation->failed();
17829 0 0       0 Parse::RecDescent::_trace(qq{<>},
17830             Parse::RecDescent::_tracefirst($text))
17831             if defined $::RD_TRACE;
17832 0         0 last;
17833             }
17834 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
17835             . $& . q{])},
17836             Parse::RecDescent::_tracefirst($text))
17837             if defined $::RD_TRACE;
17838 0         0 push @item, $item{__STRING1__}=$&;
17839              
17840              
17841 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [method_name]},
17842             Parse::RecDescent::_tracefirst($text),
17843             q{method_invocation},
17844             $tracelevel)
17845             if defined $::RD_TRACE;
17846 1     1   6 if (1) { no strict qw{refs};
  1         5  
  1         481  
  0         0  
17847 0         0 $expectation->is(q{method_name})->at($text);
17848 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
17849             {
17850              
17851 0 0       0 Parse::RecDescent::_trace(q{<>},
17852             Parse::RecDescent::_tracefirst($text),
17853             q{method_invocation},
17854             $tracelevel)
17855             if defined $::RD_TRACE;
17856 0         0 $expectation->failed();
17857 0         0 last;
17858             }
17859 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [method_name]<< (return value: [}
17860             . $_tok . q{]},
17861              
17862             Parse::RecDescent::_tracefirst($text),
17863             q{method_invocation},
17864             $tracelevel)
17865             if defined $::RD_TRACE;
17866 0         0 $item{q{method_name}} = $_tok;
17867 0         0 push @item, $_tok;
17868              
17869             }
17870              
17871 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: ['(']},
17872             Parse::RecDescent::_tracefirst($text),
17873             q{method_invocation},
17874             $tracelevel)
17875             if defined $::RD_TRACE;
17876 0         0 $expectation->is(q{'('})->at($text);
17877              
17878 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_method_invocation, 0, 1, $_noactions,$expectation,undef)))
17879             {
17880 0 0       0 Parse::RecDescent::_trace(q{<>},
17881             Parse::RecDescent::_tracefirst($text),
17882             q{method_invocation},
17883             $tracelevel)
17884             if defined $::RD_TRACE;
17885 0         0 last;
17886             }
17887 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_method_invocation]<< (}
17888             . @$_tok . q{ times)},
17889              
17890             Parse::RecDescent::_tracefirst($text),
17891             q{method_invocation},
17892             $tracelevel)
17893             if defined $::RD_TRACE;
17894 0         0 $item{q{_alternation_1_of_production_1_of_rule_method_invocation(?)}} = $_tok;
17895 0         0 push @item, $_tok;
17896              
17897              
17898              
17899              
17900 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [subject_expression '..' method_name '(']<<},
17901             Parse::RecDescent::_tracefirst($text),
17902             q{method_invocation},
17903             $tracelevel)
17904             if defined $::RD_TRACE;
17905 0         0 $_matched = 1;
17906 0         0 last;
17907             }
17908              
17909              
17910 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
17911             {
17912              
17913              
17914 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
17915 0 0       0 Parse::RecDescent::_trace(q{<>},
17916             Parse::RecDescent::_tracefirst($_[1]),
17917             q{method_invocation},
17918             $tracelevel)
17919             if defined $::RD_TRACE;
17920 0         0 return undef;
17921             }
17922 0 0 0     0 if (!defined($return) && defined($score))
17923             {
17924 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
17925             q{method_invocation},
17926             $tracelevel)
17927             if defined $::RD_TRACE;
17928 0         0 $return = $score_return;
17929             }
17930 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
17931 0 0       0 $return = $item[$#item] unless defined $return;
17932 0 0       0 if (defined $::RD_TRACE)
17933             {
17934 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
17935             $return . q{])}, "",
17936             q{method_invocation},
17937             $tracelevel);
17938 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
17939             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
17940             Parse::RecDescent::_tracefirst($text),
17941             , q{method_invocation},
17942             $tracelevel)
17943             }
17944 0         0 $_[1] = $text;
17945 0         0 return $return;
17946             }
17947              
17948             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17949             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_dereference_operation
17950             {
17951 0     0   0 my $thisparser = $_[0];
17952 1     1   7 use vars q{$tracelevel};
  1         9  
  1         821  
17953 0   0     0 local $tracelevel = ($tracelevel||0)+1;
17954 0         0 $ERRORS = 0;
17955 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_dereference_operation"};
17956              
17957 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_dereference_operation]},
17958             Parse::RecDescent::_tracefirst($_[1]),
17959             q{_alternation_1_of_production_1_of_rule_dereference_operation},
17960             $tracelevel)
17961             if defined $::RD_TRACE;
17962              
17963              
17964 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
17965              
17966 0         0 my $score;
17967             my $score_return;
17968 0         0 my $_tok;
17969 0         0 my $return = undef;
17970 0         0 my $_matched=0;
17971 0         0 my $commit=0;
17972 0         0 my @item = ();
17973 0         0 my %item = ();
17974 0   0     0 my $repeating = defined($_[2]) && $_[2];
17975 0   0     0 my $_noactions = defined($_[3]) && $_[3];
17976 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
17977 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
17978 0         0 my $text;
17979 0         0 my $lastsep="";
17980 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17981 0         0 $expectation->at($_[1]);
17982              
17983 0         0 my $thisline;
17984 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17985              
17986              
17987              
17988 0   0     0 while (!$_matched && !$commit)
17989             {
17990              
17991 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
17992             Parse::RecDescent::_tracefirst($_[1]),
17993             q{_alternation_1_of_production_1_of_rule_dereference_operation},
17994             $tracelevel)
17995             if defined $::RD_TRACE;
17996 0         0 my $thisprod = $thisrule->{"prods"}[0];
17997 0         0 $text = $_[1];
17998 0         0 my $_savetext;
17999 0         0 @item = (q{_alternation_1_of_production_1_of_rule_dereference_operation});
18000 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_dereference_operation});
18001 0         0 my $repcount = 0;
18002              
18003              
18004 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
18005             Parse::RecDescent::_tracefirst($text),
18006             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18007             $tracelevel)
18008             if defined $::RD_TRACE;
18009 0         0 $lastsep = "";
18010 0         0 $expectation->is(q{})->at($text);
18011              
18012              
18013 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
18014             {
18015              
18016 0         0 $expectation->failed();
18017 0 0       0 Parse::RecDescent::_trace(qq{<>},
18018             Parse::RecDescent::_tracefirst($text))
18019             if defined $::RD_TRACE;
18020 0         0 last;
18021             }
18022 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18023             . $& . q{])},
18024             Parse::RecDescent::_tracefirst($text))
18025             if defined $::RD_TRACE;
18026 0         0 push @item, $item{__STRING1__}=$&;
18027              
18028              
18029 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [expression]},
18030             Parse::RecDescent::_tracefirst($text),
18031             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18032             $tracelevel)
18033             if defined $::RD_TRACE;
18034 0         0 $expectation->is(q{expression})->at($text);
18035              
18036 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression, 1, 100000000, $_noactions,$expectation,undef)))
18037             {
18038 0 0       0 Parse::RecDescent::_trace(q{<>},
18039             Parse::RecDescent::_tracefirst($text),
18040             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18041             $tracelevel)
18042             if defined $::RD_TRACE;
18043 0         0 last;
18044             }
18045 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [expression]<< (}
18046             . @$_tok . q{ times)},
18047              
18048             Parse::RecDescent::_tracefirst($text),
18049             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18050             $tracelevel)
18051             if defined $::RD_TRACE;
18052 0         0 $item{q{expression(s)}} = $_tok;
18053 0         0 push @item, $_tok;
18054              
18055              
18056              
18057 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
18058             Parse::RecDescent::_tracefirst($text),
18059             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18060             $tracelevel)
18061             if defined $::RD_TRACE;
18062 0         0 $lastsep = "";
18063 0         0 $expectation->is(q{')'})->at($text);
18064              
18065              
18066 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
18067             {
18068              
18069 0         0 $expectation->failed();
18070 0 0       0 Parse::RecDescent::_trace(qq{<>},
18071             Parse::RecDescent::_tracefirst($text))
18072             if defined $::RD_TRACE;
18073 0         0 last;
18074             }
18075 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18076             . $& . q{])},
18077             Parse::RecDescent::_tracefirst($text))
18078             if defined $::RD_TRACE;
18079 0         0 push @item, $item{__STRING2__}=$&;
18080              
18081              
18082              
18083 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['(' expression ')']<<},
18084             Parse::RecDescent::_tracefirst($text),
18085             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18086             $tracelevel)
18087             if defined $::RD_TRACE;
18088 0         0 $_matched = 1;
18089 0         0 last;
18090             }
18091              
18092              
18093 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
18094             {
18095              
18096              
18097 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
18098 0 0       0 Parse::RecDescent::_trace(q{<>},
18099             Parse::RecDescent::_tracefirst($_[1]),
18100             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18101             $tracelevel)
18102             if defined $::RD_TRACE;
18103 0         0 return undef;
18104             }
18105 0 0 0     0 if (!defined($return) && defined($score))
18106             {
18107 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18108             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18109             $tracelevel)
18110             if defined $::RD_TRACE;
18111 0         0 $return = $score_return;
18112             }
18113 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
18114 0 0       0 $return = $item[$#item] unless defined $return;
18115 0 0       0 if (defined $::RD_TRACE)
18116             {
18117 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
18118             $return . q{])}, "",
18119             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18120             $tracelevel);
18121 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
18122             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
18123             Parse::RecDescent::_tracefirst($text),
18124             , q{_alternation_1_of_production_1_of_rule_dereference_operation},
18125             $tracelevel)
18126             }
18127 0         0 $_[1] = $text;
18128 0         0 return $return;
18129             }
18130              
18131             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18132             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_searched_when_clause
18133             {
18134 0     0   0 my $thisparser = $_[0];
18135 1     1   8 use vars q{$tracelevel};
  1         2  
  1         373  
18136 0   0     0 local $tracelevel = ($tracelevel||0)+1;
18137 0         0 $ERRORS = 0;
18138 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_searched_when_clause"};
18139              
18140 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_searched_when_clause]},
18141             Parse::RecDescent::_tracefirst($_[1]),
18142             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18143             $tracelevel)
18144             if defined $::RD_TRACE;
18145              
18146              
18147 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
18148              
18149 0         0 my $score;
18150             my $score_return;
18151 0         0 my $_tok;
18152 0         0 my $return = undef;
18153 0         0 my $_matched=0;
18154 0         0 my $commit=0;
18155 0         0 my @item = ();
18156 0         0 my %item = ();
18157 0   0     0 my $repeating = defined($_[2]) && $_[2];
18158 0   0     0 my $_noactions = defined($_[3]) && $_[3];
18159 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
18160 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
18161 0         0 my $text;
18162 0         0 my $lastsep="";
18163 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18164 0         0 $expectation->at($_[1]);
18165              
18166 0         0 my $thisline;
18167 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18168              
18169              
18170              
18171 0   0     0 while (!$_matched && !$commit)
18172             {
18173              
18174 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]},
18175             Parse::RecDescent::_tracefirst($_[1]),
18176             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18177             $tracelevel)
18178             if defined $::RD_TRACE;
18179 0         0 my $thisprod = $thisrule->{"prods"}[0];
18180 0         0 $text = $_[1];
18181 0         0 my $_savetext;
18182 0         0 @item = (q{_alternation_1_of_production_1_of_rule_searched_when_clause});
18183 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_searched_when_clause});
18184 0         0 my $repcount = 0;
18185              
18186              
18187 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/WHEN/i]}, Parse::RecDescent::_tracefirst($text),
18188             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18189             $tracelevel)
18190             if defined $::RD_TRACE;
18191 0         0 $lastsep = "";
18192 0         0 $expectation->is(q{})->at($text);
18193              
18194              
18195 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:WHEN)//i)
  0 0       0  
18196             {
18197              
18198 0         0 $expectation->failed();
18199 0 0       0 Parse::RecDescent::_trace(q{<>},
18200             Parse::RecDescent::_tracefirst($text))
18201             if defined $::RD_TRACE;
18202              
18203 0         0 last;
18204             }
18205 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18206             . $& . q{])},
18207             Parse::RecDescent::_tracefirst($text))
18208             if defined $::RD_TRACE;
18209 0         0 push @item, $item{__PATTERN1__}=$&;
18210              
18211              
18212 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
18213             Parse::RecDescent::_tracefirst($text),
18214             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18215             $tracelevel)
18216             if defined $::RD_TRACE;
18217 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         271  
  0         0  
18218 0         0 $expectation->is(q{search_condition})->at($text);
18219 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
18220             {
18221              
18222 0 0       0 Parse::RecDescent::_trace(q{<>},
18223             Parse::RecDescent::_tracefirst($text),
18224             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18225             $tracelevel)
18226             if defined $::RD_TRACE;
18227 0         0 $expectation->failed();
18228 0         0 last;
18229             }
18230 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
18231             . $_tok . q{]},
18232              
18233             Parse::RecDescent::_tracefirst($text),
18234             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18235             $tracelevel)
18236             if defined $::RD_TRACE;
18237 0         0 $item{q{search_condition}} = $_tok;
18238 0         0 push @item, $_tok;
18239              
18240             }
18241              
18242 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/THEN/i]}, Parse::RecDescent::_tracefirst($text),
18243             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18244             $tracelevel)
18245             if defined $::RD_TRACE;
18246 0         0 $lastsep = "";
18247 0         0 $expectation->is(q{/THEN/i})->at($text);
18248              
18249              
18250 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:THEN)//i)
  0 0       0  
18251             {
18252              
18253 0         0 $expectation->failed();
18254 0 0       0 Parse::RecDescent::_trace(q{<>},
18255             Parse::RecDescent::_tracefirst($text))
18256             if defined $::RD_TRACE;
18257              
18258 0         0 last;
18259             }
18260 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18261             . $& . q{])},
18262             Parse::RecDescent::_tracefirst($text))
18263             if defined $::RD_TRACE;
18264 0         0 push @item, $item{__PATTERN2__}=$&;
18265              
18266              
18267 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]},
18268             Parse::RecDescent::_tracefirst($text),
18269             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18270             $tracelevel)
18271             if defined $::RD_TRACE;
18272 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         411  
  0         0  
18273 0         0 $expectation->is(q{result_expression, or /NULL/i})->at($text);
18274 0 0   0   0 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 })))
  0         0  
18275             {
18276              
18277 0 0       0 Parse::RecDescent::_trace(q{<>},
18278             Parse::RecDescent::_tracefirst($text),
18279             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18280             $tracelevel)
18281             if defined $::RD_TRACE;
18282 0         0 $expectation->failed();
18283 0         0 last;
18284             }
18285 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]<< (return value: [}
18286             . $_tok . q{]},
18287              
18288             Parse::RecDescent::_tracefirst($text),
18289             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18290             $tracelevel)
18291             if defined $::RD_TRACE;
18292 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause}} = $_tok;
18293 0         0 push @item, $_tok;
18294              
18295             }
18296              
18297              
18298 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]<<},
18299             Parse::RecDescent::_tracefirst($text),
18300             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18301             $tracelevel)
18302             if defined $::RD_TRACE;
18303 0         0 $_matched = 1;
18304 0         0 last;
18305             }
18306              
18307              
18308 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
18309             {
18310              
18311              
18312 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
18313 0 0       0 Parse::RecDescent::_trace(q{<>},
18314             Parse::RecDescent::_tracefirst($_[1]),
18315             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18316             $tracelevel)
18317             if defined $::RD_TRACE;
18318 0         0 return undef;
18319             }
18320 0 0 0     0 if (!defined($return) && defined($score))
18321             {
18322 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18323             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18324             $tracelevel)
18325             if defined $::RD_TRACE;
18326 0         0 $return = $score_return;
18327             }
18328 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
18329 0 0       0 $return = $item[$#item] unless defined $return;
18330 0 0       0 if (defined $::RD_TRACE)
18331             {
18332 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
18333             $return . q{])}, "",
18334             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18335             $tracelevel);
18336 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
18337             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
18338             Parse::RecDescent::_tracefirst($text),
18339             , q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18340             $tracelevel)
18341             }
18342 0         0 $_[1] = $text;
18343 0         0 return $return;
18344             }
18345              
18346             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18347             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound2
18348             {
18349 0     0   0 my $thisparser = $_[0];
18350 1     1   7 use vars q{$tracelevel};
  1         3  
  1         520  
18351 0   0     0 local $tracelevel = ($tracelevel||0)+1;
18352 0         0 $ERRORS = 0;
18353 0         0 my $thisrule = $thisparser->{"rules"}{"group_bound2"};
18354              
18355 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [group_bound2]},
18356             Parse::RecDescent::_tracefirst($_[1]),
18357             q{group_bound2},
18358             $tracelevel)
18359             if defined $::RD_TRACE;
18360              
18361              
18362 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
18363              
18364 0         0 my $score;
18365             my $score_return;
18366 0         0 my $_tok;
18367 0         0 my $return = undef;
18368 0         0 my $_matched=0;
18369 0         0 my $commit=0;
18370 0         0 my @item = ();
18371 0         0 my %item = ();
18372 0   0     0 my $repeating = defined($_[2]) && $_[2];
18373 0   0     0 my $_noactions = defined($_[3]) && $_[3];
18374 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
18375 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
18376 0         0 my $text;
18377 0         0 my $lastsep="";
18378 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18379 0         0 $expectation->at($_[1]);
18380              
18381 0         0 my $thisline;
18382 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18383              
18384              
18385              
18386 0   0     0 while (!$_matched && !$commit)
18387             {
18388              
18389 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
18390             Parse::RecDescent::_tracefirst($_[1]),
18391             q{group_bound2},
18392             $tracelevel)
18393             if defined $::RD_TRACE;
18394 0         0 my $thisprod = $thisrule->{"prods"}[0];
18395 0         0 $text = $_[1];
18396 0         0 my $_savetext;
18397 0         0 @item = (q{group_bound2});
18398 0         0 %item = (__RULE__ => q{group_bound2});
18399 0         0 my $repcount = 0;
18400              
18401              
18402 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
18403             q{group_bound2},
18404             $tracelevel)
18405             if defined $::RD_TRACE;
18406 0         0 $lastsep = "";
18407 0         0 $expectation->is(q{})->at($text);
18408              
18409              
18410 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i)
  0 0       0  
18411             {
18412              
18413 0         0 $expectation->failed();
18414 0 0       0 Parse::RecDescent::_trace(q{<>},
18415             Parse::RecDescent::_tracefirst($text))
18416             if defined $::RD_TRACE;
18417              
18418 0         0 last;
18419             }
18420 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18421             . $& . q{])},
18422             Parse::RecDescent::_tracefirst($text))
18423             if defined $::RD_TRACE;
18424 0         0 push @item, $item{__PATTERN1__}=$&;
18425              
18426              
18427              
18428 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
18429             Parse::RecDescent::_tracefirst($text),
18430             q{group_bound2},
18431             $tracelevel)
18432             if defined $::RD_TRACE;
18433 0         0 $_matched = 1;
18434 0         0 last;
18435             }
18436              
18437              
18438 0   0     0 while (!$_matched && !$commit)
18439             {
18440              
18441 0 0       0 Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /PRECEDING/i]},
18442             Parse::RecDescent::_tracefirst($_[1]),
18443             q{group_bound2},
18444             $tracelevel)
18445             if defined $::RD_TRACE;
18446 0         0 my $thisprod = $thisrule->{"prods"}[1];
18447 0         0 $text = $_[1];
18448 0         0 my $_savetext;
18449 0         0 @item = (q{group_bound2});
18450 0         0 %item = (__RULE__ => q{group_bound2});
18451 0         0 my $repcount = 0;
18452              
18453              
18454 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
18455             Parse::RecDescent::_tracefirst($text),
18456             q{group_bound2},
18457             $tracelevel)
18458             if defined $::RD_TRACE;
18459 1     1   8 if (1) { no strict qw{refs};
  1         3  
  1         341  
  0         0  
18460 0         0 $expectation->is(q{})->at($text);
18461 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
18462             {
18463              
18464 0 0       0 Parse::RecDescent::_trace(q{<>},
18465             Parse::RecDescent::_tracefirst($text),
18466             q{group_bound2},
18467             $tracelevel)
18468             if defined $::RD_TRACE;
18469 0         0 $expectation->failed();
18470 0         0 last;
18471             }
18472 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
18473             . $_tok . q{]},
18474              
18475             Parse::RecDescent::_tracefirst($text),
18476             q{group_bound2},
18477             $tracelevel)
18478             if defined $::RD_TRACE;
18479 0         0 $item{q{unsigned_constant}} = $_tok;
18480 0         0 push @item, $_tok;
18481              
18482             }
18483              
18484 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
18485             q{group_bound2},
18486             $tracelevel)
18487             if defined $::RD_TRACE;
18488 0         0 $lastsep = "";
18489 0         0 $expectation->is(q{/PRECEDING/i})->at($text);
18490              
18491              
18492 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:PRECEDING)//i)
  0 0       0  
18493             {
18494              
18495 0         0 $expectation->failed();
18496 0 0       0 Parse::RecDescent::_trace(q{<>},
18497             Parse::RecDescent::_tracefirst($text))
18498             if defined $::RD_TRACE;
18499              
18500 0         0 last;
18501             }
18502 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18503             . $& . q{])},
18504             Parse::RecDescent::_tracefirst($text))
18505             if defined $::RD_TRACE;
18506 0         0 push @item, $item{__PATTERN1__}=$&;
18507              
18508              
18509              
18510 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /PRECEDING/i]<<},
18511             Parse::RecDescent::_tracefirst($text),
18512             q{group_bound2},
18513             $tracelevel)
18514             if defined $::RD_TRACE;
18515 0         0 $_matched = 1;
18516 0         0 last;
18517             }
18518              
18519              
18520 0   0     0 while (!$_matched && !$commit)
18521             {
18522              
18523 0 0       0 Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /FOLLOWING/i]},
18524             Parse::RecDescent::_tracefirst($_[1]),
18525             q{group_bound2},
18526             $tracelevel)
18527             if defined $::RD_TRACE;
18528 0         0 my $thisprod = $thisrule->{"prods"}[2];
18529 0         0 $text = $_[1];
18530 0         0 my $_savetext;
18531 0         0 @item = (q{group_bound2});
18532 0         0 %item = (__RULE__ => q{group_bound2});
18533 0         0 my $repcount = 0;
18534              
18535              
18536 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
18537             Parse::RecDescent::_tracefirst($text),
18538             q{group_bound2},
18539             $tracelevel)
18540             if defined $::RD_TRACE;
18541 1     1   7 if (1) { no strict qw{refs};
  1         30  
  1         714  
  0         0  
18542 0         0 $expectation->is(q{})->at($text);
18543 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
18544             {
18545              
18546 0 0       0 Parse::RecDescent::_trace(q{<>},
18547             Parse::RecDescent::_tracefirst($text),
18548             q{group_bound2},
18549             $tracelevel)
18550             if defined $::RD_TRACE;
18551 0         0 $expectation->failed();
18552 0         0 last;
18553             }
18554 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
18555             . $_tok . q{]},
18556              
18557             Parse::RecDescent::_tracefirst($text),
18558             q{group_bound2},
18559             $tracelevel)
18560             if defined $::RD_TRACE;
18561 0         0 $item{q{unsigned_constant}} = $_tok;
18562 0         0 push @item, $_tok;
18563              
18564             }
18565              
18566 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
18567             q{group_bound2},
18568             $tracelevel)
18569             if defined $::RD_TRACE;
18570 0         0 $lastsep = "";
18571 0         0 $expectation->is(q{/FOLLOWING/i})->at($text);
18572              
18573              
18574 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:FOLLOWING)//i)
  0 0       0  
18575             {
18576              
18577 0         0 $expectation->failed();
18578 0 0       0 Parse::RecDescent::_trace(q{<>},
18579             Parse::RecDescent::_tracefirst($text))
18580             if defined $::RD_TRACE;
18581              
18582 0         0 last;
18583             }
18584 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18585             . $& . q{])},
18586             Parse::RecDescent::_tracefirst($text))
18587             if defined $::RD_TRACE;
18588 0         0 push @item, $item{__PATTERN1__}=$&;
18589              
18590              
18591              
18592 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /FOLLOWING/i]<<},
18593             Parse::RecDescent::_tracefirst($text),
18594             q{group_bound2},
18595             $tracelevel)
18596             if defined $::RD_TRACE;
18597 0         0 $_matched = 1;
18598 0         0 last;
18599             }
18600              
18601              
18602 0   0     0 while (!$_matched && !$commit)
18603             {
18604              
18605 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CURRENT\\s+ROW/i]},
18606             Parse::RecDescent::_tracefirst($_[1]),
18607             q{group_bound2},
18608             $tracelevel)
18609             if defined $::RD_TRACE;
18610 0         0 my $thisprod = $thisrule->{"prods"}[3];
18611 0         0 $text = $_[1];
18612 0         0 my $_savetext;
18613 0         0 @item = (q{group_bound2});
18614 0         0 %item = (__RULE__ => q{group_bound2});
18615 0         0 my $repcount = 0;
18616              
18617              
18618 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CURRENT\\s+ROW/i]}, Parse::RecDescent::_tracefirst($text),
18619             q{group_bound2},
18620             $tracelevel)
18621             if defined $::RD_TRACE;
18622 0         0 $lastsep = "";
18623 0         0 $expectation->is(q{})->at($text);
18624              
18625              
18626 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CURRENT\s+ROW)//i)
  0 0       0  
18627             {
18628              
18629 0         0 $expectation->failed();
18630 0 0       0 Parse::RecDescent::_trace(q{<>},
18631             Parse::RecDescent::_tracefirst($text))
18632             if defined $::RD_TRACE;
18633              
18634 0         0 last;
18635             }
18636 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18637             . $& . q{])},
18638             Parse::RecDescent::_tracefirst($text))
18639             if defined $::RD_TRACE;
18640 0         0 push @item, $item{__PATTERN1__}=$&;
18641              
18642              
18643              
18644 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CURRENT\\s+ROW/i]<<},
18645             Parse::RecDescent::_tracefirst($text),
18646             q{group_bound2},
18647             $tracelevel)
18648             if defined $::RD_TRACE;
18649 0         0 $_matched = 1;
18650 0         0 last;
18651             }
18652              
18653              
18654 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
18655             {
18656              
18657              
18658 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
18659 0 0       0 Parse::RecDescent::_trace(q{<>},
18660             Parse::RecDescent::_tracefirst($_[1]),
18661             q{group_bound2},
18662             $tracelevel)
18663             if defined $::RD_TRACE;
18664 0         0 return undef;
18665             }
18666 0 0 0     0 if (!defined($return) && defined($score))
18667             {
18668 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18669             q{group_bound2},
18670             $tracelevel)
18671             if defined $::RD_TRACE;
18672 0         0 $return = $score_return;
18673             }
18674 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
18675 0 0       0 $return = $item[$#item] unless defined $return;
18676 0 0       0 if (defined $::RD_TRACE)
18677             {
18678 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
18679             $return . q{])}, "",
18680             q{group_bound2},
18681             $tracelevel);
18682 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
18683             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
18684             Parse::RecDescent::_tracefirst($text),
18685             , q{group_bound2},
18686             $tracelevel)
18687             }
18688 0         0 $_[1] = $text;
18689 0         0 return $return;
18690             }
18691              
18692             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18693             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::searched_when_clause
18694             {
18695 0     0   0 my $thisparser = $_[0];
18696 1     1   8 use vars q{$tracelevel};
  1         2  
  1         608  
18697 0   0     0 local $tracelevel = ($tracelevel||0)+1;
18698 0         0 $ERRORS = 0;
18699 0         0 my $thisrule = $thisparser->{"rules"}{"searched_when_clause"};
18700              
18701 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [searched_when_clause]},
18702             Parse::RecDescent::_tracefirst($_[1]),
18703             q{searched_when_clause},
18704             $tracelevel)
18705             if defined $::RD_TRACE;
18706              
18707              
18708 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
18709              
18710 0         0 my $score;
18711             my $score_return;
18712 0         0 my $_tok;
18713 0         0 my $return = undef;
18714 0         0 my $_matched=0;
18715 0         0 my $commit=0;
18716 0         0 my @item = ();
18717 0         0 my %item = ();
18718 0   0     0 my $repeating = defined($_[2]) && $_[2];
18719 0   0     0 my $_noactions = defined($_[3]) && $_[3];
18720 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
18721 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
18722 0         0 my $text;
18723 0         0 my $lastsep="";
18724 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18725 0         0 $expectation->at($_[1]);
18726              
18727 0         0 my $thisline;
18728 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18729              
18730              
18731              
18732 0   0     0 while (!$_matched && !$commit)
18733             {
18734              
18735 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/WHEN/i]},
18736             Parse::RecDescent::_tracefirst($_[1]),
18737             q{searched_when_clause},
18738             $tracelevel)
18739             if defined $::RD_TRACE;
18740 0         0 my $thisprod = $thisrule->{"prods"}[0];
18741 0         0 $text = $_[1];
18742 0         0 my $_savetext;
18743 0         0 @item = (q{searched_when_clause});
18744 0         0 %item = (__RULE__ => q{searched_when_clause});
18745 0         0 my $repcount = 0;
18746              
18747              
18748 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [/WHEN/i]},
18749             Parse::RecDescent::_tracefirst($text),
18750             q{searched_when_clause},
18751             $tracelevel)
18752             if defined $::RD_TRACE;
18753 0         0 $expectation->is(q{})->at($text);
18754              
18755 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_searched_when_clause, 1, 100000000, $_noactions,$expectation,undef)))
18756             {
18757 0 0       0 Parse::RecDescent::_trace(q{<>},
18758             Parse::RecDescent::_tracefirst($text),
18759             q{searched_when_clause},
18760             $tracelevel)
18761             if defined $::RD_TRACE;
18762 0         0 last;
18763             }
18764 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_searched_when_clause]<< (}
18765             . @$_tok . q{ times)},
18766              
18767             Parse::RecDescent::_tracefirst($text),
18768             q{searched_when_clause},
18769             $tracelevel)
18770             if defined $::RD_TRACE;
18771 0         0 $item{q{_alternation_1_of_production_1_of_rule_searched_when_clause(s)}} = $_tok;
18772 0         0 push @item, $_tok;
18773              
18774              
18775              
18776              
18777 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i]<<},
18778             Parse::RecDescent::_tracefirst($text),
18779             q{searched_when_clause},
18780             $tracelevel)
18781             if defined $::RD_TRACE;
18782 0         0 $_matched = 1;
18783 0         0 last;
18784             }
18785              
18786              
18787 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
18788             {
18789              
18790              
18791 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
18792 0 0       0 Parse::RecDescent::_trace(q{<>},
18793             Parse::RecDescent::_tracefirst($_[1]),
18794             q{searched_when_clause},
18795             $tracelevel)
18796             if defined $::RD_TRACE;
18797 0         0 return undef;
18798             }
18799 0 0 0     0 if (!defined($return) && defined($score))
18800             {
18801 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18802             q{searched_when_clause},
18803             $tracelevel)
18804             if defined $::RD_TRACE;
18805 0         0 $return = $score_return;
18806             }
18807 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
18808 0 0       0 $return = $item[$#item] unless defined $return;
18809 0 0       0 if (defined $::RD_TRACE)
18810             {
18811 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
18812             $return . q{])}, "",
18813             q{searched_when_clause},
18814             $tracelevel);
18815 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
18816             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
18817             Parse::RecDescent::_tracefirst($text),
18818             , q{searched_when_clause},
18819             $tracelevel)
18820             }
18821 0         0 $_[1] = $text;
18822 0         0 return $return;
18823             }
18824              
18825             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18826             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::basic_p
18827             {
18828 0     0   0 my $thisparser = $_[0];
18829 1     1   7 use vars q{$tracelevel};
  1         2  
  1         275  
18830 0   0     0 local $tracelevel = ($tracelevel||0)+1;
18831 0         0 $ERRORS = 0;
18832 0         0 my $thisrule = $thisparser->{"rules"}{"basic_p"};
18833              
18834 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [basic_p]},
18835             Parse::RecDescent::_tracefirst($_[1]),
18836             q{basic_p},
18837             $tracelevel)
18838             if defined $::RD_TRACE;
18839              
18840              
18841 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
18842              
18843 0         0 my $score;
18844             my $score_return;
18845 0         0 my $_tok;
18846 0         0 my $return = undef;
18847 0         0 my $_matched=0;
18848 0         0 my $commit=0;
18849 0         0 my @item = ();
18850 0         0 my %item = ();
18851 0   0     0 my $repeating = defined($_[2]) && $_[2];
18852 0   0     0 my $_noactions = defined($_[3]) && $_[3];
18853 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
18854 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
18855 0         0 my $text;
18856 0         0 my $lastsep="";
18857 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18858 0         0 $expectation->at($_[1]);
18859              
18860 0         0 my $thisline;
18861 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18862              
18863              
18864              
18865 0   0     0 while (!$_matched && !$commit)
18866             {
18867              
18868 0 0       0 Parse::RecDescent::_trace(q{Trying production: [expression /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ expression]},
18869             Parse::RecDescent::_tracefirst($_[1]),
18870             q{basic_p},
18871             $tracelevel)
18872             if defined $::RD_TRACE;
18873 0         0 my $thisprod = $thisrule->{"prods"}[0];
18874 0         0 $text = $_[1];
18875 0         0 my $_savetext;
18876 0         0 @item = (q{basic_p});
18877 0         0 %item = (__RULE__ => q{basic_p});
18878 0         0 my $repcount = 0;
18879              
18880              
18881 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
18882             Parse::RecDescent::_tracefirst($text),
18883             q{basic_p},
18884             $tracelevel)
18885             if defined $::RD_TRACE;
18886 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         296  
  0         0  
18887 0         0 $expectation->is(q{})->at($text);
18888 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
18889             {
18890              
18891 0 0       0 Parse::RecDescent::_trace(q{<>},
18892             Parse::RecDescent::_tracefirst($text),
18893             q{basic_p},
18894             $tracelevel)
18895             if defined $::RD_TRACE;
18896 0         0 $expectation->failed();
18897 0         0 last;
18898             }
18899 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
18900             . $_tok . q{]},
18901              
18902             Parse::RecDescent::_tracefirst($text),
18903             q{basic_p},
18904             $tracelevel)
18905             if defined $::RD_TRACE;
18906 0         0 $item{q{expression}} = $_tok;
18907 0         0 push @item, $_tok;
18908              
18909             }
18910              
18911 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/]}, Parse::RecDescent::_tracefirst($text),
18912             q{basic_p},
18913             $tracelevel)
18914             if defined $::RD_TRACE;
18915 0         0 $lastsep = "";
18916 0         0 $expectation->is(q{/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/})->at($text);
18917              
18918              
18919 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(=|<>|<|>|<=|=>|\^=|\^<|\^>|\!=))//)
  0 0       0  
18920             {
18921              
18922 0         0 $expectation->failed();
18923 0 0       0 Parse::RecDescent::_trace(q{<>},
18924             Parse::RecDescent::_tracefirst($text))
18925             if defined $::RD_TRACE;
18926              
18927 0         0 last;
18928             }
18929 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18930             . $& . q{])},
18931             Parse::RecDescent::_tracefirst($text))
18932             if defined $::RD_TRACE;
18933 0         0 push @item, $item{__PATTERN1__}=$&;
18934              
18935              
18936 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
18937             Parse::RecDescent::_tracefirst($text),
18938             q{basic_p},
18939             $tracelevel)
18940             if defined $::RD_TRACE;
18941 1     1   6 if (1) { no strict qw{refs};
  1         4  
  1         341  
  0         0  
18942 0         0 $expectation->is(q{expression})->at($text);
18943 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
18944             {
18945              
18946 0 0       0 Parse::RecDescent::_trace(q{<>},
18947             Parse::RecDescent::_tracefirst($text),
18948             q{basic_p},
18949             $tracelevel)
18950             if defined $::RD_TRACE;
18951 0         0 $expectation->failed();
18952 0         0 last;
18953             }
18954 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
18955             . $_tok . q{]},
18956              
18957             Parse::RecDescent::_tracefirst($text),
18958             q{basic_p},
18959             $tracelevel)
18960             if defined $::RD_TRACE;
18961 0         0 $item{q{expression}} = $_tok;
18962 0         0 push @item, $_tok;
18963              
18964             }
18965              
18966              
18967 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [expression /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ expression]<<},
18968             Parse::RecDescent::_tracefirst($text),
18969             q{basic_p},
18970             $tracelevel)
18971             if defined $::RD_TRACE;
18972 0         0 $_matched = 1;
18973 0         0 last;
18974             }
18975              
18976              
18977 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
18978             {
18979              
18980              
18981 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
18982 0 0       0 Parse::RecDescent::_trace(q{<>},
18983             Parse::RecDescent::_tracefirst($_[1]),
18984             q{basic_p},
18985             $tracelevel)
18986             if defined $::RD_TRACE;
18987 0         0 return undef;
18988             }
18989 0 0 0     0 if (!defined($return) && defined($score))
18990             {
18991 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18992             q{basic_p},
18993             $tracelevel)
18994             if defined $::RD_TRACE;
18995 0         0 $return = $score_return;
18996             }
18997 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
18998 0 0       0 $return = $item[$#item] unless defined $return;
18999 0 0       0 if (defined $::RD_TRACE)
19000             {
19001 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19002             $return . q{])}, "",
19003             q{basic_p},
19004             $tracelevel);
19005 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
19006             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
19007             Parse::RecDescent::_tracefirst($text),
19008             , q{basic_p},
19009             $tracelevel)
19010             }
19011 0         0 $_[1] = $text;
19012 0         0 return $return;
19013             }
19014              
19015             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19016             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::asc_option
19017             {
19018 0     0   0 my $thisparser = $_[0];
19019 1     1   8 use vars q{$tracelevel};
  1         3  
  1         714  
19020 0   0     0 local $tracelevel = ($tracelevel||0)+1;
19021 0         0 $ERRORS = 0;
19022 0         0 my $thisrule = $thisparser->{"rules"}{"asc_option"};
19023              
19024 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [asc_option]},
19025             Parse::RecDescent::_tracefirst($_[1]),
19026             q{asc_option},
19027             $tracelevel)
19028             if defined $::RD_TRACE;
19029              
19030              
19031 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
19032              
19033 0         0 my $score;
19034             my $score_return;
19035 0         0 my $_tok;
19036 0         0 my $return = undef;
19037 0         0 my $_matched=0;
19038 0         0 my $commit=0;
19039 0         0 my @item = ();
19040 0         0 my %item = ();
19041 0   0     0 my $repeating = defined($_[2]) && $_[2];
19042 0   0     0 my $_noactions = defined($_[3]) && $_[3];
19043 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
19044 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
19045 0         0 my $text;
19046 0         0 my $lastsep="";
19047 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19048 0         0 $expectation->at($_[1]);
19049              
19050 0         0 my $thisline;
19051 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19052              
19053              
19054              
19055 0   0     0 while (!$_matched && !$commit)
19056             {
19057              
19058 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ASC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
19059             Parse::RecDescent::_tracefirst($_[1]),
19060             q{asc_option},
19061             $tracelevel)
19062             if defined $::RD_TRACE;
19063 0         0 my $thisprod = $thisrule->{"prods"}[0];
19064 0         0 $text = $_[1];
19065 0         0 my $_savetext;
19066 0         0 @item = (q{asc_option});
19067 0         0 %item = (__RULE__ => q{asc_option});
19068 0         0 my $repcount = 0;
19069              
19070              
19071 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ASC/i]}, Parse::RecDescent::_tracefirst($text),
19072             q{asc_option},
19073             $tracelevel)
19074             if defined $::RD_TRACE;
19075 0         0 $lastsep = "";
19076 0         0 $expectation->is(q{})->at($text);
19077              
19078              
19079 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ASC)//i)
  0 0       0  
19080             {
19081              
19082 0         0 $expectation->failed();
19083 0 0       0 Parse::RecDescent::_trace(q{<>},
19084             Parse::RecDescent::_tracefirst($text))
19085             if defined $::RD_TRACE;
19086              
19087 0         0 last;
19088             }
19089 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19090             . $& . q{])},
19091             Parse::RecDescent::_tracefirst($text))
19092             if defined $::RD_TRACE;
19093 0         0 push @item, $item{__PATTERN1__}=$&;
19094              
19095              
19096 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
19097             Parse::RecDescent::_tracefirst($text),
19098             q{asc_option},
19099             $tracelevel)
19100             if defined $::RD_TRACE;
19101 0         0 $expectation->is(q{/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i})->at($text);
19102              
19103 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_asc_option, 0, 1, $_noactions,$expectation,undef)))
19104             {
19105 0 0       0 Parse::RecDescent::_trace(q{<>},
19106             Parse::RecDescent::_tracefirst($text),
19107             q{asc_option},
19108             $tracelevel)
19109             if defined $::RD_TRACE;
19110 0         0 last;
19111             }
19112 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_asc_option]<< (}
19113             . @$_tok . q{ times)},
19114              
19115             Parse::RecDescent::_tracefirst($text),
19116             q{asc_option},
19117             $tracelevel)
19118             if defined $::RD_TRACE;
19119 0         0 $item{q{_alternation_1_of_production_1_of_rule_asc_option(?)}} = $_tok;
19120 0         0 push @item, $_tok;
19121              
19122              
19123              
19124              
19125 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ASC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]<<},
19126             Parse::RecDescent::_tracefirst($text),
19127             q{asc_option},
19128             $tracelevel)
19129             if defined $::RD_TRACE;
19130 0         0 $_matched = 1;
19131 0         0 last;
19132             }
19133              
19134              
19135 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
19136             {
19137              
19138              
19139 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
19140 0 0       0 Parse::RecDescent::_trace(q{<>},
19141             Parse::RecDescent::_tracefirst($_[1]),
19142             q{asc_option},
19143             $tracelevel)
19144             if defined $::RD_TRACE;
19145 0         0 return undef;
19146             }
19147 0 0 0     0 if (!defined($return) && defined($score))
19148             {
19149 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19150             q{asc_option},
19151             $tracelevel)
19152             if defined $::RD_TRACE;
19153 0         0 $return = $score_return;
19154             }
19155 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
19156 0 0       0 $return = $item[$#item] unless defined $return;
19157 0 0       0 if (defined $::RD_TRACE)
19158             {
19159 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19160             $return . q{])}, "",
19161             q{asc_option},
19162             $tracelevel);
19163 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
19164             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
19165             Parse::RecDescent::_tracefirst($text),
19166             , q{asc_option},
19167             $tracelevel)
19168             }
19169 0         0 $_[1] = $text;
19170 0         0 return $return;
19171             }
19172              
19173             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19174             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition
19175             {
19176 0     0   0 my $thisparser = $_[0];
19177 1     1   8 use vars q{$tracelevel};
  1         2  
  1         643  
19178 0   0     0 local $tracelevel = ($tracelevel||0)+1;
19179 0         0 $ERRORS = 0;
19180 0         0 my $thisrule = $thisparser->{"rules"}{"search_condition"};
19181              
19182 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [search_condition]},
19183             Parse::RecDescent::_tracefirst($_[1]),
19184             q{search_condition},
19185             $tracelevel)
19186             if defined $::RD_TRACE;
19187              
19188              
19189 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
19190              
19191 0         0 my $score;
19192             my $score_return;
19193 0         0 my $_tok;
19194 0         0 my $return = undef;
19195 0         0 my $_matched=0;
19196 0         0 my $commit=0;
19197 0         0 my @item = ();
19198 0         0 my %item = ();
19199 0   0     0 my $repeating = defined($_[2]) && $_[2];
19200 0   0     0 my $_noactions = defined($_[3]) && $_[3];
19201 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
19202 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
19203 0         0 my $text;
19204 0         0 my $lastsep="";
19205 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19206 0         0 $expectation->at($_[1]);
19207              
19208 0         0 my $thisline;
19209 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19210              
19211              
19212              
19213 0   0     0 while (!$_matched && !$commit)
19214             {
19215              
19216 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/[^)]+/]},
19217             Parse::RecDescent::_tracefirst($_[1]),
19218             q{search_condition},
19219             $tracelevel)
19220             if defined $::RD_TRACE;
19221 0         0 my $thisprod = $thisrule->{"prods"}[0];
19222 0         0 $text = $_[1];
19223 0         0 my $_savetext;
19224 0         0 @item = (q{search_condition});
19225 0         0 %item = (__RULE__ => q{search_condition});
19226 0         0 my $repcount = 0;
19227              
19228              
19229 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/[^)]+/]}, Parse::RecDescent::_tracefirst($text),
19230             q{search_condition},
19231             $tracelevel)
19232             if defined $::RD_TRACE;
19233 0         0 $lastsep = "";
19234 0         0 $expectation->is(q{})->at($text);
19235              
19236              
19237 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[^)]+)//)
  0 0       0  
19238             {
19239              
19240 0         0 $expectation->failed();
19241 0 0       0 Parse::RecDescent::_trace(q{<>},
19242             Parse::RecDescent::_tracefirst($text))
19243             if defined $::RD_TRACE;
19244              
19245 0         0 last;
19246             }
19247 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19248             . $& . q{])},
19249             Parse::RecDescent::_tracefirst($text))
19250             if defined $::RD_TRACE;
19251 0         0 push @item, $item{__PATTERN1__}=$&;
19252              
19253              
19254              
19255 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/[^)]+/]<<},
19256             Parse::RecDescent::_tracefirst($text),
19257             q{search_condition},
19258             $tracelevel)
19259             if defined $::RD_TRACE;
19260 0         0 $_matched = 1;
19261 0         0 last;
19262             }
19263              
19264              
19265 0   0     0 while (!$_matched && !$commit)
19266             {
19267              
19268 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NOT|/i predicate, or '(' cond]},
19269             Parse::RecDescent::_tracefirst($_[1]),
19270             q{search_condition},
19271             $tracelevel)
19272             if defined $::RD_TRACE;
19273 0         0 my $thisprod = $thisrule->{"prods"}[1];
19274 0         0 $text = $_[1];
19275 0         0 my $_savetext;
19276 0         0 @item = (q{search_condition});
19277 0         0 %item = (__RULE__ => q{search_condition});
19278 0         0 my $repcount = 0;
19279              
19280              
19281 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NOT|/i]}, Parse::RecDescent::_tracefirst($text),
19282             q{search_condition},
19283             $tracelevel)
19284             if defined $::RD_TRACE;
19285 0         0 $lastsep = "";
19286 0         0 $expectation->is(q{})->at($text);
19287              
19288              
19289 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NOT|)//i)
  0 0       0  
19290             {
19291              
19292 0         0 $expectation->failed();
19293 0 0       0 Parse::RecDescent::_trace(q{<>},
19294             Parse::RecDescent::_tracefirst($text))
19295             if defined $::RD_TRACE;
19296              
19297 0         0 last;
19298             }
19299 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19300             . $& . q{])},
19301             Parse::RecDescent::_tracefirst($text))
19302             if defined $::RD_TRACE;
19303 0         0 push @item, $item{__PATTERN1__}=$&;
19304              
19305              
19306 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_2_of_rule_search_condition]},
19307             Parse::RecDescent::_tracefirst($text),
19308             q{search_condition},
19309             $tracelevel)
19310             if defined $::RD_TRACE;
19311 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         493  
  0         0  
19312 0         0 $expectation->is(q{predicate, or '('})->at($text);
19313 0 0   0   0 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 })))
  0         0  
19314             {
19315              
19316 0 0       0 Parse::RecDescent::_trace(q{<>},
19317             Parse::RecDescent::_tracefirst($text),
19318             q{search_condition},
19319             $tracelevel)
19320             if defined $::RD_TRACE;
19321 0         0 $expectation->failed();
19322 0         0 last;
19323             }
19324 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_2_of_rule_search_condition]<< (return value: [}
19325             . $_tok . q{]},
19326              
19327             Parse::RecDescent::_tracefirst($text),
19328             q{search_condition},
19329             $tracelevel)
19330             if defined $::RD_TRACE;
19331 0         0 $item{q{_alternation_1_of_production_2_of_rule_search_condition}} = $_tok;
19332 0         0 push @item, $_tok;
19333              
19334             }
19335              
19336 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [cond]},
19337             Parse::RecDescent::_tracefirst($text),
19338             q{search_condition},
19339             $tracelevel)
19340             if defined $::RD_TRACE;
19341 0         0 $expectation->is(q{cond})->at($text);
19342              
19343 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cond, 0, 100000000, $_noactions,$expectation,undef)))
19344             {
19345 0 0       0 Parse::RecDescent::_trace(q{<>},
19346             Parse::RecDescent::_tracefirst($text),
19347             q{search_condition},
19348             $tracelevel)
19349             if defined $::RD_TRACE;
19350 0         0 last;
19351             }
19352 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [cond]<< (}
19353             . @$_tok . q{ times)},
19354              
19355             Parse::RecDescent::_tracefirst($text),
19356             q{search_condition},
19357             $tracelevel)
19358             if defined $::RD_TRACE;
19359 0         0 $item{q{cond(s?)}} = $_tok;
19360 0         0 push @item, $_tok;
19361              
19362              
19363              
19364              
19365 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NOT|/i predicate, or '(' cond]<<},
19366             Parse::RecDescent::_tracefirst($text),
19367             q{search_condition},
19368             $tracelevel)
19369             if defined $::RD_TRACE;
19370 0         0 $_matched = 1;
19371 0         0 last;
19372             }
19373              
19374              
19375 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
19376             {
19377              
19378              
19379 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
19380 0 0       0 Parse::RecDescent::_trace(q{<>},
19381             Parse::RecDescent::_tracefirst($_[1]),
19382             q{search_condition},
19383             $tracelevel)
19384             if defined $::RD_TRACE;
19385 0         0 return undef;
19386             }
19387 0 0 0     0 if (!defined($return) && defined($score))
19388             {
19389 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19390             q{search_condition},
19391             $tracelevel)
19392             if defined $::RD_TRACE;
19393 0         0 $return = $score_return;
19394             }
19395 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
19396 0 0       0 $return = $item[$#item] unless defined $return;
19397 0 0       0 if (defined $::RD_TRACE)
19398             {
19399 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19400             $return . q{])}, "",
19401             q{search_condition},
19402             $tracelevel);
19403 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
19404             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
19405             Parse::RecDescent::_tracefirst($text),
19406             , q{search_condition},
19407             $tracelevel)
19408             }
19409 0         0 $_[1] = $text;
19410 0         0 return $return;
19411             }
19412              
19413             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19414             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_operator
19415             {
19416 0     0   0 my $thisparser = $_[0];
19417 1     1   8 use vars q{$tracelevel};
  1         3  
  1         795  
19418 0   0     0 local $tracelevel = ($tracelevel||0)+1;
19419 0         0 $ERRORS = 0;
19420 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_operator"};
19421              
19422 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_operator]},
19423             Parse::RecDescent::_tracefirst($_[1]),
19424             q{_alternation_1_of_production_1_of_rule_operator},
19425             $tracelevel)
19426             if defined $::RD_TRACE;
19427              
19428              
19429 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
19430              
19431 0         0 my $score;
19432             my $score_return;
19433 0         0 my $_tok;
19434 0         0 my $return = undef;
19435 0         0 my $_matched=0;
19436 0         0 my $commit=0;
19437 0         0 my @item = ();
19438 0         0 my %item = ();
19439 0   0     0 my $repeating = defined($_[2]) && $_[2];
19440 0   0     0 my $_noactions = defined($_[3]) && $_[3];
19441 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
19442 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
19443 0         0 my $text;
19444 0         0 my $lastsep="";
19445 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19446 0         0 $expectation->at($_[1]);
19447              
19448 0         0 my $thisline;
19449 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19450              
19451              
19452              
19453 0   0     0 while (!$_matched && !$commit)
19454             {
19455              
19456 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CONCAT/i]},
19457             Parse::RecDescent::_tracefirst($_[1]),
19458             q{_alternation_1_of_production_1_of_rule_operator},
19459             $tracelevel)
19460             if defined $::RD_TRACE;
19461 0         0 my $thisprod = $thisrule->{"prods"}[0];
19462 0         0 $text = $_[1];
19463 0         0 my $_savetext;
19464 0         0 @item = (q{_alternation_1_of_production_1_of_rule_operator});
19465 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_operator});
19466 0         0 my $repcount = 0;
19467              
19468              
19469 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CONCAT/i]}, Parse::RecDescent::_tracefirst($text),
19470             q{_alternation_1_of_production_1_of_rule_operator},
19471             $tracelevel)
19472             if defined $::RD_TRACE;
19473 0         0 $lastsep = "";
19474 0         0 $expectation->is(q{})->at($text);
19475              
19476              
19477 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CONCAT)//i)
  0 0       0  
19478             {
19479              
19480 0         0 $expectation->failed();
19481 0 0       0 Parse::RecDescent::_trace(q{<>},
19482             Parse::RecDescent::_tracefirst($text))
19483             if defined $::RD_TRACE;
19484              
19485 0         0 last;
19486             }
19487 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19488             . $& . q{])},
19489             Parse::RecDescent::_tracefirst($text))
19490             if defined $::RD_TRACE;
19491 0         0 push @item, $item{__PATTERN1__}=$&;
19492              
19493              
19494              
19495 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/i]<<},
19496             Parse::RecDescent::_tracefirst($text),
19497             q{_alternation_1_of_production_1_of_rule_operator},
19498             $tracelevel)
19499             if defined $::RD_TRACE;
19500 0         0 $_matched = 1;
19501 0         0 last;
19502             }
19503              
19504              
19505 0   0     0 while (!$_matched && !$commit)
19506             {
19507              
19508 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['||']},
19509             Parse::RecDescent::_tracefirst($_[1]),
19510             q{_alternation_1_of_production_1_of_rule_operator},
19511             $tracelevel)
19512             if defined $::RD_TRACE;
19513 0         0 my $thisprod = $thisrule->{"prods"}[1];
19514 0         0 $text = $_[1];
19515 0         0 my $_savetext;
19516 0         0 @item = (q{_alternation_1_of_production_1_of_rule_operator});
19517 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_operator});
19518 0         0 my $repcount = 0;
19519              
19520              
19521 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['||']},
19522             Parse::RecDescent::_tracefirst($text),
19523             q{_alternation_1_of_production_1_of_rule_operator},
19524             $tracelevel)
19525             if defined $::RD_TRACE;
19526 0         0 $lastsep = "";
19527 0         0 $expectation->is(q{})->at($text);
19528              
19529              
19530 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\|\|//)
  0 0       0  
19531             {
19532              
19533 0         0 $expectation->failed();
19534 0 0       0 Parse::RecDescent::_trace(qq{<>},
19535             Parse::RecDescent::_tracefirst($text))
19536             if defined $::RD_TRACE;
19537 0         0 last;
19538             }
19539 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19540             . $& . q{])},
19541             Parse::RecDescent::_tracefirst($text))
19542             if defined $::RD_TRACE;
19543 0         0 push @item, $item{__STRING1__}=$&;
19544              
19545              
19546              
19547 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['||']<<},
19548             Parse::RecDescent::_tracefirst($text),
19549             q{_alternation_1_of_production_1_of_rule_operator},
19550             $tracelevel)
19551             if defined $::RD_TRACE;
19552 0         0 $_matched = 1;
19553 0         0 last;
19554             }
19555              
19556              
19557 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
19558             {
19559              
19560              
19561 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
19562 0 0       0 Parse::RecDescent::_trace(q{<>},
19563             Parse::RecDescent::_tracefirst($_[1]),
19564             q{_alternation_1_of_production_1_of_rule_operator},
19565             $tracelevel)
19566             if defined $::RD_TRACE;
19567 0         0 return undef;
19568             }
19569 0 0 0     0 if (!defined($return) && defined($score))
19570             {
19571 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19572             q{_alternation_1_of_production_1_of_rule_operator},
19573             $tracelevel)
19574             if defined $::RD_TRACE;
19575 0         0 $return = $score_return;
19576             }
19577 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
19578 0 0       0 $return = $item[$#item] unless defined $return;
19579 0 0       0 if (defined $::RD_TRACE)
19580             {
19581 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19582             $return . q{])}, "",
19583             q{_alternation_1_of_production_1_of_rule_operator},
19584             $tracelevel);
19585 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
19586             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
19587             Parse::RecDescent::_tracefirst($text),
19588             , q{_alternation_1_of_production_1_of_rule_operator},
19589             $tracelevel)
19590             }
19591 0         0 $_[1] = $text;
19592 0         0 return $return;
19593             }
19594              
19595             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19596             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::simple_when_clause
19597             {
19598 0     0   0 my $thisparser = $_[0];
19599 1     1   10 use vars q{$tracelevel};
  1         3  
  1         297  
19600 0   0     0 local $tracelevel = ($tracelevel||0)+1;
19601 0         0 $ERRORS = 0;
19602 0         0 my $thisrule = $thisparser->{"rules"}{"simple_when_clause"};
19603              
19604 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [simple_when_clause]},
19605             Parse::RecDescent::_tracefirst($_[1]),
19606             q{simple_when_clause},
19607             $tracelevel)
19608             if defined $::RD_TRACE;
19609              
19610              
19611 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
19612              
19613 0         0 my $score;
19614             my $score_return;
19615 0         0 my $_tok;
19616 0         0 my $return = undef;
19617 0         0 my $_matched=0;
19618 0         0 my $commit=0;
19619 0         0 my @item = ();
19620 0         0 my %item = ();
19621 0   0     0 my $repeating = defined($_[2]) && $_[2];
19622 0   0     0 my $_noactions = defined($_[3]) && $_[3];
19623 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
19624 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
19625 0         0 my $text;
19626 0         0 my $lastsep="";
19627 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19628 0         0 $expectation->at($_[1]);
19629              
19630 0         0 my $thisline;
19631 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19632              
19633              
19634              
19635 0   0     0 while (!$_matched && !$commit)
19636             {
19637              
19638 0 0       0 Parse::RecDescent::_trace(q{Trying production: [expression /WHEN/i]},
19639             Parse::RecDescent::_tracefirst($_[1]),
19640             q{simple_when_clause},
19641             $tracelevel)
19642             if defined $::RD_TRACE;
19643 0         0 my $thisprod = $thisrule->{"prods"}[0];
19644 0         0 $text = $_[1];
19645 0         0 my $_savetext;
19646 0         0 @item = (q{simple_when_clause});
19647 0         0 %item = (__RULE__ => q{simple_when_clause});
19648 0         0 my $repcount = 0;
19649              
19650              
19651 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
19652             Parse::RecDescent::_tracefirst($text),
19653             q{simple_when_clause},
19654             $tracelevel)
19655             if defined $::RD_TRACE;
19656 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         445  
  0         0  
19657 0         0 $expectation->is(q{})->at($text);
19658 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
19659             {
19660              
19661 0 0       0 Parse::RecDescent::_trace(q{<>},
19662             Parse::RecDescent::_tracefirst($text),
19663             q{simple_when_clause},
19664             $tracelevel)
19665             if defined $::RD_TRACE;
19666 0         0 $expectation->failed();
19667 0         0 last;
19668             }
19669 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
19670             . $_tok . q{]},
19671              
19672             Parse::RecDescent::_tracefirst($text),
19673             q{simple_when_clause},
19674             $tracelevel)
19675             if defined $::RD_TRACE;
19676 0         0 $item{q{expression}} = $_tok;
19677 0         0 push @item, $_tok;
19678              
19679             }
19680              
19681 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [/WHEN/i]},
19682             Parse::RecDescent::_tracefirst($text),
19683             q{simple_when_clause},
19684             $tracelevel)
19685             if defined $::RD_TRACE;
19686 0         0 $expectation->is(q{/WHEN/i})->at($text);
19687              
19688 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_simple_when_clause, 1, 100000000, $_noactions,$expectation,undef)))
19689             {
19690 0 0       0 Parse::RecDescent::_trace(q{<>},
19691             Parse::RecDescent::_tracefirst($text),
19692             q{simple_when_clause},
19693             $tracelevel)
19694             if defined $::RD_TRACE;
19695 0         0 last;
19696             }
19697 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_simple_when_clause]<< (}
19698             . @$_tok . q{ times)},
19699              
19700             Parse::RecDescent::_tracefirst($text),
19701             q{simple_when_clause},
19702             $tracelevel)
19703             if defined $::RD_TRACE;
19704 0         0 $item{q{_alternation_1_of_production_1_of_rule_simple_when_clause(s)}} = $_tok;
19705 0         0 push @item, $_tok;
19706              
19707              
19708              
19709              
19710 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [expression /WHEN/i]<<},
19711             Parse::RecDescent::_tracefirst($text),
19712             q{simple_when_clause},
19713             $tracelevel)
19714             if defined $::RD_TRACE;
19715 0         0 $_matched = 1;
19716 0         0 last;
19717             }
19718              
19719              
19720 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
19721             {
19722              
19723              
19724 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
19725 0 0       0 Parse::RecDescent::_trace(q{<>},
19726             Parse::RecDescent::_tracefirst($_[1]),
19727             q{simple_when_clause},
19728             $tracelevel)
19729             if defined $::RD_TRACE;
19730 0         0 return undef;
19731             }
19732 0 0 0     0 if (!defined($return) && defined($score))
19733             {
19734 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19735             q{simple_when_clause},
19736             $tracelevel)
19737             if defined $::RD_TRACE;
19738 0         0 $return = $score_return;
19739             }
19740 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
19741 0 0       0 $return = $item[$#item] unless defined $return;
19742 0 0       0 if (defined $::RD_TRACE)
19743             {
19744 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19745             $return . q{])}, "",
19746             q{simple_when_clause},
19747             $tracelevel);
19748 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
19749             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
19750             Parse::RecDescent::_tracefirst($text),
19751             , q{simple_when_clause},
19752             $tracelevel)
19753             }
19754 0         0 $_[1] = $text;
19755 0         0 return $return;
19756             }
19757              
19758             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19759             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::INNER
19760             {
19761 0     0   0 my $thisparser = $_[0];
19762 1     1   8 use vars q{$tracelevel};
  1         2  
  1         593  
19763 0   0     0 local $tracelevel = ($tracelevel||0)+1;
19764 0         0 $ERRORS = 0;
19765 0         0 my $thisrule = $thisparser->{"rules"}{"INNER"};
19766              
19767 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [INNER]},
19768             Parse::RecDescent::_tracefirst($_[1]),
19769             q{INNER},
19770             $tracelevel)
19771             if defined $::RD_TRACE;
19772              
19773              
19774 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
19775              
19776 0         0 my $score;
19777             my $score_return;
19778 0         0 my $_tok;
19779 0         0 my $return = undef;
19780 0         0 my $_matched=0;
19781 0         0 my $commit=0;
19782 0         0 my @item = ();
19783 0         0 my %item = ();
19784 0   0     0 my $repeating = defined($_[2]) && $_[2];
19785 0   0     0 my $_noactions = defined($_[3]) && $_[3];
19786 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
19787 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
19788 0         0 my $text;
19789 0         0 my $lastsep="";
19790 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19791 0         0 $expectation->at($_[1]);
19792              
19793 0         0 my $thisline;
19794 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19795              
19796              
19797              
19798 0   0     0 while (!$_matched && !$commit)
19799             {
19800              
19801 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/inner/i]},
19802             Parse::RecDescent::_tracefirst($_[1]),
19803             q{INNER},
19804             $tracelevel)
19805             if defined $::RD_TRACE;
19806 0         0 my $thisprod = $thisrule->{"prods"}[0];
19807 0         0 $text = $_[1];
19808 0         0 my $_savetext;
19809 0         0 @item = (q{INNER});
19810 0         0 %item = (__RULE__ => q{INNER});
19811 0         0 my $repcount = 0;
19812              
19813              
19814 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/inner/i]}, Parse::RecDescent::_tracefirst($text),
19815             q{INNER},
19816             $tracelevel)
19817             if defined $::RD_TRACE;
19818 0         0 $lastsep = "";
19819 0         0 $expectation->is(q{})->at($text);
19820              
19821              
19822 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:inner)//i)
  0 0       0  
19823             {
19824              
19825 0         0 $expectation->failed();
19826 0 0       0 Parse::RecDescent::_trace(q{<>},
19827             Parse::RecDescent::_tracefirst($text))
19828             if defined $::RD_TRACE;
19829              
19830 0         0 last;
19831             }
19832 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19833             . $& . q{])},
19834             Parse::RecDescent::_tracefirst($text))
19835             if defined $::RD_TRACE;
19836 0         0 push @item, $item{__PATTERN1__}=$&;
19837              
19838              
19839              
19840 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/inner/i]<<},
19841             Parse::RecDescent::_tracefirst($text),
19842             q{INNER},
19843             $tracelevel)
19844             if defined $::RD_TRACE;
19845 0         0 $_matched = 1;
19846 0         0 last;
19847             }
19848              
19849              
19850 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
19851             {
19852              
19853              
19854 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
19855 0 0       0 Parse::RecDescent::_trace(q{<>},
19856             Parse::RecDescent::_tracefirst($_[1]),
19857             q{INNER},
19858             $tracelevel)
19859             if defined $::RD_TRACE;
19860 0         0 return undef;
19861             }
19862 0 0 0     0 if (!defined($return) && defined($score))
19863             {
19864 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19865             q{INNER},
19866             $tracelevel)
19867             if defined $::RD_TRACE;
19868 0         0 $return = $score_return;
19869             }
19870 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
19871 0 0       0 $return = $item[$#item] unless defined $return;
19872 0 0       0 if (defined $::RD_TRACE)
19873             {
19874 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19875             $return . q{])}, "",
19876             q{INNER},
19877             $tracelevel);
19878 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
19879             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
19880             Parse::RecDescent::_tracefirst($text),
19881             , q{INNER},
19882             $tracelevel)
19883             }
19884 0         0 $_[1] = $text;
19885 0         0 return $return;
19886             }
19887              
19888             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19889             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::eofile
19890             {
19891 0     0   0 my $thisparser = $_[0];
19892 1     1   7 use vars q{$tracelevel};
  1         2  
  1         571  
19893 0   0     0 local $tracelevel = ($tracelevel||0)+1;
19894 0         0 $ERRORS = 0;
19895 0         0 my $thisrule = $thisparser->{"rules"}{"eofile"};
19896              
19897 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [eofile]},
19898             Parse::RecDescent::_tracefirst($_[1]),
19899             q{eofile},
19900             $tracelevel)
19901             if defined $::RD_TRACE;
19902              
19903              
19904 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
19905              
19906 0         0 my $score;
19907             my $score_return;
19908 0         0 my $_tok;
19909 0         0 my $return = undef;
19910 0         0 my $_matched=0;
19911 0         0 my $commit=0;
19912 0         0 my @item = ();
19913 0         0 my %item = ();
19914 0   0     0 my $repeating = defined($_[2]) && $_[2];
19915 0   0     0 my $_noactions = defined($_[3]) && $_[3];
19916 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
19917 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
19918 0         0 my $text;
19919 0         0 my $lastsep="";
19920 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19921 0         0 $expectation->at($_[1]);
19922              
19923 0         0 my $thisline;
19924 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19925              
19926              
19927              
19928 0   0     0 while (!$_matched && !$commit)
19929             {
19930              
19931 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/^\\Z/]},
19932             Parse::RecDescent::_tracefirst($_[1]),
19933             q{eofile},
19934             $tracelevel)
19935             if defined $::RD_TRACE;
19936 0         0 my $thisprod = $thisrule->{"prods"}[0];
19937 0         0 $text = $_[1];
19938 0         0 my $_savetext;
19939 0         0 @item = (q{eofile});
19940 0         0 %item = (__RULE__ => q{eofile});
19941 0         0 my $repcount = 0;
19942              
19943              
19944 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/^\\Z/]}, Parse::RecDescent::_tracefirst($text),
19945             q{eofile},
19946             $tracelevel)
19947             if defined $::RD_TRACE;
19948 0         0 $lastsep = "";
19949 0         0 $expectation->is(q{})->at($text);
19950              
19951              
19952 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:^\Z)//)
  0 0       0  
19953             {
19954              
19955 0         0 $expectation->failed();
19956 0 0       0 Parse::RecDescent::_trace(q{<>},
19957             Parse::RecDescent::_tracefirst($text))
19958             if defined $::RD_TRACE;
19959              
19960 0         0 last;
19961             }
19962 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19963             . $& . q{])},
19964             Parse::RecDescent::_tracefirst($text))
19965             if defined $::RD_TRACE;
19966 0         0 push @item, $item{__PATTERN1__}=$&;
19967              
19968              
19969              
19970 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/^\\Z/]<<},
19971             Parse::RecDescent::_tracefirst($text),
19972             q{eofile},
19973             $tracelevel)
19974             if defined $::RD_TRACE;
19975 0         0 $_matched = 1;
19976 0         0 last;
19977             }
19978              
19979              
19980 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
19981             {
19982              
19983              
19984 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
19985 0 0       0 Parse::RecDescent::_trace(q{<>},
19986             Parse::RecDescent::_tracefirst($_[1]),
19987             q{eofile},
19988             $tracelevel)
19989             if defined $::RD_TRACE;
19990 0         0 return undef;
19991             }
19992 0 0 0     0 if (!defined($return) && defined($score))
19993             {
19994 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19995             q{eofile},
19996             $tracelevel)
19997             if defined $::RD_TRACE;
19998 0         0 $return = $score_return;
19999             }
20000 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
20001 0 0       0 $return = $item[$#item] unless defined $return;
20002 0 0       0 if (defined $::RD_TRACE)
20003             {
20004 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20005             $return . q{])}, "",
20006             q{eofile},
20007             $tracelevel);
20008 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
20009             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
20010             Parse::RecDescent::_tracefirst($text),
20011             , q{eofile},
20012             $tracelevel)
20013             }
20014 0         0 $_[1] = $text;
20015 0         0 return $return;
20016             }
20017              
20018             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20019             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cond
20020             {
20021 0     0   0 my $thisparser = $_[0];
20022 1     1   8 use vars q{$tracelevel};
  1         3  
  1         278  
20023 0   0     0 local $tracelevel = ($tracelevel||0)+1;
20024 0         0 $ERRORS = 0;
20025 0         0 my $thisrule = $thisparser->{"rules"}{"cond"};
20026              
20027 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [cond]},
20028             Parse::RecDescent::_tracefirst($_[1]),
20029             q{cond},
20030             $tracelevel)
20031             if defined $::RD_TRACE;
20032              
20033              
20034 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
20035              
20036 0         0 my $score;
20037             my $score_return;
20038 0         0 my $_tok;
20039 0         0 my $return = undef;
20040 0         0 my $_matched=0;
20041 0         0 my $commit=0;
20042 0         0 my @item = ();
20043 0         0 my %item = ();
20044 0   0     0 my $repeating = defined($_[2]) && $_[2];
20045 0   0     0 my $_noactions = defined($_[3]) && $_[3];
20046 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
20047 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
20048 0         0 my $text;
20049 0         0 my $lastsep="";
20050 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20051 0         0 $expectation->at($_[1]);
20052              
20053 0         0 my $thisline;
20054 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20055              
20056              
20057              
20058 0   0     0 while (!$_matched && !$commit)
20059             {
20060              
20061 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/AND/i, or /OR/i /NOT|/i predicate, or '(']},
20062             Parse::RecDescent::_tracefirst($_[1]),
20063             q{cond},
20064             $tracelevel)
20065             if defined $::RD_TRACE;
20066 0         0 my $thisprod = $thisrule->{"prods"}[0];
20067 0         0 $text = $_[1];
20068 0         0 my $_savetext;
20069 0         0 @item = (q{cond});
20070 0         0 %item = (__RULE__ => q{cond});
20071 0         0 my $repcount = 0;
20072              
20073              
20074 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_cond]},
20075             Parse::RecDescent::_tracefirst($text),
20076             q{cond},
20077             $tracelevel)
20078             if defined $::RD_TRACE;
20079 1     1   8 if (1) { no strict qw{refs};
  1         3  
  1         358  
  0         0  
20080 0         0 $expectation->is(q{})->at($text);
20081 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cond($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
20082             {
20083              
20084 0 0       0 Parse::RecDescent::_trace(q{<>},
20085             Parse::RecDescent::_tracefirst($text),
20086             q{cond},
20087             $tracelevel)
20088             if defined $::RD_TRACE;
20089 0         0 $expectation->failed();
20090 0         0 last;
20091             }
20092 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_cond]<< (return value: [}
20093             . $_tok . q{]},
20094              
20095             Parse::RecDescent::_tracefirst($text),
20096             q{cond},
20097             $tracelevel)
20098             if defined $::RD_TRACE;
20099 0         0 $item{q{_alternation_1_of_production_1_of_rule_cond}} = $_tok;
20100 0         0 push @item, $_tok;
20101              
20102             }
20103              
20104 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NOT|/i]}, Parse::RecDescent::_tracefirst($text),
20105             q{cond},
20106             $tracelevel)
20107             if defined $::RD_TRACE;
20108 0         0 $lastsep = "";
20109 0         0 $expectation->is(q{/NOT|/i})->at($text);
20110              
20111              
20112 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NOT|)//i)
  0 0       0  
20113             {
20114              
20115 0         0 $expectation->failed();
20116 0 0       0 Parse::RecDescent::_trace(q{<>},
20117             Parse::RecDescent::_tracefirst($text))
20118             if defined $::RD_TRACE;
20119              
20120 0         0 last;
20121             }
20122 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20123             . $& . q{])},
20124             Parse::RecDescent::_tracefirst($text))
20125             if defined $::RD_TRACE;
20126 0         0 push @item, $item{__PATTERN1__}=$&;
20127              
20128              
20129 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_2_of_production_1_of_rule_cond]},
20130             Parse::RecDescent::_tracefirst($text),
20131             q{cond},
20132             $tracelevel)
20133             if defined $::RD_TRACE;
20134 1     1   8 if (1) { no strict qw{refs};
  1         3  
  1         345  
  0         0  
20135 0         0 $expectation->is(q{predicate, or '('})->at($text);
20136 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cond($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
20137             {
20138              
20139 0 0       0 Parse::RecDescent::_trace(q{<>},
20140             Parse::RecDescent::_tracefirst($text),
20141             q{cond},
20142             $tracelevel)
20143             if defined $::RD_TRACE;
20144 0         0 $expectation->failed();
20145 0         0 last;
20146             }
20147 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_2_of_production_1_of_rule_cond]<< (return value: [}
20148             . $_tok . q{]},
20149              
20150             Parse::RecDescent::_tracefirst($text),
20151             q{cond},
20152             $tracelevel)
20153             if defined $::RD_TRACE;
20154 0         0 $item{q{_alternation_2_of_production_1_of_rule_cond}} = $_tok;
20155 0         0 push @item, $_tok;
20156              
20157             }
20158              
20159              
20160 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/AND/i, or /OR/i /NOT|/i predicate, or '(']<<},
20161             Parse::RecDescent::_tracefirst($text),
20162             q{cond},
20163             $tracelevel)
20164             if defined $::RD_TRACE;
20165 0         0 $_matched = 1;
20166 0         0 last;
20167             }
20168              
20169              
20170 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
20171             {
20172              
20173              
20174 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
20175 0 0       0 Parse::RecDescent::_trace(q{<>},
20176             Parse::RecDescent::_tracefirst($_[1]),
20177             q{cond},
20178             $tracelevel)
20179             if defined $::RD_TRACE;
20180 0         0 return undef;
20181             }
20182 0 0 0     0 if (!defined($return) && defined($score))
20183             {
20184 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
20185             q{cond},
20186             $tracelevel)
20187             if defined $::RD_TRACE;
20188 0         0 $return = $score_return;
20189             }
20190 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
20191 0 0       0 $return = $item[$#item] unless defined $return;
20192 0 0       0 if (defined $::RD_TRACE)
20193             {
20194 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20195             $return . q{])}, "",
20196             q{cond},
20197             $tracelevel);
20198 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
20199             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
20200             Parse::RecDescent::_tracefirst($text),
20201             , q{cond},
20202             $tracelevel)
20203             }
20204 0         0 $_[1] = $text;
20205 0         0 return $return;
20206             }
20207              
20208             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20209             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_type
20210             {
20211 0     0   0 my $thisparser = $_[0];
20212 1     1   9 use vars q{$tracelevel};
  1         9  
  1         291  
20213 0   0     0 local $tracelevel = ($tracelevel||0)+1;
20214 0         0 $ERRORS = 0;
20215 0         0 my $thisrule = $thisparser->{"rules"}{"ld_type"};
20216              
20217 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [ld_type]},
20218             Parse::RecDescent::_tracefirst($_[1]),
20219             q{ld_type},
20220             $tracelevel)
20221             if defined $::RD_TRACE;
20222              
20223              
20224 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
20225              
20226 0         0 my $score;
20227             my $score_return;
20228 0         0 my $_tok;
20229 0         0 my $return = undef;
20230 0         0 my $_matched=0;
20231 0         0 my $commit=0;
20232 0         0 my @item = ();
20233 0         0 my %item = ();
20234 0   0     0 my $repeating = defined($_[2]) && $_[2];
20235 0   0     0 my $_noactions = defined($_[3]) && $_[3];
20236 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
20237 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
20238 0         0 my $text;
20239 0         0 my $lastsep="";
20240 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20241 0         0 $expectation->at($_[1]);
20242              
20243 0         0 my $thisline;
20244 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20245              
20246              
20247              
20248 0   0     0 while (!$_matched && !$commit)
20249             {
20250              
20251 0 0       0 Parse::RecDescent::_trace(q{Trying production: [function]},
20252             Parse::RecDescent::_tracefirst($_[1]),
20253             q{ld_type},
20254             $tracelevel)
20255             if defined $::RD_TRACE;
20256 0         0 my $thisprod = $thisrule->{"prods"}[0];
20257 0         0 $text = $_[1];
20258 0         0 my $_savetext;
20259 0         0 @item = (q{ld_type});
20260 0         0 %item = (__RULE__ => q{ld_type});
20261 0         0 my $repcount = 0;
20262              
20263              
20264 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [function]},
20265             Parse::RecDescent::_tracefirst($text),
20266             q{ld_type},
20267             $tracelevel)
20268             if defined $::RD_TRACE;
20269 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         368  
  0         0  
20270 0         0 $expectation->is(q{})->at($text);
20271 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
20272             {
20273              
20274 0 0       0 Parse::RecDescent::_trace(q{<>},
20275             Parse::RecDescent::_tracefirst($text),
20276             q{ld_type},
20277             $tracelevel)
20278             if defined $::RD_TRACE;
20279 0         0 $expectation->failed();
20280 0         0 last;
20281             }
20282 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [function]<< (return value: [}
20283             . $_tok . q{]},
20284              
20285             Parse::RecDescent::_tracefirst($text),
20286             q{ld_type},
20287             $tracelevel)
20288             if defined $::RD_TRACE;
20289 0         0 $item{q{function}} = $_tok;
20290 0         0 push @item, $_tok;
20291              
20292             }
20293              
20294              
20295 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [function]<<},
20296             Parse::RecDescent::_tracefirst($text),
20297             q{ld_type},
20298             $tracelevel)
20299             if defined $::RD_TRACE;
20300 0         0 $_matched = 1;
20301 0         0 last;
20302             }
20303              
20304              
20305 0   0     0 while (!$_matched && !$commit)
20306             {
20307              
20308 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
20309             Parse::RecDescent::_tracefirst($_[1]),
20310             q{ld_type},
20311             $tracelevel)
20312             if defined $::RD_TRACE;
20313 0         0 my $thisprod = $thisrule->{"prods"}[1];
20314 0         0 $text = $_[1];
20315 0         0 my $_savetext;
20316 0         0 @item = (q{ld_type});
20317 0         0 %item = (__RULE__ => q{ld_type});
20318 0         0 my $repcount = 0;
20319              
20320              
20321 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
20322             Parse::RecDescent::_tracefirst($text),
20323             q{ld_type},
20324             $tracelevel)
20325             if defined $::RD_TRACE;
20326 0         0 $lastsep = "";
20327 0         0 $expectation->is(q{})->at($text);
20328              
20329              
20330 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
20331             {
20332              
20333 0         0 $expectation->failed();
20334 0 0       0 Parse::RecDescent::_trace(qq{<>},
20335             Parse::RecDescent::_tracefirst($text))
20336             if defined $::RD_TRACE;
20337 0         0 last;
20338             }
20339 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20340             . $& . q{])},
20341             Parse::RecDescent::_tracefirst($text))
20342             if defined $::RD_TRACE;
20343 0         0 push @item, $item{__STRING1__}=$&;
20344              
20345              
20346 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
20347             Parse::RecDescent::_tracefirst($text),
20348             q{ld_type},
20349             $tracelevel)
20350             if defined $::RD_TRACE;
20351 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         357  
  0         0  
20352 0         0 $expectation->is(q{expression})->at($text);
20353 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
20354             {
20355              
20356 0 0       0 Parse::RecDescent::_trace(q{<>},
20357             Parse::RecDescent::_tracefirst($text),
20358             q{ld_type},
20359             $tracelevel)
20360             if defined $::RD_TRACE;
20361 0         0 $expectation->failed();
20362 0         0 last;
20363             }
20364 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
20365             . $_tok . q{]},
20366              
20367             Parse::RecDescent::_tracefirst($text),
20368             q{ld_type},
20369             $tracelevel)
20370             if defined $::RD_TRACE;
20371 0         0 $item{q{expression}} = $_tok;
20372 0         0 push @item, $_tok;
20373              
20374             }
20375              
20376 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
20377             Parse::RecDescent::_tracefirst($text),
20378             q{ld_type},
20379             $tracelevel)
20380             if defined $::RD_TRACE;
20381 0         0 $lastsep = "";
20382 0         0 $expectation->is(q{')'})->at($text);
20383              
20384              
20385 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
20386             {
20387              
20388 0         0 $expectation->failed();
20389 0 0       0 Parse::RecDescent::_trace(qq{<>},
20390             Parse::RecDescent::_tracefirst($text))
20391             if defined $::RD_TRACE;
20392 0         0 last;
20393             }
20394 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20395             . $& . q{])},
20396             Parse::RecDescent::_tracefirst($text))
20397             if defined $::RD_TRACE;
20398 0         0 push @item, $item{__STRING2__}=$&;
20399              
20400              
20401              
20402 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['(' expression ')']<<},
20403             Parse::RecDescent::_tracefirst($text),
20404             q{ld_type},
20405             $tracelevel)
20406             if defined $::RD_TRACE;
20407 0         0 $_matched = 1;
20408 0         0 last;
20409             }
20410              
20411              
20412 0   0     0 while (!$_matched && !$commit)
20413             {
20414              
20415 0 0       0 Parse::RecDescent::_trace(q{Trying production: [constant]},
20416             Parse::RecDescent::_tracefirst($_[1]),
20417             q{ld_type},
20418             $tracelevel)
20419             if defined $::RD_TRACE;
20420 0         0 my $thisprod = $thisrule->{"prods"}[2];
20421 0         0 $text = $_[1];
20422 0         0 my $_savetext;
20423 0         0 @item = (q{ld_type});
20424 0         0 %item = (__RULE__ => q{ld_type});
20425 0         0 my $repcount = 0;
20426              
20427              
20428 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [constant]},
20429             Parse::RecDescent::_tracefirst($text),
20430             q{ld_type},
20431             $tracelevel)
20432             if defined $::RD_TRACE;
20433 1     1   23 if (1) { no strict qw{refs};
  1         2  
  1         236  
  0         0  
20434 0         0 $expectation->is(q{})->at($text);
20435 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
20436             {
20437              
20438 0 0       0 Parse::RecDescent::_trace(q{<>},
20439             Parse::RecDescent::_tracefirst($text),
20440             q{ld_type},
20441             $tracelevel)
20442             if defined $::RD_TRACE;
20443 0         0 $expectation->failed();
20444 0         0 last;
20445             }
20446 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [constant]<< (return value: [}
20447             . $_tok . q{]},
20448              
20449             Parse::RecDescent::_tracefirst($text),
20450             q{ld_type},
20451             $tracelevel)
20452             if defined $::RD_TRACE;
20453 0         0 $item{q{constant}} = $_tok;
20454 0         0 push @item, $_tok;
20455              
20456             }
20457              
20458              
20459 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [constant]<<},
20460             Parse::RecDescent::_tracefirst($text),
20461             q{ld_type},
20462             $tracelevel)
20463             if defined $::RD_TRACE;
20464 0         0 $_matched = 1;
20465 0         0 last;
20466             }
20467              
20468              
20469 0   0     0 while (!$_matched && !$commit)
20470             {
20471              
20472 0 0       0 Parse::RecDescent::_trace(q{Trying production: [column_name]},
20473             Parse::RecDescent::_tracefirst($_[1]),
20474             q{ld_type},
20475             $tracelevel)
20476             if defined $::RD_TRACE;
20477 0         0 my $thisprod = $thisrule->{"prods"}[3];
20478 0         0 $text = $_[1];
20479 0         0 my $_savetext;
20480 0         0 @item = (q{ld_type});
20481 0         0 %item = (__RULE__ => q{ld_type});
20482 0         0 my $repcount = 0;
20483              
20484              
20485 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
20486             Parse::RecDescent::_tracefirst($text),
20487             q{ld_type},
20488             $tracelevel)
20489             if defined $::RD_TRACE;
20490 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         220  
  0         0  
20491 0         0 $expectation->is(q{})->at($text);
20492 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
20493             {
20494              
20495 0 0       0 Parse::RecDescent::_trace(q{<>},
20496             Parse::RecDescent::_tracefirst($text),
20497             q{ld_type},
20498             $tracelevel)
20499             if defined $::RD_TRACE;
20500 0         0 $expectation->failed();
20501 0         0 last;
20502             }
20503 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
20504             . $_tok . q{]},
20505              
20506             Parse::RecDescent::_tracefirst($text),
20507             q{ld_type},
20508             $tracelevel)
20509             if defined $::RD_TRACE;
20510 0         0 $item{q{column_name}} = $_tok;
20511 0         0 push @item, $_tok;
20512              
20513             }
20514              
20515              
20516 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [column_name]<<},
20517             Parse::RecDescent::_tracefirst($text),
20518             q{ld_type},
20519             $tracelevel)
20520             if defined $::RD_TRACE;
20521 0         0 $_matched = 1;
20522 0         0 last;
20523             }
20524              
20525              
20526 0   0     0 while (!$_matched && !$commit)
20527             {
20528              
20529 0 0       0 Parse::RecDescent::_trace(q{Trying production: [host_variable]},
20530             Parse::RecDescent::_tracefirst($_[1]),
20531             q{ld_type},
20532             $tracelevel)
20533             if defined $::RD_TRACE;
20534 0         0 my $thisprod = $thisrule->{"prods"}[4];
20535 0         0 $text = $_[1];
20536 0         0 my $_savetext;
20537 0         0 @item = (q{ld_type});
20538 0         0 %item = (__RULE__ => q{ld_type});
20539 0         0 my $repcount = 0;
20540              
20541              
20542 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [host_variable]},
20543             Parse::RecDescent::_tracefirst($text),
20544             q{ld_type},
20545             $tracelevel)
20546             if defined $::RD_TRACE;
20547 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         437  
  0         0  
20548 0         0 $expectation->is(q{})->at($text);
20549 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::host_variable($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
20550             {
20551              
20552 0 0       0 Parse::RecDescent::_trace(q{<>},
20553             Parse::RecDescent::_tracefirst($text),
20554             q{ld_type},
20555             $tracelevel)
20556             if defined $::RD_TRACE;
20557 0         0 $expectation->failed();
20558 0         0 last;
20559             }
20560 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [host_variable]<< (return value: [}
20561             . $_tok . q{]},
20562              
20563             Parse::RecDescent::_tracefirst($text),
20564             q{ld_type},
20565             $tracelevel)
20566             if defined $::RD_TRACE;
20567 0         0 $item{q{host_variable}} = $_tok;
20568 0         0 push @item, $_tok;
20569              
20570             }
20571              
20572              
20573 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [host_variable]<<},
20574             Parse::RecDescent::_tracefirst($text),
20575             q{ld_type},
20576             $tracelevel)
20577             if defined $::RD_TRACE;
20578 0         0 $_matched = 1;
20579 0         0 last;
20580             }
20581              
20582              
20583 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
20584             {
20585              
20586              
20587 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
20588 0 0       0 Parse::RecDescent::_trace(q{<>},
20589             Parse::RecDescent::_tracefirst($_[1]),
20590             q{ld_type},
20591             $tracelevel)
20592             if defined $::RD_TRACE;
20593 0         0 return undef;
20594             }
20595 0 0 0     0 if (!defined($return) && defined($score))
20596             {
20597 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
20598             q{ld_type},
20599             $tracelevel)
20600             if defined $::RD_TRACE;
20601 0         0 $return = $score_return;
20602             }
20603 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
20604 0 0       0 $return = $item[$#item] unless defined $return;
20605 0 0       0 if (defined $::RD_TRACE)
20606             {
20607 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20608             $return . q{])}, "",
20609             q{ld_type},
20610             $tracelevel);
20611 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
20612             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
20613             Parse::RecDescent::_tracefirst($text),
20614             , q{ld_type},
20615             $tracelevel)
20616             }
20617 0         0 $_[1] = $text;
20618 0         0 return $return;
20619             }
20620              
20621             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20622             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::RIGHT
20623             {
20624 0     0   0 my $thisparser = $_[0];
20625 1     1   8 use vars q{$tracelevel};
  1         2  
  1         606  
20626 0   0     0 local $tracelevel = ($tracelevel||0)+1;
20627 0         0 $ERRORS = 0;
20628 0         0 my $thisrule = $thisparser->{"rules"}{"RIGHT"};
20629              
20630 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [RIGHT]},
20631             Parse::RecDescent::_tracefirst($_[1]),
20632             q{RIGHT},
20633             $tracelevel)
20634             if defined $::RD_TRACE;
20635              
20636              
20637 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
20638              
20639 0         0 my $score;
20640             my $score_return;
20641 0         0 my $_tok;
20642 0         0 my $return = undef;
20643 0         0 my $_matched=0;
20644 0         0 my $commit=0;
20645 0         0 my @item = ();
20646 0         0 my %item = ();
20647 0   0     0 my $repeating = defined($_[2]) && $_[2];
20648 0   0     0 my $_noactions = defined($_[3]) && $_[3];
20649 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
20650 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
20651 0         0 my $text;
20652 0         0 my $lastsep="";
20653 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20654 0         0 $expectation->at($_[1]);
20655              
20656 0         0 my $thisline;
20657 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20658              
20659              
20660              
20661 0   0     0 while (!$_matched && !$commit)
20662             {
20663              
20664 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/right/i]},
20665             Parse::RecDescent::_tracefirst($_[1]),
20666             q{RIGHT},
20667             $tracelevel)
20668             if defined $::RD_TRACE;
20669 0         0 my $thisprod = $thisrule->{"prods"}[0];
20670 0         0 $text = $_[1];
20671 0         0 my $_savetext;
20672 0         0 @item = (q{RIGHT});
20673 0         0 %item = (__RULE__ => q{RIGHT});
20674 0         0 my $repcount = 0;
20675              
20676              
20677 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/right/i]}, Parse::RecDescent::_tracefirst($text),
20678             q{RIGHT},
20679             $tracelevel)
20680             if defined $::RD_TRACE;
20681 0         0 $lastsep = "";
20682 0         0 $expectation->is(q{})->at($text);
20683              
20684              
20685 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:right)//i)
  0 0       0  
20686             {
20687              
20688 0         0 $expectation->failed();
20689 0 0       0 Parse::RecDescent::_trace(q{<>},
20690             Parse::RecDescent::_tracefirst($text))
20691             if defined $::RD_TRACE;
20692              
20693 0         0 last;
20694             }
20695 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20696             . $& . q{])},
20697             Parse::RecDescent::_tracefirst($text))
20698             if defined $::RD_TRACE;
20699 0         0 push @item, $item{__PATTERN1__}=$&;
20700              
20701              
20702              
20703 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/right/i]<<},
20704             Parse::RecDescent::_tracefirst($text),
20705             q{RIGHT},
20706             $tracelevel)
20707             if defined $::RD_TRACE;
20708 0         0 $_matched = 1;
20709 0         0 last;
20710             }
20711              
20712              
20713 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
20714             {
20715              
20716              
20717 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
20718 0 0       0 Parse::RecDescent::_trace(q{<>},
20719             Parse::RecDescent::_tracefirst($_[1]),
20720             q{RIGHT},
20721             $tracelevel)
20722             if defined $::RD_TRACE;
20723 0         0 return undef;
20724             }
20725 0 0 0     0 if (!defined($return) && defined($score))
20726             {
20727 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
20728             q{RIGHT},
20729             $tracelevel)
20730             if defined $::RD_TRACE;
20731 0         0 $return = $score_return;
20732             }
20733 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
20734 0 0       0 $return = $item[$#item] unless defined $return;
20735 0 0       0 if (defined $::RD_TRACE)
20736             {
20737 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20738             $return . q{])}, "",
20739             q{RIGHT},
20740             $tracelevel);
20741 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
20742             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
20743             Parse::RecDescent::_tracefirst($text),
20744             , q{RIGHT},
20745             $tracelevel)
20746             }
20747 0         0 $_[1] = $text;
20748 0         0 return $return;
20749             }
20750              
20751             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20752             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_method_invocation
20753             {
20754 0     0   0 my $thisparser = $_[0];
20755 1     1   7 use vars q{$tracelevel};
  1         2  
  1         809  
20756 0   0     0 local $tracelevel = ($tracelevel||0)+1;
20757 0         0 $ERRORS = 0;
20758 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_method_invocation"};
20759              
20760 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_method_invocation]},
20761             Parse::RecDescent::_tracefirst($_[1]),
20762             q{_alternation_1_of_production_1_of_rule_method_invocation},
20763             $tracelevel)
20764             if defined $::RD_TRACE;
20765              
20766              
20767 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
20768              
20769 0         0 my $score;
20770             my $score_return;
20771 0         0 my $_tok;
20772 0         0 my $return = undef;
20773 0         0 my $_matched=0;
20774 0         0 my $commit=0;
20775 0         0 my @item = ();
20776 0         0 my %item = ();
20777 0   0     0 my $repeating = defined($_[2]) && $_[2];
20778 0   0     0 my $_noactions = defined($_[3]) && $_[3];
20779 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
20780 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
20781 0         0 my $text;
20782 0         0 my $lastsep="";
20783 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20784 0         0 $expectation->at($_[1]);
20785              
20786 0         0 my $thisline;
20787 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20788              
20789              
20790              
20791 0   0     0 while (!$_matched && !$commit)
20792             {
20793              
20794 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
20795             Parse::RecDescent::_tracefirst($_[1]),
20796             q{_alternation_1_of_production_1_of_rule_method_invocation},
20797             $tracelevel)
20798             if defined $::RD_TRACE;
20799 0         0 my $thisprod = $thisrule->{"prods"}[0];
20800 0         0 $text = $_[1];
20801 0         0 my $_savetext;
20802 0         0 @item = (q{_alternation_1_of_production_1_of_rule_method_invocation});
20803 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_method_invocation});
20804 0         0 my $repcount = 0;
20805              
20806              
20807 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
20808             Parse::RecDescent::_tracefirst($text),
20809             q{_alternation_1_of_production_1_of_rule_method_invocation},
20810             $tracelevel)
20811             if defined $::RD_TRACE;
20812 0         0 $lastsep = "";
20813 0         0 $expectation->is(q{})->at($text);
20814              
20815              
20816 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
20817             {
20818              
20819 0         0 $expectation->failed();
20820 0 0       0 Parse::RecDescent::_trace(qq{<>},
20821             Parse::RecDescent::_tracefirst($text))
20822             if defined $::RD_TRACE;
20823 0         0 last;
20824             }
20825 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20826             . $& . q{])},
20827             Parse::RecDescent::_tracefirst($text))
20828             if defined $::RD_TRACE;
20829 0         0 push @item, $item{__STRING1__}=$&;
20830              
20831              
20832 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [expression]},
20833             Parse::RecDescent::_tracefirst($text),
20834             q{_alternation_1_of_production_1_of_rule_method_invocation},
20835             $tracelevel)
20836             if defined $::RD_TRACE;
20837 0         0 $expectation->is(q{expression})->at($text);
20838              
20839 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression, 1, 100000000, $_noactions,$expectation,undef)))
20840             {
20841 0 0       0 Parse::RecDescent::_trace(q{<>},
20842             Parse::RecDescent::_tracefirst($text),
20843             q{_alternation_1_of_production_1_of_rule_method_invocation},
20844             $tracelevel)
20845             if defined $::RD_TRACE;
20846 0         0 last;
20847             }
20848 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [expression]<< (}
20849             . @$_tok . q{ times)},
20850              
20851             Parse::RecDescent::_tracefirst($text),
20852             q{_alternation_1_of_production_1_of_rule_method_invocation},
20853             $tracelevel)
20854             if defined $::RD_TRACE;
20855 0         0 $item{q{expression(s)}} = $_tok;
20856 0         0 push @item, $_tok;
20857              
20858              
20859              
20860 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
20861             Parse::RecDescent::_tracefirst($text),
20862             q{_alternation_1_of_production_1_of_rule_method_invocation},
20863             $tracelevel)
20864             if defined $::RD_TRACE;
20865 0         0 $lastsep = "";
20866 0         0 $expectation->is(q{')'})->at($text);
20867              
20868              
20869 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
20870             {
20871              
20872 0         0 $expectation->failed();
20873 0 0       0 Parse::RecDescent::_trace(qq{<>},
20874             Parse::RecDescent::_tracefirst($text))
20875             if defined $::RD_TRACE;
20876 0         0 last;
20877             }
20878 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20879             . $& . q{])},
20880             Parse::RecDescent::_tracefirst($text))
20881             if defined $::RD_TRACE;
20882 0         0 push @item, $item{__STRING2__}=$&;
20883              
20884              
20885              
20886 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['(' expression ')']<<},
20887             Parse::RecDescent::_tracefirst($text),
20888             q{_alternation_1_of_production_1_of_rule_method_invocation},
20889             $tracelevel)
20890             if defined $::RD_TRACE;
20891 0         0 $_matched = 1;
20892 0         0 last;
20893             }
20894              
20895              
20896 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
20897             {
20898              
20899              
20900 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
20901 0 0       0 Parse::RecDescent::_trace(q{<>},
20902             Parse::RecDescent::_tracefirst($_[1]),
20903             q{_alternation_1_of_production_1_of_rule_method_invocation},
20904             $tracelevel)
20905             if defined $::RD_TRACE;
20906 0         0 return undef;
20907             }
20908 0 0 0     0 if (!defined($return) && defined($score))
20909             {
20910 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
20911             q{_alternation_1_of_production_1_of_rule_method_invocation},
20912             $tracelevel)
20913             if defined $::RD_TRACE;
20914 0         0 $return = $score_return;
20915             }
20916 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
20917 0 0       0 $return = $item[$#item] unless defined $return;
20918 0 0       0 if (defined $::RD_TRACE)
20919             {
20920 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20921             $return . q{])}, "",
20922             q{_alternation_1_of_production_1_of_rule_method_invocation},
20923             $tracelevel);
20924 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
20925             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
20926             Parse::RecDescent::_tracefirst($text),
20927             , q{_alternation_1_of_production_1_of_rule_method_invocation},
20928             $tracelevel)
20929             }
20930 0         0 $_[1] = $text;
20931 0         0 return $return;
20932             }
20933              
20934             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20935             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::LEFT
20936             {
20937 0     0   0 my $thisparser = $_[0];
20938 1     1   14 use vars q{$tracelevel};
  1         4  
  1         616  
20939 0   0     0 local $tracelevel = ($tracelevel||0)+1;
20940 0         0 $ERRORS = 0;
20941 0         0 my $thisrule = $thisparser->{"rules"}{"LEFT"};
20942              
20943 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [LEFT]},
20944             Parse::RecDescent::_tracefirst($_[1]),
20945             q{LEFT},
20946             $tracelevel)
20947             if defined $::RD_TRACE;
20948              
20949              
20950 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
20951              
20952 0         0 my $score;
20953             my $score_return;
20954 0         0 my $_tok;
20955 0         0 my $return = undef;
20956 0         0 my $_matched=0;
20957 0         0 my $commit=0;
20958 0         0 my @item = ();
20959 0         0 my %item = ();
20960 0   0     0 my $repeating = defined($_[2]) && $_[2];
20961 0   0     0 my $_noactions = defined($_[3]) && $_[3];
20962 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
20963 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
20964 0         0 my $text;
20965 0         0 my $lastsep="";
20966 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20967 0         0 $expectation->at($_[1]);
20968              
20969 0         0 my $thisline;
20970 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20971              
20972              
20973              
20974 0   0     0 while (!$_matched && !$commit)
20975             {
20976              
20977 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/left/i]},
20978             Parse::RecDescent::_tracefirst($_[1]),
20979             q{LEFT},
20980             $tracelevel)
20981             if defined $::RD_TRACE;
20982 0         0 my $thisprod = $thisrule->{"prods"}[0];
20983 0         0 $text = $_[1];
20984 0         0 my $_savetext;
20985 0         0 @item = (q{LEFT});
20986 0         0 %item = (__RULE__ => q{LEFT});
20987 0         0 my $repcount = 0;
20988              
20989              
20990 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/left/i]}, Parse::RecDescent::_tracefirst($text),
20991             q{LEFT},
20992             $tracelevel)
20993             if defined $::RD_TRACE;
20994 0         0 $lastsep = "";
20995 0         0 $expectation->is(q{})->at($text);
20996              
20997              
20998 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:left)//i)
  0 0       0  
20999             {
21000              
21001 0         0 $expectation->failed();
21002 0 0       0 Parse::RecDescent::_trace(q{<>},
21003             Parse::RecDescent::_tracefirst($text))
21004             if defined $::RD_TRACE;
21005              
21006 0         0 last;
21007             }
21008 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21009             . $& . q{])},
21010             Parse::RecDescent::_tracefirst($text))
21011             if defined $::RD_TRACE;
21012 0         0 push @item, $item{__PATTERN1__}=$&;
21013              
21014              
21015              
21016 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/left/i]<<},
21017             Parse::RecDescent::_tracefirst($text),
21018             q{LEFT},
21019             $tracelevel)
21020             if defined $::RD_TRACE;
21021 0         0 $_matched = 1;
21022 0         0 last;
21023             }
21024              
21025              
21026 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
21027             {
21028              
21029              
21030 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
21031 0 0       0 Parse::RecDescent::_trace(q{<>},
21032             Parse::RecDescent::_tracefirst($_[1]),
21033             q{LEFT},
21034             $tracelevel)
21035             if defined $::RD_TRACE;
21036 0         0 return undef;
21037             }
21038 0 0 0     0 if (!defined($return) && defined($score))
21039             {
21040 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
21041             q{LEFT},
21042             $tracelevel)
21043             if defined $::RD_TRACE;
21044 0         0 $return = $score_return;
21045             }
21046 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
21047 0 0       0 $return = $item[$#item] unless defined $return;
21048 0 0       0 if (defined $::RD_TRACE)
21049             {
21050 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
21051             $return . q{])}, "",
21052             q{LEFT},
21053             $tracelevel);
21054 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
21055             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
21056             Parse::RecDescent::_tracefirst($text),
21057             , q{LEFT},
21058             $tracelevel)
21059             }
21060 0         0 $_[1] = $text;
21061 0         0 return $return;
21062             }
21063              
21064             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
21065             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name
21066             {
21067 0     0   0 my $thisparser = $_[0];
21068 1     1   8 use vars q{$tracelevel};
  1         3  
  1         282  
21069 0   0     0 local $tracelevel = ($tracelevel||0)+1;
21070 0         0 $ERRORS = 0;
21071 0         0 my $thisrule = $thisparser->{"rules"}{"table_name"};
21072              
21073 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [table_name]},
21074             Parse::RecDescent::_tracefirst($_[1]),
21075             q{table_name},
21076             $tracelevel)
21077             if defined $::RD_TRACE;
21078              
21079              
21080 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
21081              
21082 0         0 my $score;
21083             my $score_return;
21084 0         0 my $_tok;
21085 0         0 my $return = undef;
21086 0         0 my $_matched=0;
21087 0         0 my $commit=0;
21088 0         0 my @item = ();
21089 0         0 my %item = ();
21090 0   0     0 my $repeating = defined($_[2]) && $_[2];
21091 0   0     0 my $_noactions = defined($_[3]) && $_[3];
21092 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
21093 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
21094 0         0 my $text;
21095 0         0 my $lastsep="";
21096 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
21097 0         0 $expectation->at($_[1]);
21098              
21099 0         0 my $thisline;
21100 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
21101              
21102              
21103              
21104 0   0     0 while (!$_matched && !$commit)
21105             {
21106              
21107 0 0       0 Parse::RecDescent::_trace(q{Trying production: [SCHEMA '.' NAME]},
21108             Parse::RecDescent::_tracefirst($_[1]),
21109             q{table_name},
21110             $tracelevel)
21111             if defined $::RD_TRACE;
21112 0         0 my $thisprod = $thisrule->{"prods"}[0];
21113 0         0 $text = $_[1];
21114 0         0 my $_savetext;
21115 0         0 @item = (q{table_name});
21116 0         0 %item = (__RULE__ => q{table_name});
21117 0         0 my $repcount = 0;
21118              
21119              
21120 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [SCHEMA]},
21121             Parse::RecDescent::_tracefirst($text),
21122             q{table_name},
21123             $tracelevel)
21124             if defined $::RD_TRACE;
21125 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         269  
  0         0  
21126 0         0 $expectation->is(q{})->at($text);
21127 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
21128             {
21129              
21130 0 0       0 Parse::RecDescent::_trace(q{<>},
21131             Parse::RecDescent::_tracefirst($text),
21132             q{table_name},
21133             $tracelevel)
21134             if defined $::RD_TRACE;
21135 0         0 $expectation->failed();
21136 0         0 last;
21137             }
21138 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [SCHEMA]<< (return value: [}
21139             . $_tok . q{]},
21140              
21141             Parse::RecDescent::_tracefirst($text),
21142             q{table_name},
21143             $tracelevel)
21144             if defined $::RD_TRACE;
21145 0         0 $item{q{SCHEMA}} = $_tok;
21146 0         0 push @item, $_tok;
21147              
21148             }
21149              
21150 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['.']},
21151             Parse::RecDescent::_tracefirst($text),
21152             q{table_name},
21153             $tracelevel)
21154             if defined $::RD_TRACE;
21155 0         0 $lastsep = "";
21156 0         0 $expectation->is(q{'.'})->at($text);
21157              
21158              
21159 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\.//)
  0 0       0  
21160             {
21161              
21162 0         0 $expectation->failed();
21163 0 0       0 Parse::RecDescent::_trace(qq{<>},
21164             Parse::RecDescent::_tracefirst($text))
21165             if defined $::RD_TRACE;
21166 0         0 last;
21167             }
21168 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21169             . $& . q{])},
21170             Parse::RecDescent::_tracefirst($text))
21171             if defined $::RD_TRACE;
21172 0         0 push @item, $item{__STRING1__}=$&;
21173              
21174              
21175 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
21176             Parse::RecDescent::_tracefirst($text),
21177             q{table_name},
21178             $tracelevel)
21179             if defined $::RD_TRACE;
21180 1     1   10 if (1) { no strict qw{refs};
  1         1  
  1         321  
  0         0  
21181 0         0 $expectation->is(q{NAME})->at($text);
21182 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
21183             {
21184              
21185 0 0       0 Parse::RecDescent::_trace(q{<>},
21186             Parse::RecDescent::_tracefirst($text),
21187             q{table_name},
21188             $tracelevel)
21189             if defined $::RD_TRACE;
21190 0         0 $expectation->failed();
21191 0         0 last;
21192             }
21193 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
21194             . $_tok . q{]},
21195              
21196             Parse::RecDescent::_tracefirst($text),
21197             q{table_name},
21198             $tracelevel)
21199             if defined $::RD_TRACE;
21200 0         0 $item{q{NAME}} = $_tok;
21201 0         0 push @item, $_tok;
21202              
21203             }
21204              
21205 0 0       0 Parse::RecDescent::_trace(q{Trying action},
21206             Parse::RecDescent::_tracefirst($text),
21207             q{table_name},
21208             $tracelevel)
21209             if defined $::RD_TRACE;
21210              
21211              
21212 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = { schema => $item[1], name => $item[3] } };
  0         0  
21213 0 0       0 unless (defined $_tok)
21214             {
21215 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
21216             if defined $::RD_TRACE;
21217 0         0 last;
21218             }
21219 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
21220             . $_tok . q{])},
21221             Parse::RecDescent::_tracefirst($text))
21222             if defined $::RD_TRACE;
21223 0         0 push @item, $_tok;
21224 0         0 $item{__ACTION1__}=$_tok;
21225              
21226              
21227              
21228 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [SCHEMA '.' NAME]<<},
21229             Parse::RecDescent::_tracefirst($text),
21230             q{table_name},
21231             $tracelevel)
21232             if defined $::RD_TRACE;
21233 0         0 $_matched = 1;
21234 0         0 last;
21235             }
21236              
21237              
21238 0   0     0 while (!$_matched && !$commit)
21239             {
21240              
21241 0 0       0 Parse::RecDescent::_trace(q{Trying production: [NAME]},
21242             Parse::RecDescent::_tracefirst($_[1]),
21243             q{table_name},
21244             $tracelevel)
21245             if defined $::RD_TRACE;
21246 0         0 my $thisprod = $thisrule->{"prods"}[1];
21247 0         0 $text = $_[1];
21248 0         0 my $_savetext;
21249 0         0 @item = (q{table_name});
21250 0         0 %item = (__RULE__ => q{table_name});
21251 0         0 my $repcount = 0;
21252              
21253              
21254 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
21255             Parse::RecDescent::_tracefirst($text),
21256             q{table_name},
21257             $tracelevel)
21258             if defined $::RD_TRACE;
21259 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         486  
  0         0  
21260 0         0 $expectation->is(q{})->at($text);
21261 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
21262             {
21263              
21264 0 0       0 Parse::RecDescent::_trace(q{<>},
21265             Parse::RecDescent::_tracefirst($text),
21266             q{table_name},
21267             $tracelevel)
21268             if defined $::RD_TRACE;
21269 0         0 $expectation->failed();
21270 0         0 last;
21271             }
21272 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
21273             . $_tok . q{]},
21274              
21275             Parse::RecDescent::_tracefirst($text),
21276             q{table_name},
21277             $tracelevel)
21278             if defined $::RD_TRACE;
21279 0         0 $item{q{NAME}} = $_tok;
21280 0         0 push @item, $_tok;
21281              
21282             }
21283              
21284 0 0       0 Parse::RecDescent::_trace(q{Trying action},
21285             Parse::RecDescent::_tracefirst($text),
21286             q{table_name},
21287             $tracelevel)
21288             if defined $::RD_TRACE;
21289              
21290              
21291 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = { name => $item[1] } };
  0         0  
21292 0 0       0 unless (defined $_tok)
21293             {
21294 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
21295             if defined $::RD_TRACE;
21296 0         0 last;
21297             }
21298 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
21299             . $_tok . q{])},
21300             Parse::RecDescent::_tracefirst($text))
21301             if defined $::RD_TRACE;
21302 0         0 push @item, $_tok;
21303 0         0 $item{__ACTION1__}=$_tok;
21304              
21305              
21306              
21307 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
21308             Parse::RecDescent::_tracefirst($text),
21309             q{table_name},
21310             $tracelevel)
21311             if defined $::RD_TRACE;
21312 0         0 $_matched = 1;
21313 0         0 last;
21314             }
21315              
21316              
21317 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
21318             {
21319              
21320              
21321 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
21322 0 0       0 Parse::RecDescent::_trace(q{<>},
21323             Parse::RecDescent::_tracefirst($_[1]),
21324             q{table_name},
21325             $tracelevel)
21326             if defined $::RD_TRACE;
21327 0         0 return undef;
21328             }
21329 0 0 0     0 if (!defined($return) && defined($score))
21330             {
21331 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
21332             q{table_name},
21333             $tracelevel)
21334             if defined $::RD_TRACE;
21335 0         0 $return = $score_return;
21336             }
21337 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
21338 0 0       0 $return = $item[$#item] unless defined $return;
21339 0 0       0 if (defined $::RD_TRACE)
21340             {
21341 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
21342             $return . q{])}, "",
21343             q{table_name},
21344             $tracelevel);
21345 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
21346             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
21347             Parse::RecDescent::_tracefirst($text),
21348             , q{table_name},
21349             $tracelevel)
21350             }
21351 0         0 $_[1] = $text;
21352 0         0 return $return;
21353             }
21354              
21355             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
21356             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_53_of_rule_sysfun
21357             {
21358 0     0   0 my $thisparser = $_[0];
21359 1     1   7 use vars q{$tracelevel};
  1         4  
  1         810  
21360 0   0     0 local $tracelevel = ($tracelevel||0)+1;
21361 0         0 $ERRORS = 0;
21362 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_53_of_rule_sysfun"};
21363              
21364 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_53_of_rule_sysfun]},
21365             Parse::RecDescent::_tracefirst($_[1]),
21366             q{_alternation_1_of_production_53_of_rule_sysfun},
21367             $tracelevel)
21368             if defined $::RD_TRACE;
21369              
21370              
21371 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
21372              
21373 0         0 my $score;
21374             my $score_return;
21375 0         0 my $_tok;
21376 0         0 my $return = undef;
21377 0         0 my $_matched=0;
21378 0         0 my $commit=0;
21379 0         0 my @item = ();
21380 0         0 my %item = ();
21381 0   0     0 my $repeating = defined($_[2]) && $_[2];
21382 0   0     0 my $_noactions = defined($_[3]) && $_[3];
21383 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
21384 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
21385 0         0 my $text;
21386 0         0 my $lastsep="";
21387 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
21388 0         0 $expectation->at($_[1]);
21389              
21390 0         0 my $thisline;
21391 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
21392              
21393              
21394              
21395 0   0     0 while (!$_matched && !$commit)
21396             {
21397              
21398 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TRUNCATE/i]},
21399             Parse::RecDescent::_tracefirst($_[1]),
21400             q{_alternation_1_of_production_53_of_rule_sysfun},
21401             $tracelevel)
21402             if defined $::RD_TRACE;
21403 0         0 my $thisprod = $thisrule->{"prods"}[0];
21404 0         0 $text = $_[1];
21405 0         0 my $_savetext;
21406 0         0 @item = (q{_alternation_1_of_production_53_of_rule_sysfun});
21407 0         0 %item = (__RULE__ => q{_alternation_1_of_production_53_of_rule_sysfun});
21408 0         0 my $repcount = 0;
21409              
21410              
21411 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TRUNCATE/i]}, Parse::RecDescent::_tracefirst($text),
21412             q{_alternation_1_of_production_53_of_rule_sysfun},
21413             $tracelevel)
21414             if defined $::RD_TRACE;
21415 0         0 $lastsep = "";
21416 0         0 $expectation->is(q{})->at($text);
21417              
21418              
21419 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TRUNCATE)//i)
  0 0       0  
21420             {
21421              
21422 0         0 $expectation->failed();
21423 0 0       0 Parse::RecDescent::_trace(q{<>},
21424             Parse::RecDescent::_tracefirst($text))
21425             if defined $::RD_TRACE;
21426              
21427 0         0 last;
21428             }
21429 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21430             . $& . q{])},
21431             Parse::RecDescent::_tracefirst($text))
21432             if defined $::RD_TRACE;
21433 0         0 push @item, $item{__PATTERN1__}=$&;
21434              
21435              
21436              
21437 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TRUNCATE/i]<<},
21438             Parse::RecDescent::_tracefirst($text),
21439             q{_alternation_1_of_production_53_of_rule_sysfun},
21440             $tracelevel)
21441             if defined $::RD_TRACE;
21442 0         0 $_matched = 1;
21443 0         0 last;
21444             }
21445              
21446              
21447 0   0     0 while (!$_matched && !$commit)
21448             {
21449              
21450 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TRUNC/i]},
21451             Parse::RecDescent::_tracefirst($_[1]),
21452             q{_alternation_1_of_production_53_of_rule_sysfun},
21453             $tracelevel)
21454             if defined $::RD_TRACE;
21455 0         0 my $thisprod = $thisrule->{"prods"}[1];
21456 0         0 $text = $_[1];
21457 0         0 my $_savetext;
21458 0         0 @item = (q{_alternation_1_of_production_53_of_rule_sysfun});
21459 0         0 %item = (__RULE__ => q{_alternation_1_of_production_53_of_rule_sysfun});
21460 0         0 my $repcount = 0;
21461              
21462              
21463 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TRUNC/i]}, Parse::RecDescent::_tracefirst($text),
21464             q{_alternation_1_of_production_53_of_rule_sysfun},
21465             $tracelevel)
21466             if defined $::RD_TRACE;
21467 0         0 $lastsep = "";
21468 0         0 $expectation->is(q{})->at($text);
21469              
21470              
21471 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TRUNC)//i)
  0 0       0  
21472             {
21473              
21474 0         0 $expectation->failed();
21475 0 0       0 Parse::RecDescent::_trace(q{<>},
21476             Parse::RecDescent::_tracefirst($text))
21477             if defined $::RD_TRACE;
21478              
21479 0         0 last;
21480             }
21481 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21482             . $& . q{])},
21483             Parse::RecDescent::_tracefirst($text))
21484             if defined $::RD_TRACE;
21485 0         0 push @item, $item{__PATTERN1__}=$&;
21486              
21487              
21488              
21489 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TRUNC/i]<<},
21490             Parse::RecDescent::_tracefirst($text),
21491             q{_alternation_1_of_production_53_of_rule_sysfun},
21492             $tracelevel)
21493             if defined $::RD_TRACE;
21494 0         0 $_matched = 1;
21495 0         0 last;
21496             }
21497              
21498              
21499 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
21500             {
21501              
21502              
21503 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
21504 0 0       0 Parse::RecDescent::_trace(q{<>},
21505             Parse::RecDescent::_tracefirst($_[1]),
21506             q{_alternation_1_of_production_53_of_rule_sysfun},
21507             $tracelevel)
21508             if defined $::RD_TRACE;
21509 0         0 return undef;
21510             }
21511 0 0 0     0 if (!defined($return) && defined($score))
21512             {
21513 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
21514             q{_alternation_1_of_production_53_of_rule_sysfun},
21515             $tracelevel)
21516             if defined $::RD_TRACE;
21517 0         0 $return = $score_return;
21518             }
21519 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
21520 0 0       0 $return = $item[$#item] unless defined $return;
21521 0 0       0 if (defined $::RD_TRACE)
21522             {
21523 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
21524             $return . q{])}, "",
21525             q{_alternation_1_of_production_53_of_rule_sysfun},
21526             $tracelevel);
21527 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
21528             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
21529             Parse::RecDescent::_tracefirst($text),
21530             , q{_alternation_1_of_production_53_of_rule_sysfun},
21531             $tracelevel)
21532             }
21533 0         0 $_[1] = $text;
21534 0         0 return $return;
21535             }
21536              
21537             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
21538             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::options
21539             {
21540 0     0   0 my $thisparser = $_[0];
21541 1     1   9 use vars q{$tracelevel};
  1         2  
  1         360  
21542 0   0     0 local $tracelevel = ($tracelevel||0)+1;
21543 0         0 $ERRORS = 0;
21544 0         0 my $thisrule = $thisparser->{"rules"}{"options"};
21545              
21546 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [options]},
21547             Parse::RecDescent::_tracefirst($_[1]),
21548             q{options},
21549             $tracelevel)
21550             if defined $::RD_TRACE;
21551              
21552              
21553 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
21554              
21555 0         0 my $score;
21556             my $score_return;
21557 0         0 my $_tok;
21558 0         0 my $return = undef;
21559 0         0 my $_matched=0;
21560 0         0 my $commit=0;
21561 0         0 my @item = ();
21562 0         0 my %item = ();
21563 0   0     0 my $repeating = defined($_[2]) && $_[2];
21564 0   0     0 my $_noactions = defined($_[3]) && $_[3];
21565 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
21566 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
21567 0         0 my $text;
21568 0         0 my $lastsep="";
21569 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
21570 0         0 $expectation->at($_[1]);
21571              
21572 0         0 my $thisline;
21573 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
21574              
21575              
21576              
21577 0   0     0 while (!$_matched && !$commit)
21578             {
21579              
21580 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/WITH/i /CASCADED/i, or /LOCAL/i /CHECK\\s+OPTION/i]},
21581             Parse::RecDescent::_tracefirst($_[1]),
21582             q{options},
21583             $tracelevel)
21584             if defined $::RD_TRACE;
21585 0         0 my $thisprod = $thisrule->{"prods"}[0];
21586 0         0 $text = $_[1];
21587 0         0 my $_savetext;
21588 0         0 @item = (q{options});
21589 0         0 %item = (__RULE__ => q{options});
21590 0         0 my $repcount = 0;
21591              
21592              
21593 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/WITH/i]}, Parse::RecDescent::_tracefirst($text),
21594             q{options},
21595             $tracelevel)
21596             if defined $::RD_TRACE;
21597 0         0 $lastsep = "";
21598 0         0 $expectation->is(q{})->at($text);
21599              
21600              
21601 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:WITH)//i)
  0 0       0  
21602             {
21603              
21604 0         0 $expectation->failed();
21605 0 0       0 Parse::RecDescent::_trace(q{<>},
21606             Parse::RecDescent::_tracefirst($text))
21607             if defined $::RD_TRACE;
21608              
21609 0         0 last;
21610             }
21611 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21612             . $& . q{])},
21613             Parse::RecDescent::_tracefirst($text))
21614             if defined $::RD_TRACE;
21615 0         0 push @item, $item{__PATTERN1__}=$&;
21616              
21617              
21618 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_options]},
21619             Parse::RecDescent::_tracefirst($text),
21620             q{options},
21621             $tracelevel)
21622             if defined $::RD_TRACE;
21623 1     1   9 if (1) { no strict qw{refs};
  1         3  
  1         493  
  0         0  
21624 0         0 $expectation->is(q{/CASCADED/i, or /LOCAL/i})->at($text);
21625 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_options($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
21626             {
21627              
21628 0 0       0 Parse::RecDescent::_trace(q{<>},
21629             Parse::RecDescent::_tracefirst($text),
21630             q{options},
21631             $tracelevel)
21632             if defined $::RD_TRACE;
21633 0         0 $expectation->failed();
21634 0         0 last;
21635             }
21636 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_options]<< (return value: [}
21637             . $_tok . q{]},
21638              
21639             Parse::RecDescent::_tracefirst($text),
21640             q{options},
21641             $tracelevel)
21642             if defined $::RD_TRACE;
21643 0         0 $item{q{_alternation_1_of_production_1_of_rule_options}} = $_tok;
21644 0         0 push @item, $_tok;
21645              
21646             }
21647              
21648 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CHECK\\s+OPTION/i]}, Parse::RecDescent::_tracefirst($text),
21649             q{options},
21650             $tracelevel)
21651             if defined $::RD_TRACE;
21652 0         0 $lastsep = "";
21653 0         0 $expectation->is(q{/CHECK\\s+OPTION/i})->at($text);
21654              
21655              
21656 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CHECK\s+OPTION)//i)
  0 0       0  
21657             {
21658              
21659 0         0 $expectation->failed();
21660 0 0       0 Parse::RecDescent::_trace(q{<>},
21661             Parse::RecDescent::_tracefirst($text))
21662             if defined $::RD_TRACE;
21663              
21664 0         0 last;
21665             }
21666 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21667             . $& . q{])},
21668             Parse::RecDescent::_tracefirst($text))
21669             if defined $::RD_TRACE;
21670 0         0 push @item, $item{__PATTERN2__}=$&;
21671              
21672              
21673              
21674 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/WITH/i /CASCADED/i, or /LOCAL/i /CHECK\\s+OPTION/i]<<},
21675             Parse::RecDescent::_tracefirst($text),
21676             q{options},
21677             $tracelevel)
21678             if defined $::RD_TRACE;
21679 0         0 $_matched = 1;
21680 0         0 last;
21681             }
21682              
21683              
21684 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
21685             {
21686              
21687              
21688 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
21689 0 0       0 Parse::RecDescent::_trace(q{<>},
21690             Parse::RecDescent::_tracefirst($_[1]),
21691             q{options},
21692             $tracelevel)
21693             if defined $::RD_TRACE;
21694 0         0 return undef;
21695             }
21696 0 0 0     0 if (!defined($return) && defined($score))
21697             {
21698 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
21699             q{options},
21700             $tracelevel)
21701             if defined $::RD_TRACE;
21702 0         0 $return = $score_return;
21703             }
21704 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
21705 0 0       0 $return = $item[$#item] unless defined $return;
21706 0 0       0 if (defined $::RD_TRACE)
21707             {
21708 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
21709             $return . q{])}, "",
21710             q{options},
21711             $tracelevel);
21712 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
21713             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
21714             Parse::RecDescent::_tracefirst($text),
21715             , q{options},
21716             $tracelevel)
21717             }
21718 0         0 $_[1] = $text;
21719 0         0 return $return;
21720             }
21721              
21722             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
21723             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function
21724             {
21725 0     0   0 my $thisparser = $_[0];
21726 1     1   7 use vars q{$tracelevel};
  1         4  
  1         288  
21727 0   0     0 local $tracelevel = ($tracelevel||0)+1;
21728 0         0 $ERRORS = 0;
21729 0         0 my $thisrule = $thisparser->{"rules"}{"function"};
21730              
21731 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [function]},
21732             Parse::RecDescent::_tracefirst($_[1]),
21733             q{function},
21734             $tracelevel)
21735             if defined $::RD_TRACE;
21736              
21737              
21738 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
21739              
21740 0         0 my $score;
21741             my $score_return;
21742 0         0 my $_tok;
21743 0         0 my $return = undef;
21744 0         0 my $_matched=0;
21745 0         0 my $commit=0;
21746 0         0 my @item = ();
21747 0         0 my %item = ();
21748 0   0     0 my $repeating = defined($_[2]) && $_[2];
21749 0   0     0 my $_noactions = defined($_[3]) && $_[3];
21750 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
21751 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
21752 0         0 my $text;
21753 0         0 my $lastsep="";
21754 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
21755 0         0 $expectation->at($_[1]);
21756              
21757 0         0 my $thisline;
21758 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
21759              
21760              
21761              
21762 0   0     0 while (!$_matched && !$commit)
21763             {
21764              
21765 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SYSIBM\\.|/i, or /SYSFUN\\.|/i, or userdefined_function '(' ')']},
21766             Parse::RecDescent::_tracefirst($_[1]),
21767             q{function},
21768             $tracelevel)
21769             if defined $::RD_TRACE;
21770 0         0 my $thisprod = $thisrule->{"prods"}[0];
21771 0         0 $text = $_[1];
21772 0         0 my $_savetext;
21773 0         0 @item = (q{function});
21774 0         0 %item = (__RULE__ => q{function});
21775 0         0 my $repcount = 0;
21776              
21777              
21778 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_function]},
21779             Parse::RecDescent::_tracefirst($text),
21780             q{function},
21781             $tracelevel)
21782             if defined $::RD_TRACE;
21783 1     1   6 if (1) { no strict qw{refs};
  1         9  
  1         351  
  0         0  
21784 0         0 $expectation->is(q{})->at($text);
21785 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
21786             {
21787              
21788 0 0       0 Parse::RecDescent::_trace(q{<>},
21789             Parse::RecDescent::_tracefirst($text),
21790             q{function},
21791             $tracelevel)
21792             if defined $::RD_TRACE;
21793 0         0 $expectation->failed();
21794 0         0 last;
21795             }
21796 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_function]<< (return value: [}
21797             . $_tok . q{]},
21798              
21799             Parse::RecDescent::_tracefirst($text),
21800             q{function},
21801             $tracelevel)
21802             if defined $::RD_TRACE;
21803 0         0 $item{q{_alternation_1_of_production_1_of_rule_function}} = $_tok;
21804 0         0 push @item, $_tok;
21805              
21806             }
21807              
21808 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
21809             Parse::RecDescent::_tracefirst($text),
21810             q{function},
21811             $tracelevel)
21812             if defined $::RD_TRACE;
21813 0         0 $lastsep = "";
21814 0         0 $expectation->is(q{'('})->at($text);
21815              
21816              
21817 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
21818             {
21819              
21820 0         0 $expectation->failed();
21821 0 0       0 Parse::RecDescent::_trace(qq{<>},
21822             Parse::RecDescent::_tracefirst($text))
21823             if defined $::RD_TRACE;
21824 0         0 last;
21825             }
21826 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21827             . $& . q{])},
21828             Parse::RecDescent::_tracefirst($text))
21829             if defined $::RD_TRACE;
21830 0         0 push @item, $item{__STRING1__}=$&;
21831              
21832              
21833 0 0       0 Parse::RecDescent::_trace(q{Trying operator: []},
21834             Parse::RecDescent::_tracefirst($text),
21835             q{function},
21836             $tracelevel)
21837             if defined $::RD_TRACE;
21838 0         0 $expectation->is(q{})->at($text);
21839              
21840 0         0 $_tok = undef;
21841 0         0 OPLOOP: while (1)
21842             {
21843 0         0 $repcount = 0;
21844 0         0 my @item;
21845              
21846             # MATCH LEFTARG
21847              
21848 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [func_args]},
21849             Parse::RecDescent::_tracefirst($text),
21850             q{function},
21851             $tracelevel)
21852             if defined $::RD_TRACE;
21853 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         290  
  0         0  
21854 0         0 $expectation->is(q{func_args})->at($text);
21855 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
21856             {
21857              
21858 0 0       0 Parse::RecDescent::_trace(q{<>},
21859             Parse::RecDescent::_tracefirst($text),
21860             q{function},
21861             $tracelevel)
21862             if defined $::RD_TRACE;
21863 0         0 $expectation->failed();
21864 0         0 last;
21865             }
21866 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [func_args]<< (return value: [}
21867             . $_tok . q{]},
21868              
21869             Parse::RecDescent::_tracefirst($text),
21870             q{function},
21871             $tracelevel)
21872             if defined $::RD_TRACE;
21873 0         0 $item{q{func_args}} = $_tok;
21874 0         0 push @item, $_tok;
21875              
21876             }
21877              
21878              
21879 0         0 $repcount++;
21880              
21881 0         0 my $savetext = $text;
21882 0         0 my $backtrack;
21883              
21884             # MATCH (OP RIGHTARG)(s)
21885 0         0 while ($repcount < 100000000)
21886             {
21887 0         0 $backtrack = 0;
21888              
21889 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
21890             q{function},
21891             $tracelevel)
21892             if defined $::RD_TRACE;
21893 0         0 $lastsep = "";
21894 0         0 $expectation->is(q{/,/})->at($text);
21895              
21896              
21897 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//)
  0 0       0  
21898             {
21899              
21900 0         0 $expectation->failed();
21901 0 0       0 Parse::RecDescent::_trace(q{<>},
21902             Parse::RecDescent::_tracefirst($text))
21903             if defined $::RD_TRACE;
21904              
21905 0         0 last;
21906             }
21907 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21908             . $& . q{])},
21909             Parse::RecDescent::_tracefirst($text))
21910             if defined $::RD_TRACE;
21911 0         0 push @item, $item{__PATTERN1__}=$&;
21912              
21913              
21914 0         0 pop @item;
21915 0 0       0 if (defined $1) {push @item, $item{'func_args(s)'}=$1; $backtrack=1;}
  0         0  
  0         0  
21916              
21917 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [func_args]},
21918             Parse::RecDescent::_tracefirst($text),
21919             q{function},
21920             $tracelevel)
21921             if defined $::RD_TRACE;
21922 1     1   9 if (1) { no strict qw{refs};
  1         1  
  1         653  
  0         0  
21923 0         0 $expectation->is(q{func_args})->at($text);
21924 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
21925             {
21926              
21927 0 0       0 Parse::RecDescent::_trace(q{<>},
21928             Parse::RecDescent::_tracefirst($text),
21929             q{function},
21930             $tracelevel)
21931             if defined $::RD_TRACE;
21932 0         0 $expectation->failed();
21933 0         0 last;
21934             }
21935 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [func_args]<< (return value: [}
21936             . $_tok . q{]},
21937              
21938             Parse::RecDescent::_tracefirst($text),
21939             q{function},
21940             $tracelevel)
21941             if defined $::RD_TRACE;
21942 0         0 $item{q{func_args}} = $_tok;
21943 0         0 push @item, $_tok;
21944              
21945             }
21946              
21947 0         0 $savetext = $text;
21948 0         0 $repcount++;
21949             }
21950 0         0 $text = $savetext;
21951 0 0       0 pop @item if $backtrack;
21952              
21953 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
21954 0         0 $_tok = [ @item ];
21955 0         0 last;
21956             }
21957              
21958 0 0       0 unless ($repcount>=1)
21959             {
21960 0 0       0 Parse::RecDescent::_trace(q{<]>>},
21961             Parse::RecDescent::_tracefirst($text),
21962             q{function},
21963             $tracelevel)
21964             if defined $::RD_TRACE;
21965 0         0 $expectation->failed();
21966 0         0 last;
21967             }
21968 0 0       0 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
21969 0 0       0 . qq{@{$_tok||[]}} . q{]},
21970             Parse::RecDescent::_tracefirst($text),
21971             q{function},
21972             $tracelevel)
21973             if defined $::RD_TRACE;
21974              
21975 0   0     0 push @item, $item{'func_args(s)'}=$_tok||[];
21976              
21977              
21978 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
21979             Parse::RecDescent::_tracefirst($text),
21980             q{function},
21981             $tracelevel)
21982             if defined $::RD_TRACE;
21983 0         0 $lastsep = "";
21984 0         0 $expectation->is(q{')'})->at($text);
21985              
21986              
21987 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
21988             {
21989              
21990 0         0 $expectation->failed();
21991 0 0       0 Parse::RecDescent::_trace(qq{<>},
21992             Parse::RecDescent::_tracefirst($text))
21993             if defined $::RD_TRACE;
21994 0         0 last;
21995             }
21996 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21997             . $& . q{])},
21998             Parse::RecDescent::_tracefirst($text))
21999             if defined $::RD_TRACE;
22000 0         0 push @item, $item{__STRING2__}=$&;
22001              
22002              
22003              
22004 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SYSIBM\\.|/i, or /SYSFUN\\.|/i, or userdefined_function '(' ')']<<},
22005             Parse::RecDescent::_tracefirst($text),
22006             q{function},
22007             $tracelevel)
22008             if defined $::RD_TRACE;
22009 0         0 $_matched = 1;
22010 0         0 last;
22011             }
22012              
22013              
22014 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
22015             {
22016              
22017              
22018 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
22019 0 0       0 Parse::RecDescent::_trace(q{<>},
22020             Parse::RecDescent::_tracefirst($_[1]),
22021             q{function},
22022             $tracelevel)
22023             if defined $::RD_TRACE;
22024 0         0 return undef;
22025             }
22026 0 0 0     0 if (!defined($return) && defined($score))
22027             {
22028 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
22029             q{function},
22030             $tracelevel)
22031             if defined $::RD_TRACE;
22032 0         0 $return = $score_return;
22033             }
22034 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
22035 0 0       0 $return = $item[$#item] unless defined $return;
22036 0 0       0 if (defined $::RD_TRACE)
22037             {
22038 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
22039             $return . q{])}, "",
22040             q{function},
22041             $tracelevel);
22042 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
22043             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
22044             Parse::RecDescent::_tracefirst($text),
22045             , q{function},
22046             $tracelevel)
22047             }
22048 0         0 $_[1] = $text;
22049 0         0 return $return;
22050             }
22051              
22052             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
22053             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_41_of_rule_sysibm_function
22054             {
22055 0     0   0 my $thisparser = $_[0];
22056 1     1   9 use vars q{$tracelevel};
  1         2  
  1         801  
22057 0   0     0 local $tracelevel = ($tracelevel||0)+1;
22058 0         0 $ERRORS = 0;
22059 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_41_of_rule_sysibm_function"};
22060              
22061 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_41_of_rule_sysibm_function]},
22062             Parse::RecDescent::_tracefirst($_[1]),
22063             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22064             $tracelevel)
22065             if defined $::RD_TRACE;
22066              
22067              
22068 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
22069              
22070 0         0 my $score;
22071             my $score_return;
22072 0         0 my $_tok;
22073 0         0 my $return = undef;
22074 0         0 my $_matched=0;
22075 0         0 my $commit=0;
22076 0         0 my @item = ();
22077 0         0 my %item = ();
22078 0   0     0 my $repeating = defined($_[2]) && $_[2];
22079 0   0     0 my $_noactions = defined($_[3]) && $_[3];
22080 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
22081 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
22082 0         0 my $text;
22083 0         0 my $lastsep="";
22084 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
22085 0         0 $expectation->at($_[1]);
22086              
22087 0         0 my $thisline;
22088 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
22089              
22090              
22091              
22092 0   0     0 while (!$_matched && !$commit)
22093             {
22094              
22095 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/INTEGER/i]},
22096             Parse::RecDescent::_tracefirst($_[1]),
22097             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22098             $tracelevel)
22099             if defined $::RD_TRACE;
22100 0         0 my $thisprod = $thisrule->{"prods"}[0];
22101 0         0 $text = $_[1];
22102 0         0 my $_savetext;
22103 0         0 @item = (q{_alternation_1_of_production_41_of_rule_sysibm_function});
22104 0         0 %item = (__RULE__ => q{_alternation_1_of_production_41_of_rule_sysibm_function});
22105 0         0 my $repcount = 0;
22106              
22107              
22108 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/INTEGER/i]}, Parse::RecDescent::_tracefirst($text),
22109             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22110             $tracelevel)
22111             if defined $::RD_TRACE;
22112 0         0 $lastsep = "";
22113 0         0 $expectation->is(q{})->at($text);
22114              
22115              
22116 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:INTEGER)//i)
  0 0       0  
22117             {
22118              
22119 0         0 $expectation->failed();
22120 0 0       0 Parse::RecDescent::_trace(q{<>},
22121             Parse::RecDescent::_tracefirst($text))
22122             if defined $::RD_TRACE;
22123              
22124 0         0 last;
22125             }
22126 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22127             . $& . q{])},
22128             Parse::RecDescent::_tracefirst($text))
22129             if defined $::RD_TRACE;
22130 0         0 push @item, $item{__PATTERN1__}=$&;
22131              
22132              
22133              
22134 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/INTEGER/i]<<},
22135             Parse::RecDescent::_tracefirst($text),
22136             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22137             $tracelevel)
22138             if defined $::RD_TRACE;
22139 0         0 $_matched = 1;
22140 0         0 last;
22141             }
22142              
22143              
22144 0   0     0 while (!$_matched && !$commit)
22145             {
22146              
22147 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/INT/]},
22148             Parse::RecDescent::_tracefirst($_[1]),
22149             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22150             $tracelevel)
22151             if defined $::RD_TRACE;
22152 0         0 my $thisprod = $thisrule->{"prods"}[1];
22153 0         0 $text = $_[1];
22154 0         0 my $_savetext;
22155 0         0 @item = (q{_alternation_1_of_production_41_of_rule_sysibm_function});
22156 0         0 %item = (__RULE__ => q{_alternation_1_of_production_41_of_rule_sysibm_function});
22157 0         0 my $repcount = 0;
22158              
22159              
22160 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/INT/]}, Parse::RecDescent::_tracefirst($text),
22161             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22162             $tracelevel)
22163             if defined $::RD_TRACE;
22164 0         0 $lastsep = "";
22165 0         0 $expectation->is(q{})->at($text);
22166              
22167              
22168 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:INT)//)
  0 0       0  
22169             {
22170              
22171 0         0 $expectation->failed();
22172 0 0       0 Parse::RecDescent::_trace(q{<>},
22173             Parse::RecDescent::_tracefirst($text))
22174             if defined $::RD_TRACE;
22175              
22176 0         0 last;
22177             }
22178 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22179             . $& . q{])},
22180             Parse::RecDescent::_tracefirst($text))
22181             if defined $::RD_TRACE;
22182 0         0 push @item, $item{__PATTERN1__}=$&;
22183              
22184              
22185              
22186 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/INT/]<<},
22187             Parse::RecDescent::_tracefirst($text),
22188             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22189             $tracelevel)
22190             if defined $::RD_TRACE;
22191 0         0 $_matched = 1;
22192 0         0 last;
22193             }
22194              
22195              
22196 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
22197             {
22198              
22199              
22200 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
22201 0 0       0 Parse::RecDescent::_trace(q{<>},
22202             Parse::RecDescent::_tracefirst($_[1]),
22203             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22204             $tracelevel)
22205             if defined $::RD_TRACE;
22206 0         0 return undef;
22207             }
22208 0 0 0     0 if (!defined($return) && defined($score))
22209             {
22210 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
22211             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22212             $tracelevel)
22213             if defined $::RD_TRACE;
22214 0         0 $return = $score_return;
22215             }
22216 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
22217 0 0       0 $return = $item[$#item] unless defined $return;
22218 0 0       0 if (defined $::RD_TRACE)
22219             {
22220 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
22221             $return . q{])}, "",
22222             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22223             $tracelevel);
22224 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
22225             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
22226             Parse::RecDescent::_tracefirst($text),
22227             , q{_alternation_1_of_production_41_of_rule_sysibm_function},
22228             $tracelevel)
22229             }
22230 0         0 $_[1] = $text;
22231 0         0 return $return;
22232             }
22233              
22234             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
22235             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_case_expression
22236             {
22237 0     0   0 my $thisparser = $_[0];
22238 1     1   8 use vars q{$tracelevel};
  1         2  
  1         292  
22239 0   0     0 local $tracelevel = ($tracelevel||0)+1;
22240 0         0 $ERRORS = 0;
22241 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_case_expression"};
22242              
22243 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_case_expression]},
22244             Parse::RecDescent::_tracefirst($_[1]),
22245             q{_alternation_1_of_production_1_of_rule_case_expression},
22246             $tracelevel)
22247             if defined $::RD_TRACE;
22248              
22249              
22250 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
22251              
22252 0         0 my $score;
22253             my $score_return;
22254 0         0 my $_tok;
22255 0         0 my $return = undef;
22256 0         0 my $_matched=0;
22257 0         0 my $commit=0;
22258 0         0 my @item = ();
22259 0         0 my %item = ();
22260 0   0     0 my $repeating = defined($_[2]) && $_[2];
22261 0   0     0 my $_noactions = defined($_[3]) && $_[3];
22262 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
22263 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
22264 0         0 my $text;
22265 0         0 my $lastsep="";
22266 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
22267 0         0 $expectation->at($_[1]);
22268              
22269 0         0 my $thisline;
22270 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
22271              
22272              
22273              
22274 0   0     0 while (!$_matched && !$commit)
22275             {
22276              
22277 0 0       0 Parse::RecDescent::_trace(q{Trying production: [searched_when_clause]},
22278             Parse::RecDescent::_tracefirst($_[1]),
22279             q{_alternation_1_of_production_1_of_rule_case_expression},
22280             $tracelevel)
22281             if defined $::RD_TRACE;
22282 0         0 my $thisprod = $thisrule->{"prods"}[0];
22283 0         0 $text = $_[1];
22284 0         0 my $_savetext;
22285 0         0 @item = (q{_alternation_1_of_production_1_of_rule_case_expression});
22286 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_case_expression});
22287 0         0 my $repcount = 0;
22288              
22289              
22290 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [searched_when_clause]},
22291             Parse::RecDescent::_tracefirst($text),
22292             q{_alternation_1_of_production_1_of_rule_case_expression},
22293             $tracelevel)
22294             if defined $::RD_TRACE;
22295 1     1   10 if (1) { no strict qw{refs};
  1         3  
  1         226  
  0         0  
22296 0         0 $expectation->is(q{})->at($text);
22297 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::searched_when_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
22298             {
22299              
22300 0 0       0 Parse::RecDescent::_trace(q{<>},
22301             Parse::RecDescent::_tracefirst($text),
22302             q{_alternation_1_of_production_1_of_rule_case_expression},
22303             $tracelevel)
22304             if defined $::RD_TRACE;
22305 0         0 $expectation->failed();
22306 0         0 last;
22307             }
22308 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [searched_when_clause]<< (return value: [}
22309             . $_tok . q{]},
22310              
22311             Parse::RecDescent::_tracefirst($text),
22312             q{_alternation_1_of_production_1_of_rule_case_expression},
22313             $tracelevel)
22314             if defined $::RD_TRACE;
22315 0         0 $item{q{searched_when_clause}} = $_tok;
22316 0         0 push @item, $_tok;
22317              
22318             }
22319              
22320              
22321 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [searched_when_clause]<<},
22322             Parse::RecDescent::_tracefirst($text),
22323             q{_alternation_1_of_production_1_of_rule_case_expression},
22324             $tracelevel)
22325             if defined $::RD_TRACE;
22326 0         0 $_matched = 1;
22327 0         0 last;
22328             }
22329              
22330              
22331 0   0     0 while (!$_matched && !$commit)
22332             {
22333              
22334 0 0       0 Parse::RecDescent::_trace(q{Trying production: [simple_when_clause]},
22335             Parse::RecDescent::_tracefirst($_[1]),
22336             q{_alternation_1_of_production_1_of_rule_case_expression},
22337             $tracelevel)
22338             if defined $::RD_TRACE;
22339 0         0 my $thisprod = $thisrule->{"prods"}[1];
22340 0         0 $text = $_[1];
22341 0         0 my $_savetext;
22342 0         0 @item = (q{_alternation_1_of_production_1_of_rule_case_expression});
22343 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_case_expression});
22344 0         0 my $repcount = 0;
22345              
22346              
22347 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [simple_when_clause]},
22348             Parse::RecDescent::_tracefirst($text),
22349             q{_alternation_1_of_production_1_of_rule_case_expression},
22350             $tracelevel)
22351             if defined $::RD_TRACE;
22352 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         370  
  0         0  
22353 0         0 $expectation->is(q{})->at($text);
22354 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::simple_when_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
22355             {
22356              
22357 0 0       0 Parse::RecDescent::_trace(q{<>},
22358             Parse::RecDescent::_tracefirst($text),
22359             q{_alternation_1_of_production_1_of_rule_case_expression},
22360             $tracelevel)
22361             if defined $::RD_TRACE;
22362 0         0 $expectation->failed();
22363 0         0 last;
22364             }
22365 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [simple_when_clause]<< (return value: [}
22366             . $_tok . q{]},
22367              
22368             Parse::RecDescent::_tracefirst($text),
22369             q{_alternation_1_of_production_1_of_rule_case_expression},
22370             $tracelevel)
22371             if defined $::RD_TRACE;
22372 0         0 $item{q{simple_when_clause}} = $_tok;
22373 0         0 push @item, $_tok;
22374              
22375             }
22376              
22377              
22378 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [simple_when_clause]<<},
22379             Parse::RecDescent::_tracefirst($text),
22380             q{_alternation_1_of_production_1_of_rule_case_expression},
22381             $tracelevel)
22382             if defined $::RD_TRACE;
22383 0         0 $_matched = 1;
22384 0         0 last;
22385             }
22386              
22387              
22388 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
22389             {
22390              
22391              
22392 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
22393 0 0       0 Parse::RecDescent::_trace(q{<>},
22394             Parse::RecDescent::_tracefirst($_[1]),
22395             q{_alternation_1_of_production_1_of_rule_case_expression},
22396             $tracelevel)
22397             if defined $::RD_TRACE;
22398 0         0 return undef;
22399             }
22400 0 0 0     0 if (!defined($return) && defined($score))
22401             {
22402 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
22403             q{_alternation_1_of_production_1_of_rule_case_expression},
22404             $tracelevel)
22405             if defined $::RD_TRACE;
22406 0         0 $return = $score_return;
22407             }
22408 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
22409 0 0       0 $return = $item[$#item] unless defined $return;
22410 0 0       0 if (defined $::RD_TRACE)
22411             {
22412 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
22413             $return . q{])}, "",
22414             q{_alternation_1_of_production_1_of_rule_case_expression},
22415             $tracelevel);
22416 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
22417             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
22418             Parse::RecDescent::_tracefirst($text),
22419             , q{_alternation_1_of_production_1_of_rule_case_expression},
22420             $tracelevel)
22421             }
22422 0         0 $_[1] = $text;
22423 0         0 return $return;
22424             }
22425              
22426             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
22427             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_order_clause
22428             {
22429 0     0   0 my $thisparser = $_[0];
22430 1     1   8 use vars q{$tracelevel};
  1         2  
  1         266  
22431 0   0     0 local $tracelevel = ($tracelevel||0)+1;
22432 0         0 $ERRORS = 0;
22433 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_window_order_clause"};
22434              
22435 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
22436             Parse::RecDescent::_tracefirst($_[1]),
22437             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22438             $tracelevel)
22439             if defined $::RD_TRACE;
22440              
22441              
22442 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
22443              
22444 0         0 my $score;
22445             my $score_return;
22446 0         0 my $_tok;
22447 0         0 my $return = undef;
22448 0         0 my $_matched=0;
22449 0         0 my $commit=0;
22450 0         0 my @item = ();
22451 0         0 my %item = ();
22452 0   0     0 my $repeating = defined($_[2]) && $_[2];
22453 0   0     0 my $_noactions = defined($_[3]) && $_[3];
22454 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
22455 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
22456 0         0 my $text;
22457 0         0 my $lastsep="";
22458 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
22459 0         0 $expectation->at($_[1]);
22460              
22461 0         0 my $thisline;
22462 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
22463              
22464              
22465              
22466 0   0     0 while (!$_matched && !$commit)
22467             {
22468              
22469 0 0       0 Parse::RecDescent::_trace(q{Trying production: [sort_key_expression asc_option, or desc_option]},
22470             Parse::RecDescent::_tracefirst($_[1]),
22471             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22472             $tracelevel)
22473             if defined $::RD_TRACE;
22474 0         0 my $thisprod = $thisrule->{"prods"}[0];
22475 0         0 $text = $_[1];
22476 0         0 my $_savetext;
22477 0         0 @item = (q{_alternation_1_of_production_1_of_rule_window_order_clause});
22478 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_order_clause});
22479 0         0 my $repcount = 0;
22480              
22481              
22482 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [sort_key_expression]},
22483             Parse::RecDescent::_tracefirst($text),
22484             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22485             $tracelevel)
22486             if defined $::RD_TRACE;
22487 1     1   7 if (1) { no strict qw{refs};
  1         9  
  1         477  
  0         0  
22488 0         0 $expectation->is(q{})->at($text);
22489 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sort_key_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
22490             {
22491              
22492 0 0       0 Parse::RecDescent::_trace(q{<>},
22493             Parse::RecDescent::_tracefirst($text),
22494             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22495             $tracelevel)
22496             if defined $::RD_TRACE;
22497 0         0 $expectation->failed();
22498 0         0 last;
22499             }
22500 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [sort_key_expression]<< (return value: [}
22501             . $_tok . q{]},
22502              
22503             Parse::RecDescent::_tracefirst($text),
22504             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22505             $tracelevel)
22506             if defined $::RD_TRACE;
22507 0         0 $item{q{sort_key_expression}} = $_tok;
22508 0         0 push @item, $_tok;
22509              
22510             }
22511              
22512 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [asc_option, or desc_option]},
22513             Parse::RecDescent::_tracefirst($text),
22514             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22515             $tracelevel)
22516             if defined $::RD_TRACE;
22517 0         0 $expectation->is(q{asc_option, or desc_option})->at($text);
22518              
22519 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause, 0, 1, $_noactions,$expectation,undef)))
22520             {
22521 0 0       0 Parse::RecDescent::_trace(q{<>},
22522             Parse::RecDescent::_tracefirst($text),
22523             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22524             $tracelevel)
22525             if defined $::RD_TRACE;
22526 0         0 last;
22527             }
22528 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause]<< (}
22529             . @$_tok . q{ times)},
22530              
22531             Parse::RecDescent::_tracefirst($text),
22532             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22533             $tracelevel)
22534             if defined $::RD_TRACE;
22535 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause(?)}} = $_tok;
22536 0         0 push @item, $_tok;
22537              
22538              
22539              
22540              
22541 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [sort_key_expression asc_option, or desc_option]<<},
22542             Parse::RecDescent::_tracefirst($text),
22543             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22544             $tracelevel)
22545             if defined $::RD_TRACE;
22546 0         0 $_matched = 1;
22547 0         0 last;
22548             }
22549              
22550              
22551 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
22552             {
22553              
22554              
22555 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
22556 0 0       0 Parse::RecDescent::_trace(q{<>},
22557             Parse::RecDescent::_tracefirst($_[1]),
22558             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22559             $tracelevel)
22560             if defined $::RD_TRACE;
22561 0         0 return undef;
22562             }
22563 0 0 0     0 if (!defined($return) && defined($score))
22564             {
22565 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
22566             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22567             $tracelevel)
22568             if defined $::RD_TRACE;
22569 0         0 $return = $score_return;
22570             }
22571 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
22572 0 0       0 $return = $item[$#item] unless defined $return;
22573 0 0       0 if (defined $::RD_TRACE)
22574             {
22575 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
22576             $return . q{])}, "",
22577             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22578             $tracelevel);
22579 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
22580             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
22581             Parse::RecDescent::_tracefirst($text),
22582             , q{_alternation_1_of_production_1_of_rule_window_order_clause},
22583             $tracelevel)
22584             }
22585 0         0 $_[1] = $text;
22586 0         0 return $return;
22587             }
22588              
22589             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
22590             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::create
22591             {
22592 1     1   3 my $thisparser = $_[0];
22593 1     1   9 use vars q{$tracelevel};
  1         2  
  1         320  
22594 1   50     3 local $tracelevel = ($tracelevel||0)+1;
22595 1         2 $ERRORS = 0;
22596 1         3 my $thisrule = $thisparser->{"rules"}{"create"};
22597              
22598 1 50       10 Parse::RecDescent::_trace(q{Trying rule: [create]},
22599             Parse::RecDescent::_tracefirst($_[1]),
22600             q{create},
22601             $tracelevel)
22602             if defined $::RD_TRACE;
22603              
22604              
22605 1         3 my $err_at = @{$thisparser->{errors}};
  1         3  
22606              
22607 1         5 my $score;
22608             my $score_return;
22609 1         0 my $_tok;
22610 1         2 my $return = undef;
22611 1         1 my $_matched=0;
22612 1         4 my $commit=0;
22613 1         2 my @item = ();
22614 1         2 my %item = ();
22615 1   33     5 my $repeating = defined($_[2]) && $_[2];
22616 1   33     5 my $_noactions = defined($_[3]) && $_[3];
22617 1 50       3 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  1         3  
  1         2  
22618 1 50       4 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
22619 1         3 my $text;
22620 1         2 my $lastsep="";
22621 1         3 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
22622 1         63 $expectation->at($_[1]);
22623              
22624 1         4 my $thisline;
22625 1         4 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
22626              
22627              
22628              
22629 1   33     9 while (!$_matched && !$commit)
22630             {
22631              
22632 1 50       4 Parse::RecDescent::_trace(q{Trying production: [CREATE TRIGGER trigger_name before type /ON/i table_name reference_b /FOR EACH ROW/i 'MODE DB2SQL' triggered_action]},
22633             Parse::RecDescent::_tracefirst($_[1]),
22634             q{create},
22635             $tracelevel)
22636             if defined $::RD_TRACE;
22637 1         8 my $thisprod = $thisrule->{"prods"}[0];
22638 1         3 $text = $_[1];
22639 1         2 my $_savetext;
22640 1         3 @item = (q{create});
22641 1         3 %item = (__RULE__ => q{create});
22642 1         2 my $repcount = 0;
22643              
22644              
22645 1 50       4 Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
22646             Parse::RecDescent::_tracefirst($text),
22647             q{create},
22648             $tracelevel)
22649             if defined $::RD_TRACE;
22650 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         145  
  1         2  
22651 1         3 $expectation->is(q{})->at($text);
22652 1 50   1   13 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  1         3  
22653             {
22654              
22655 1 50       3 Parse::RecDescent::_trace(q{<>},
22656             Parse::RecDescent::_tracefirst($text),
22657             q{create},
22658             $tracelevel)
22659             if defined $::RD_TRACE;
22660 1         4 $expectation->failed();
22661 1         4 last;
22662             }
22663 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
22664             . $_tok . q{]},
22665              
22666             Parse::RecDescent::_tracefirst($text),
22667             q{create},
22668             $tracelevel)
22669             if defined $::RD_TRACE;
22670 0         0 $item{q{CREATE}} = $_tok;
22671 0         0 push @item, $_tok;
22672              
22673             }
22674              
22675 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [TRIGGER]},
22676             Parse::RecDescent::_tracefirst($text),
22677             q{create},
22678             $tracelevel)
22679             if defined $::RD_TRACE;
22680 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         159  
  0         0  
22681 0         0 $expectation->is(q{TRIGGER})->at($text);
22682 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::TRIGGER($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
22683             {
22684              
22685 0 0       0 Parse::RecDescent::_trace(q{<>},
22686             Parse::RecDescent::_tracefirst($text),
22687             q{create},
22688             $tracelevel)
22689             if defined $::RD_TRACE;
22690 0         0 $expectation->failed();
22691 0         0 last;
22692             }
22693 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [TRIGGER]<< (return value: [}
22694             . $_tok . q{]},
22695              
22696             Parse::RecDescent::_tracefirst($text),
22697             q{create},
22698             $tracelevel)
22699             if defined $::RD_TRACE;
22700 0         0 $item{q{TRIGGER}} = $_tok;
22701 0         0 push @item, $_tok;
22702              
22703             }
22704              
22705 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [trigger_name]},
22706             Parse::RecDescent::_tracefirst($text),
22707             q{create},
22708             $tracelevel)
22709             if defined $::RD_TRACE;
22710 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         151  
  0         0  
22711 0         0 $expectation->is(q{trigger_name})->at($text);
22712 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::trigger_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
22713             {
22714              
22715 0 0       0 Parse::RecDescent::_trace(q{<>},
22716             Parse::RecDescent::_tracefirst($text),
22717             q{create},
22718             $tracelevel)
22719             if defined $::RD_TRACE;
22720 0         0 $expectation->failed();
22721 0         0 last;
22722             }
22723 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [trigger_name]<< (return value: [}
22724             . $_tok . q{]},
22725              
22726             Parse::RecDescent::_tracefirst($text),
22727             q{create},
22728             $tracelevel)
22729             if defined $::RD_TRACE;
22730 0         0 $item{q{trigger_name}} = $_tok;
22731 0         0 push @item, $_tok;
22732              
22733             }
22734              
22735 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [before]},
22736             Parse::RecDescent::_tracefirst($text),
22737             q{create},
22738             $tracelevel)
22739             if defined $::RD_TRACE;
22740 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         152  
  0         0  
22741 0         0 $expectation->is(q{before})->at($text);
22742 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::before($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
22743             {
22744              
22745 0 0       0 Parse::RecDescent::_trace(q{<>},
22746             Parse::RecDescent::_tracefirst($text),
22747             q{create},
22748             $tracelevel)
22749             if defined $::RD_TRACE;
22750 0         0 $expectation->failed();
22751 0         0 last;
22752             }
22753 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [before]<< (return value: [}
22754             . $_tok . q{]},
22755              
22756             Parse::RecDescent::_tracefirst($text),
22757             q{create},
22758             $tracelevel)
22759             if defined $::RD_TRACE;
22760 0         0 $item{q{before}} = $_tok;
22761 0         0 push @item, $_tok;
22762              
22763             }
22764              
22765 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [type]},
22766             Parse::RecDescent::_tracefirst($text),
22767             q{create},
22768             $tracelevel)
22769             if defined $::RD_TRACE;
22770 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         266  
  0         0  
22771 0         0 $expectation->is(q{type})->at($text);
22772 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
22773             {
22774              
22775 0 0       0 Parse::RecDescent::_trace(q{<>},
22776             Parse::RecDescent::_tracefirst($text),
22777             q{create},
22778             $tracelevel)
22779             if defined $::RD_TRACE;
22780 0         0 $expectation->failed();
22781 0         0 last;
22782             }
22783 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [type]<< (return value: [}
22784             . $_tok . q{]},
22785              
22786             Parse::RecDescent::_tracefirst($text),
22787             q{create},
22788             $tracelevel)
22789             if defined $::RD_TRACE;
22790 0         0 $item{q{type}} = $_tok;
22791 0         0 push @item, $_tok;
22792              
22793             }
22794              
22795 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ON/i]}, Parse::RecDescent::_tracefirst($text),
22796             q{create},
22797             $tracelevel)
22798             if defined $::RD_TRACE;
22799 0         0 $lastsep = "";
22800 0         0 $expectation->is(q{/ON/i})->at($text);
22801              
22802              
22803 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ON)//i)
  0 0       0  
22804             {
22805              
22806 0         0 $expectation->failed();
22807 0 0       0 Parse::RecDescent::_trace(q{<>},
22808             Parse::RecDescent::_tracefirst($text))
22809             if defined $::RD_TRACE;
22810              
22811 0         0 last;
22812             }
22813 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22814             . $& . q{])},
22815             Parse::RecDescent::_tracefirst($text))
22816             if defined $::RD_TRACE;
22817 0         0 push @item, $item{__PATTERN1__}=$&;
22818              
22819              
22820 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
22821             Parse::RecDescent::_tracefirst($text),
22822             q{create},
22823             $tracelevel)
22824             if defined $::RD_TRACE;
22825 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         441  
  0         0  
22826 0         0 $expectation->is(q{table_name})->at($text);
22827 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
22828             {
22829              
22830 0 0       0 Parse::RecDescent::_trace(q{<>},
22831             Parse::RecDescent::_tracefirst($text),
22832             q{create},
22833             $tracelevel)
22834             if defined $::RD_TRACE;
22835 0         0 $expectation->failed();
22836 0         0 last;
22837             }
22838 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
22839             . $_tok . q{]},
22840              
22841             Parse::RecDescent::_tracefirst($text),
22842             q{create},
22843             $tracelevel)
22844             if defined $::RD_TRACE;
22845 0         0 $item{q{table_name}} = $_tok;
22846 0         0 push @item, $_tok;
22847              
22848             }
22849              
22850 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [reference_b]},
22851             Parse::RecDescent::_tracefirst($text),
22852             q{create},
22853             $tracelevel)
22854             if defined $::RD_TRACE;
22855 0         0 $expectation->is(q{reference_b})->at($text);
22856              
22857 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_b, 0, 1, $_noactions,$expectation,undef)))
22858             {
22859 0 0       0 Parse::RecDescent::_trace(q{<>},
22860             Parse::RecDescent::_tracefirst($text),
22861             q{create},
22862             $tracelevel)
22863             if defined $::RD_TRACE;
22864 0         0 last;
22865             }
22866 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [reference_b]<< (}
22867             . @$_tok . q{ times)},
22868              
22869             Parse::RecDescent::_tracefirst($text),
22870             q{create},
22871             $tracelevel)
22872             if defined $::RD_TRACE;
22873 0         0 $item{q{reference_b(?)}} = $_tok;
22874 0         0 push @item, $_tok;
22875              
22876              
22877              
22878 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/FOR EACH ROW/i]}, Parse::RecDescent::_tracefirst($text),
22879             q{create},
22880             $tracelevel)
22881             if defined $::RD_TRACE;
22882 0         0 $lastsep = "";
22883 0         0 $expectation->is(q{/FOR EACH ROW/i})->at($text);
22884              
22885              
22886 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:FOR EACH ROW)//i)
  0 0       0  
22887             {
22888              
22889 0         0 $expectation->failed();
22890 0 0       0 Parse::RecDescent::_trace(q{<>},
22891             Parse::RecDescent::_tracefirst($text))
22892             if defined $::RD_TRACE;
22893              
22894 0         0 last;
22895             }
22896 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22897             . $& . q{])},
22898             Parse::RecDescent::_tracefirst($text))
22899             if defined $::RD_TRACE;
22900 0         0 push @item, $item{__PATTERN2__}=$&;
22901              
22902              
22903 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['MODE DB2SQL']},
22904             Parse::RecDescent::_tracefirst($text),
22905             q{create},
22906             $tracelevel)
22907             if defined $::RD_TRACE;
22908 0         0 $lastsep = "";
22909 0         0 $expectation->is(q{'MODE DB2SQL'})->at($text);
22910              
22911              
22912 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\AMODE\ DB2SQL//)
  0 0       0  
22913             {
22914              
22915 0         0 $expectation->failed();
22916 0 0       0 Parse::RecDescent::_trace(qq{<>},
22917             Parse::RecDescent::_tracefirst($text))
22918             if defined $::RD_TRACE;
22919 0         0 last;
22920             }
22921 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22922             . $& . q{])},
22923             Parse::RecDescent::_tracefirst($text))
22924             if defined $::RD_TRACE;
22925 0         0 push @item, $item{__STRING1__}=$&;
22926              
22927              
22928 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [triggered_action]},
22929             Parse::RecDescent::_tracefirst($text),
22930             q{create},
22931             $tracelevel)
22932             if defined $::RD_TRACE;
22933 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         377  
  0         0  
22934 0         0 $expectation->is(q{triggered_action})->at($text);
22935 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
22936             {
22937              
22938 0 0       0 Parse::RecDescent::_trace(q{<>},
22939             Parse::RecDescent::_tracefirst($text),
22940             q{create},
22941             $tracelevel)
22942             if defined $::RD_TRACE;
22943 0         0 $expectation->failed();
22944 0         0 last;
22945             }
22946 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [triggered_action]<< (return value: [}
22947             . $_tok . q{]},
22948              
22949             Parse::RecDescent::_tracefirst($text),
22950             q{create},
22951             $tracelevel)
22952             if defined $::RD_TRACE;
22953 0         0 $item{q{triggered_action}} = $_tok;
22954 0         0 push @item, $_tok;
22955              
22956             }
22957              
22958 0 0       0 Parse::RecDescent::_trace(q{Trying action},
22959             Parse::RecDescent::_tracefirst($text),
22960             q{create},
22961             $tracelevel)
22962             if defined $::RD_TRACE;
22963              
22964              
22965 0 0       0 $_tok = ($_noactions) ? 0 : do {
22966 0         0 my $table_name = $item{'table_name'}{'name'};
22967             $return = {
22968             table => $table_name,
22969             schema => $item{'trigger_name'}{'schema'},
22970             name => $item{'trigger_name'}{'name'},
22971             when => 'before',
22972             db_event => $item{'type'}->{'event'},
22973             fields => $item{'type'}{'fields'},
22974             condition => $item{'triggered_action'}{'condition'},
22975             reference => $item{'reference_b'},
22976             granularity => $item[9],
22977 0         0 action => $item{'triggered_action'}{'statement'}
22978             };
22979              
22980 0         0 push @triggers, $return;
22981             };
22982 0 0       0 unless (defined $_tok)
22983             {
22984 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
22985             if defined $::RD_TRACE;
22986 0         0 last;
22987             }
22988 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
22989             . $_tok . q{])},
22990             Parse::RecDescent::_tracefirst($text))
22991             if defined $::RD_TRACE;
22992 0         0 push @item, $_tok;
22993 0         0 $item{__ACTION1__}=$_tok;
22994              
22995              
22996              
22997 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [CREATE TRIGGER trigger_name before type /ON/i table_name reference_b /FOR EACH ROW/i 'MODE DB2SQL' triggered_action]<<},
22998             Parse::RecDescent::_tracefirst($text),
22999             q{create},
23000             $tracelevel)
23001             if defined $::RD_TRACE;
23002 0         0 $_matched = 1;
23003 0         0 last;
23004             }
23005              
23006              
23007 1   33     8 while (!$_matched && !$commit)
23008             {
23009              
23010 1 50       8 Parse::RecDescent::_trace(q{Trying production: [CREATE TRIGGER trigger_name after type /ON/i table_name reference_a /FOR EACH ROW|FOR EACH STATEMENT/i 'MODE DB2SQL' triggered_action]},
23011             Parse::RecDescent::_tracefirst($_[1]),
23012             q{create},
23013             $tracelevel)
23014             if defined $::RD_TRACE;
23015 1         3 my $thisprod = $thisrule->{"prods"}[1];
23016 1         3 $text = $_[1];
23017 1         3 my $_savetext;
23018 1         3 @item = (q{create});
23019 1         3 %item = (__RULE__ => q{create});
23020 1         2 my $repcount = 0;
23021              
23022              
23023 1 50       3 Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
23024             Parse::RecDescent::_tracefirst($text),
23025             q{create},
23026             $tracelevel)
23027             if defined $::RD_TRACE;
23028 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         172  
  1         2  
23029 1         3 $expectation->is(q{})->at($text);
23030 1 50   1   11 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  1         2  
23031             {
23032              
23033 1 50       3 Parse::RecDescent::_trace(q{<>},
23034             Parse::RecDescent::_tracefirst($text),
23035             q{create},
23036             $tracelevel)
23037             if defined $::RD_TRACE;
23038 1         4 $expectation->failed();
23039 1         4 last;
23040             }
23041 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
23042             . $_tok . q{]},
23043              
23044             Parse::RecDescent::_tracefirst($text),
23045             q{create},
23046             $tracelevel)
23047             if defined $::RD_TRACE;
23048 0         0 $item{q{CREATE}} = $_tok;
23049 0         0 push @item, $_tok;
23050              
23051             }
23052              
23053 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [TRIGGER]},
23054             Parse::RecDescent::_tracefirst($text),
23055             q{create},
23056             $tracelevel)
23057             if defined $::RD_TRACE;
23058 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         151  
  0         0  
23059 0         0 $expectation->is(q{TRIGGER})->at($text);
23060 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::TRIGGER($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
23061             {
23062              
23063 0 0       0 Parse::RecDescent::_trace(q{<>},
23064             Parse::RecDescent::_tracefirst($text),
23065             q{create},
23066             $tracelevel)
23067             if defined $::RD_TRACE;
23068 0         0 $expectation->failed();
23069 0         0 last;
23070             }
23071 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [TRIGGER]<< (return value: [}
23072             . $_tok . q{]},
23073              
23074             Parse::RecDescent::_tracefirst($text),
23075             q{create},
23076             $tracelevel)
23077             if defined $::RD_TRACE;
23078 0         0 $item{q{TRIGGER}} = $_tok;
23079 0         0 push @item, $_tok;
23080              
23081             }
23082              
23083 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [trigger_name]},
23084             Parse::RecDescent::_tracefirst($text),
23085             q{create},
23086             $tracelevel)
23087             if defined $::RD_TRACE;
23088 1     1   5 if (1) { no strict qw{refs};
  1         3  
  1         154  
  0         0  
23089 0         0 $expectation->is(q{trigger_name})->at($text);
23090 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::trigger_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
23091             {
23092              
23093 0 0       0 Parse::RecDescent::_trace(q{<>},
23094             Parse::RecDescent::_tracefirst($text),
23095             q{create},
23096             $tracelevel)
23097             if defined $::RD_TRACE;
23098 0         0 $expectation->failed();
23099 0         0 last;
23100             }
23101 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [trigger_name]<< (return value: [}
23102             . $_tok . q{]},
23103              
23104             Parse::RecDescent::_tracefirst($text),
23105             q{create},
23106             $tracelevel)
23107             if defined $::RD_TRACE;
23108 0         0 $item{q{trigger_name}} = $_tok;
23109 0         0 push @item, $_tok;
23110              
23111             }
23112              
23113 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [after]},
23114             Parse::RecDescent::_tracefirst($text),
23115             q{create},
23116             $tracelevel)
23117             if defined $::RD_TRACE;
23118 1     1   6 if (1) { no strict qw{refs};
  1         1  
  1         135  
  0         0  
23119 0         0 $expectation->is(q{after})->at($text);
23120 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::after($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
23121             {
23122              
23123 0 0       0 Parse::RecDescent::_trace(q{<>},
23124             Parse::RecDescent::_tracefirst($text),
23125             q{create},
23126             $tracelevel)
23127             if defined $::RD_TRACE;
23128 0         0 $expectation->failed();
23129 0         0 last;
23130             }
23131 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [after]<< (return value: [}
23132             . $_tok . q{]},
23133              
23134             Parse::RecDescent::_tracefirst($text),
23135             q{create},
23136             $tracelevel)
23137             if defined $::RD_TRACE;
23138 0         0 $item{q{after}} = $_tok;
23139 0         0 push @item, $_tok;
23140              
23141             }
23142              
23143 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [type]},
23144             Parse::RecDescent::_tracefirst($text),
23145             q{create},
23146             $tracelevel)
23147             if defined $::RD_TRACE;
23148 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         275  
  0         0  
23149 0         0 $expectation->is(q{type})->at($text);
23150 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
23151             {
23152              
23153 0 0       0 Parse::RecDescent::_trace(q{<>},
23154             Parse::RecDescent::_tracefirst($text),
23155             q{create},
23156             $tracelevel)
23157             if defined $::RD_TRACE;
23158 0         0 $expectation->failed();
23159 0         0 last;
23160             }
23161 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [type]<< (return value: [}
23162             . $_tok . q{]},
23163              
23164             Parse::RecDescent::_tracefirst($text),
23165             q{create},
23166             $tracelevel)
23167             if defined $::RD_TRACE;
23168 0         0 $item{q{type}} = $_tok;
23169 0         0 push @item, $_tok;
23170              
23171             }
23172              
23173 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ON/i]}, Parse::RecDescent::_tracefirst($text),
23174             q{create},
23175             $tracelevel)
23176             if defined $::RD_TRACE;
23177 0         0 $lastsep = "";
23178 0         0 $expectation->is(q{/ON/i})->at($text);
23179              
23180              
23181 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ON)//i)
  0 0       0  
23182             {
23183              
23184 0         0 $expectation->failed();
23185 0 0       0 Parse::RecDescent::_trace(q{<>},
23186             Parse::RecDescent::_tracefirst($text))
23187             if defined $::RD_TRACE;
23188              
23189 0         0 last;
23190             }
23191 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23192             . $& . q{])},
23193             Parse::RecDescent::_tracefirst($text))
23194             if defined $::RD_TRACE;
23195 0         0 push @item, $item{__PATTERN1__}=$&;
23196              
23197              
23198 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
23199             Parse::RecDescent::_tracefirst($text),
23200             q{create},
23201             $tracelevel)
23202             if defined $::RD_TRACE;
23203 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         524  
  0         0  
23204 0         0 $expectation->is(q{table_name})->at($text);
23205 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
23206             {
23207              
23208 0 0       0 Parse::RecDescent::_trace(q{<>},
23209             Parse::RecDescent::_tracefirst($text),
23210             q{create},
23211             $tracelevel)
23212             if defined $::RD_TRACE;
23213 0         0 $expectation->failed();
23214 0         0 last;
23215             }
23216 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
23217             . $_tok . q{]},
23218              
23219             Parse::RecDescent::_tracefirst($text),
23220             q{create},
23221             $tracelevel)
23222             if defined $::RD_TRACE;
23223 0         0 $item{q{table_name}} = $_tok;
23224 0         0 push @item, $_tok;
23225              
23226             }
23227              
23228 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [reference_a]},
23229             Parse::RecDescent::_tracefirst($text),
23230             q{create},
23231             $tracelevel)
23232             if defined $::RD_TRACE;
23233 0         0 $expectation->is(q{reference_a})->at($text);
23234              
23235 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_a, 0, 1, $_noactions,$expectation,undef)))
23236             {
23237 0 0       0 Parse::RecDescent::_trace(q{<>},
23238             Parse::RecDescent::_tracefirst($text),
23239             q{create},
23240             $tracelevel)
23241             if defined $::RD_TRACE;
23242 0         0 last;
23243             }
23244 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [reference_a]<< (}
23245             . @$_tok . q{ times)},
23246              
23247             Parse::RecDescent::_tracefirst($text),
23248             q{create},
23249             $tracelevel)
23250             if defined $::RD_TRACE;
23251 0         0 $item{q{reference_a(?)}} = $_tok;
23252 0         0 push @item, $_tok;
23253              
23254              
23255              
23256 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/FOR EACH ROW|FOR EACH STATEMENT/i]}, Parse::RecDescent::_tracefirst($text),
23257             q{create},
23258             $tracelevel)
23259             if defined $::RD_TRACE;
23260 0         0 $lastsep = "";
23261 0         0 $expectation->is(q{/FOR EACH ROW|FOR EACH STATEMENT/i})->at($text);
23262              
23263              
23264 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:FOR EACH ROW|FOR EACH STATEMENT)//i)
  0 0       0  
23265             {
23266              
23267 0         0 $expectation->failed();
23268 0 0       0 Parse::RecDescent::_trace(q{<>},
23269             Parse::RecDescent::_tracefirst($text))
23270             if defined $::RD_TRACE;
23271              
23272 0         0 last;
23273             }
23274 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23275             . $& . q{])},
23276             Parse::RecDescent::_tracefirst($text))
23277             if defined $::RD_TRACE;
23278 0         0 push @item, $item{__PATTERN2__}=$&;
23279              
23280              
23281 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['MODE DB2SQL']},
23282             Parse::RecDescent::_tracefirst($text),
23283             q{create},
23284             $tracelevel)
23285             if defined $::RD_TRACE;
23286 0         0 $lastsep = "";
23287 0         0 $expectation->is(q{'MODE DB2SQL'})->at($text);
23288              
23289              
23290 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\AMODE\ DB2SQL//)
  0 0       0  
23291             {
23292              
23293 0         0 $expectation->failed();
23294 0 0       0 Parse::RecDescent::_trace(qq{<>},
23295             Parse::RecDescent::_tracefirst($text))
23296             if defined $::RD_TRACE;
23297 0         0 last;
23298             }
23299 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23300             . $& . q{])},
23301             Parse::RecDescent::_tracefirst($text))
23302             if defined $::RD_TRACE;
23303 0         0 push @item, $item{__STRING1__}=$&;
23304              
23305              
23306 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [triggered_action]},
23307             Parse::RecDescent::_tracefirst($text),
23308             q{create},
23309             $tracelevel)
23310             if defined $::RD_TRACE;
23311 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         393  
  0         0  
23312 0         0 $expectation->is(q{triggered_action})->at($text);
23313 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
23314             {
23315              
23316 0 0       0 Parse::RecDescent::_trace(q{<>},
23317             Parse::RecDescent::_tracefirst($text),
23318             q{create},
23319             $tracelevel)
23320             if defined $::RD_TRACE;
23321 0         0 $expectation->failed();
23322 0         0 last;
23323             }
23324 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [triggered_action]<< (return value: [}
23325             . $_tok . q{]},
23326              
23327             Parse::RecDescent::_tracefirst($text),
23328             q{create},
23329             $tracelevel)
23330             if defined $::RD_TRACE;
23331 0         0 $item{q{triggered_action}} = $_tok;
23332 0         0 push @item, $_tok;
23333              
23334             }
23335              
23336 0 0       0 Parse::RecDescent::_trace(q{Trying action},
23337             Parse::RecDescent::_tracefirst($text),
23338             q{create},
23339             $tracelevel)
23340             if defined $::RD_TRACE;
23341              
23342              
23343 0 0       0 $_tok = ($_noactions) ? 0 : do {
23344 0         0 my $table_name = $item{'table_name'}{'name'};
23345             $return = {
23346             table => $table_name,
23347             schema => $item{'trigger_name'}{'schema'},
23348             name => $item{'trigger_name'}{'name'},
23349             when => 'after',
23350             db_event => $item{'type'}{'event'},
23351             fields => $item{'type'}{'fields'},
23352             condition => $item{'triggered_action'}{'condition'},
23353             reference => $item{'reference_a'},
23354             granularity => $item[9],
23355 0         0 action => $item{'triggered_action'}{'statement'}
23356             };
23357              
23358 0         0 push @triggers, $return;
23359             };
23360 0 0       0 unless (defined $_tok)
23361             {
23362 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
23363             if defined $::RD_TRACE;
23364 0         0 last;
23365             }
23366 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
23367             . $_tok . q{])},
23368             Parse::RecDescent::_tracefirst($text))
23369             if defined $::RD_TRACE;
23370 0         0 push @item, $_tok;
23371 0         0 $item{__ACTION1__}=$_tok;
23372              
23373              
23374              
23375 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [CREATE TRIGGER trigger_name after type /ON/i table_name reference_a /FOR EACH ROW|FOR EACH STATEMENT/i 'MODE DB2SQL' triggered_action]<<},
23376             Parse::RecDescent::_tracefirst($text),
23377             q{create},
23378             $tracelevel)
23379             if defined $::RD_TRACE;
23380 0         0 $_matched = 1;
23381 0         0 last;
23382             }
23383              
23384              
23385 1   33     7 while (!$_matched && !$commit)
23386             {
23387              
23388 1 50       4 Parse::RecDescent::_trace(q{Trying production: [CREATE /FEDERATED|/i VIEW view_name column_list /AS/i with_expression SQL_procedure_statement]},
23389             Parse::RecDescent::_tracefirst($_[1]),
23390             q{create},
23391             $tracelevel)
23392             if defined $::RD_TRACE;
23393 1         2 my $thisprod = $thisrule->{"prods"}[2];
23394 1         3 $text = $_[1];
23395 1         3 my $_savetext;
23396 1         4 @item = (q{create});
23397 1         4 %item = (__RULE__ => q{create});
23398 1         2 my $repcount = 0;
23399              
23400              
23401 1 50       3 Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
23402             Parse::RecDescent::_tracefirst($text),
23403             q{create},
23404             $tracelevel)
23405             if defined $::RD_TRACE;
23406 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         378  
  1         1  
23407 1         12 $expectation->is(q{})->at($text);
23408 1 50   1   14 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  1         3  
23409             {
23410              
23411 1 50       10 Parse::RecDescent::_trace(q{<>},
23412             Parse::RecDescent::_tracefirst($text),
23413             q{create},
23414             $tracelevel)
23415             if defined $::RD_TRACE;
23416 1         5 $expectation->failed();
23417 1         4 last;
23418             }
23419 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
23420             . $_tok . q{]},
23421              
23422             Parse::RecDescent::_tracefirst($text),
23423             q{create},
23424             $tracelevel)
23425             if defined $::RD_TRACE;
23426 0         0 $item{q{CREATE}} = $_tok;
23427 0         0 push @item, $_tok;
23428              
23429             }
23430              
23431 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/FEDERATED|/i]}, Parse::RecDescent::_tracefirst($text),
23432             q{create},
23433             $tracelevel)
23434             if defined $::RD_TRACE;
23435 0         0 $lastsep = "";
23436 0         0 $expectation->is(q{/FEDERATED|/i})->at($text);
23437              
23438              
23439 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:FEDERATED|)//i)
  0 0       0  
23440             {
23441              
23442 0         0 $expectation->failed();
23443 0 0       0 Parse::RecDescent::_trace(q{<>},
23444             Parse::RecDescent::_tracefirst($text))
23445             if defined $::RD_TRACE;
23446              
23447 0         0 last;
23448             }
23449 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23450             . $& . q{])},
23451             Parse::RecDescent::_tracefirst($text))
23452             if defined $::RD_TRACE;
23453 0         0 push @item, $item{__PATTERN1__}=$&;
23454              
23455              
23456 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [VIEW]},
23457             Parse::RecDescent::_tracefirst($text),
23458             q{create},
23459             $tracelevel)
23460             if defined $::RD_TRACE;
23461 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         191  
  0         0  
23462 0         0 $expectation->is(q{VIEW})->at($text);
23463 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::VIEW($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
23464             {
23465              
23466 0 0       0 Parse::RecDescent::_trace(q{<>},
23467             Parse::RecDescent::_tracefirst($text),
23468             q{create},
23469             $tracelevel)
23470             if defined $::RD_TRACE;
23471 0         0 $expectation->failed();
23472 0         0 last;
23473             }
23474 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [VIEW]<< (return value: [}
23475             . $_tok . q{]},
23476              
23477             Parse::RecDescent::_tracefirst($text),
23478             q{create},
23479             $tracelevel)
23480             if defined $::RD_TRACE;
23481 0         0 $item{q{VIEW}} = $_tok;
23482 0         0 push @item, $_tok;
23483              
23484             }
23485              
23486 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [view_name]},
23487             Parse::RecDescent::_tracefirst($text),
23488             q{create},
23489             $tracelevel)
23490             if defined $::RD_TRACE;
23491 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         523  
  0         0  
23492 0         0 $expectation->is(q{view_name})->at($text);
23493 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::view_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
23494             {
23495              
23496 0 0       0 Parse::RecDescent::_trace(q{<>},
23497             Parse::RecDescent::_tracefirst($text),
23498             q{create},
23499             $tracelevel)
23500             if defined $::RD_TRACE;
23501 0         0 $expectation->failed();
23502 0         0 last;
23503             }
23504 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [view_name]<< (return value: [}
23505             . $_tok . q{]},
23506              
23507             Parse::RecDescent::_tracefirst($text),
23508             q{create},
23509             $tracelevel)
23510             if defined $::RD_TRACE;
23511 0         0 $item{q{view_name}} = $_tok;
23512 0         0 push @item, $_tok;
23513              
23514             }
23515              
23516 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [column_list]},
23517             Parse::RecDescent::_tracefirst($text),
23518             q{create},
23519             $tracelevel)
23520             if defined $::RD_TRACE;
23521 0         0 $expectation->is(q{column_list})->at($text);
23522              
23523 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list, 0, 1, $_noactions,$expectation,undef)))
23524             {
23525 0 0       0 Parse::RecDescent::_trace(q{<>},
23526             Parse::RecDescent::_tracefirst($text),
23527             q{create},
23528             $tracelevel)
23529             if defined $::RD_TRACE;
23530 0         0 last;
23531             }
23532 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [column_list]<< (}
23533             . @$_tok . q{ times)},
23534              
23535             Parse::RecDescent::_tracefirst($text),
23536             q{create},
23537             $tracelevel)
23538             if defined $::RD_TRACE;
23539 0         0 $item{q{column_list(?)}} = $_tok;
23540 0         0 push @item, $_tok;
23541              
23542              
23543              
23544 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
23545             q{create},
23546             $tracelevel)
23547             if defined $::RD_TRACE;
23548 0         0 $lastsep = "";
23549 0         0 $expectation->is(q{/AS/i})->at($text);
23550              
23551              
23552 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:AS)//i)
  0 0       0  
23553             {
23554              
23555 0         0 $expectation->failed();
23556 0 0       0 Parse::RecDescent::_trace(q{<>},
23557             Parse::RecDescent::_tracefirst($text))
23558             if defined $::RD_TRACE;
23559              
23560 0         0 last;
23561             }
23562 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23563             . $& . q{])},
23564             Parse::RecDescent::_tracefirst($text))
23565             if defined $::RD_TRACE;
23566 0         0 push @item, $item{__PATTERN2__}=$&;
23567              
23568              
23569 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [with_expression]},
23570             Parse::RecDescent::_tracefirst($text),
23571             q{create},
23572             $tracelevel)
23573             if defined $::RD_TRACE;
23574 0         0 $expectation->is(q{with_expression})->at($text);
23575              
23576 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::with_expression, 0, 1, $_noactions,$expectation,undef)))
23577             {
23578 0 0       0 Parse::RecDescent::_trace(q{<>},
23579             Parse::RecDescent::_tracefirst($text),
23580             q{create},
23581             $tracelevel)
23582             if defined $::RD_TRACE;
23583 0         0 last;
23584             }
23585 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [with_expression]<< (}
23586             . @$_tok . q{ times)},
23587              
23588             Parse::RecDescent::_tracefirst($text),
23589             q{create},
23590             $tracelevel)
23591             if defined $::RD_TRACE;
23592 0         0 $item{q{with_expression(?)}} = $_tok;
23593 0         0 push @item, $_tok;
23594              
23595              
23596              
23597 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [SQL_procedure_statement]},
23598             Parse::RecDescent::_tracefirst($text),
23599             q{create},
23600             $tracelevel)
23601             if defined $::RD_TRACE;
23602 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         777  
  0         0  
23603 0         0 $expectation->is(q{SQL_procedure_statement})->at($text);
23604 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
23605             {
23606              
23607 0 0       0 Parse::RecDescent::_trace(q{<>},
23608             Parse::RecDescent::_tracefirst($text),
23609             q{create},
23610             $tracelevel)
23611             if defined $::RD_TRACE;
23612 0         0 $expectation->failed();
23613 0         0 last;
23614             }
23615 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [SQL_procedure_statement]<< (return value: [}
23616             . $_tok . q{]},
23617              
23618             Parse::RecDescent::_tracefirst($text),
23619             q{create},
23620             $tracelevel)
23621             if defined $::RD_TRACE;
23622 0         0 $item{q{SQL_procedure_statement}} = $_tok;
23623 0         0 push @item, $_tok;
23624              
23625             }
23626              
23627 0 0       0 Parse::RecDescent::_trace(q{Trying action},
23628             Parse::RecDescent::_tracefirst($text),
23629             q{create},
23630             $tracelevel)
23631             if defined $::RD_TRACE;
23632              
23633              
23634 0 0       0 $_tok = ($_noactions) ? 0 : do {
23635             $return = {
23636             name => $item{view_name}{name},
23637             sql => $item{SQL_procedure_statement},
23638             with => $item{'with_expression(?)'},
23639 0         0 fields => $item{'column_list(?)'}
23640             };
23641 0         0 push @views, $return;
23642             };
23643 0 0       0 unless (defined $_tok)
23644             {
23645 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
23646             if defined $::RD_TRACE;
23647 0         0 last;
23648             }
23649 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
23650             . $_tok . q{])},
23651             Parse::RecDescent::_tracefirst($text))
23652             if defined $::RD_TRACE;
23653 0         0 push @item, $_tok;
23654 0         0 $item{__ACTION1__}=$_tok;
23655              
23656              
23657              
23658 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [CREATE /FEDERATED|/i VIEW view_name column_list /AS/i with_expression SQL_procedure_statement]<<},
23659             Parse::RecDescent::_tracefirst($text),
23660             q{create},
23661             $tracelevel)
23662             if defined $::RD_TRACE;
23663 0         0 $_matched = 1;
23664 0         0 last;
23665             }
23666              
23667              
23668 1 50 33     13 unless ( $_matched || defined($return) || defined($score) )
      33        
23669             {
23670              
23671              
23672 1         3 $_[1] = $text; # NOT SURE THIS IS NEEDED
23673 1 50       4 Parse::RecDescent::_trace(q{<>},
23674             Parse::RecDescent::_tracefirst($_[1]),
23675             q{create},
23676             $tracelevel)
23677             if defined $::RD_TRACE;
23678 1         6 return undef;
23679             }
23680 0 0 0     0 if (!defined($return) && defined($score))
23681             {
23682 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
23683             q{create},
23684             $tracelevel)
23685             if defined $::RD_TRACE;
23686 0         0 $return = $score_return;
23687             }
23688 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
23689 0 0       0 $return = $item[$#item] unless defined $return;
23690 0 0       0 if (defined $::RD_TRACE)
23691             {
23692 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
23693             $return . q{])}, "",
23694             q{create},
23695             $tracelevel);
23696 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
23697             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
23698             Parse::RecDescent::_tracefirst($text),
23699             , q{create},
23700             $tracelevel)
23701             }
23702 0         0 $_[1] = $text;
23703 0         0 return $return;
23704             }
23705              
23706             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
23707             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysfun
23708             {
23709 0     0   0 my $thisparser = $_[0];
23710 1     1   10 use vars q{$tracelevel};
  1         2  
  1         318  
23711 0   0     0 local $tracelevel = ($tracelevel||0)+1;
23712 0         0 $ERRORS = 0;
23713 0         0 my $thisrule = $thisparser->{"rules"}{"sysfun"};
23714              
23715 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [sysfun]},
23716             Parse::RecDescent::_tracefirst($_[1]),
23717             q{sysfun},
23718             $tracelevel)
23719             if defined $::RD_TRACE;
23720              
23721              
23722 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
23723              
23724 0         0 my $score;
23725             my $score_return;
23726 0         0 my $_tok;
23727 0         0 my $return = undef;
23728 0         0 my $_matched=0;
23729 0         0 my $commit=0;
23730 0         0 my @item = ();
23731 0         0 my %item = ();
23732 0   0     0 my $repeating = defined($_[2]) && $_[2];
23733 0   0     0 my $_noactions = defined($_[3]) && $_[3];
23734 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
23735 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
23736 0         0 my $text;
23737 0         0 my $lastsep="";
23738 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
23739 0         0 $expectation->at($_[1]);
23740              
23741 0         0 my $thisline;
23742 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
23743              
23744              
23745              
23746 0   0     0 while (!$_matched && !$commit)
23747             {
23748              
23749 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ABS/i, or /ABSVAL/i]},
23750             Parse::RecDescent::_tracefirst($_[1]),
23751             q{sysfun},
23752             $tracelevel)
23753             if defined $::RD_TRACE;
23754 0         0 my $thisprod = $thisrule->{"prods"}[0];
23755 0         0 $text = $_[1];
23756 0         0 my $_savetext;
23757 0         0 @item = (q{sysfun});
23758 0         0 %item = (__RULE__ => q{sysfun});
23759 0         0 my $repcount = 0;
23760              
23761              
23762 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_sysfun]},
23763             Parse::RecDescent::_tracefirst($text),
23764             q{sysfun},
23765             $tracelevel)
23766             if defined $::RD_TRACE;
23767 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         1193  
  0         0  
23768 0         0 $expectation->is(q{})->at($text);
23769 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysfun($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
23770             {
23771              
23772 0 0       0 Parse::RecDescent::_trace(q{<>},
23773             Parse::RecDescent::_tracefirst($text),
23774             q{sysfun},
23775             $tracelevel)
23776             if defined $::RD_TRACE;
23777 0         0 $expectation->failed();
23778 0         0 last;
23779             }
23780 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_sysfun]<< (return value: [}
23781             . $_tok . q{]},
23782              
23783             Parse::RecDescent::_tracefirst($text),
23784             q{sysfun},
23785             $tracelevel)
23786             if defined $::RD_TRACE;
23787 0         0 $item{q{_alternation_1_of_production_1_of_rule_sysfun}} = $_tok;
23788 0         0 push @item, $_tok;
23789              
23790             }
23791              
23792              
23793 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i, or /ABSVAL/i]<<},
23794             Parse::RecDescent::_tracefirst($text),
23795             q{sysfun},
23796             $tracelevel)
23797             if defined $::RD_TRACE;
23798 0         0 $_matched = 1;
23799 0         0 last;
23800             }
23801              
23802              
23803 0   0     0 while (!$_matched && !$commit)
23804             {
23805              
23806 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ACOS/i]},
23807             Parse::RecDescent::_tracefirst($_[1]),
23808             q{sysfun},
23809             $tracelevel)
23810             if defined $::RD_TRACE;
23811 0         0 my $thisprod = $thisrule->{"prods"}[1];
23812 0         0 $text = $_[1];
23813 0         0 my $_savetext;
23814 0         0 @item = (q{sysfun});
23815 0         0 %item = (__RULE__ => q{sysfun});
23816 0         0 my $repcount = 0;
23817              
23818              
23819 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ACOS/i]}, Parse::RecDescent::_tracefirst($text),
23820             q{sysfun},
23821             $tracelevel)
23822             if defined $::RD_TRACE;
23823 0         0 $lastsep = "";
23824 0         0 $expectation->is(q{})->at($text);
23825              
23826              
23827 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ACOS)//i)
  0 0       0  
23828             {
23829              
23830 0         0 $expectation->failed();
23831 0 0       0 Parse::RecDescent::_trace(q{<>},
23832             Parse::RecDescent::_tracefirst($text))
23833             if defined $::RD_TRACE;
23834              
23835 0         0 last;
23836             }
23837 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23838             . $& . q{])},
23839             Parse::RecDescent::_tracefirst($text))
23840             if defined $::RD_TRACE;
23841 0         0 push @item, $item{__PATTERN1__}=$&;
23842              
23843              
23844              
23845 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ACOS/i]<<},
23846             Parse::RecDescent::_tracefirst($text),
23847             q{sysfun},
23848             $tracelevel)
23849             if defined $::RD_TRACE;
23850 0         0 $_matched = 1;
23851 0         0 last;
23852             }
23853              
23854              
23855 0   0     0 while (!$_matched && !$commit)
23856             {
23857              
23858 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ASCII/i]},
23859             Parse::RecDescent::_tracefirst($_[1]),
23860             q{sysfun},
23861             $tracelevel)
23862             if defined $::RD_TRACE;
23863 0         0 my $thisprod = $thisrule->{"prods"}[2];
23864 0         0 $text = $_[1];
23865 0         0 my $_savetext;
23866 0         0 @item = (q{sysfun});
23867 0         0 %item = (__RULE__ => q{sysfun});
23868 0         0 my $repcount = 0;
23869              
23870              
23871 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ASCII/i]}, Parse::RecDescent::_tracefirst($text),
23872             q{sysfun},
23873             $tracelevel)
23874             if defined $::RD_TRACE;
23875 0         0 $lastsep = "";
23876 0         0 $expectation->is(q{})->at($text);
23877              
23878              
23879 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ASCII)//i)
  0 0       0  
23880             {
23881              
23882 0         0 $expectation->failed();
23883 0 0       0 Parse::RecDescent::_trace(q{<>},
23884             Parse::RecDescent::_tracefirst($text))
23885             if defined $::RD_TRACE;
23886              
23887 0         0 last;
23888             }
23889 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23890             . $& . q{])},
23891             Parse::RecDescent::_tracefirst($text))
23892             if defined $::RD_TRACE;
23893 0         0 push @item, $item{__PATTERN1__}=$&;
23894              
23895              
23896              
23897 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ASCII/i]<<},
23898             Parse::RecDescent::_tracefirst($text),
23899             q{sysfun},
23900             $tracelevel)
23901             if defined $::RD_TRACE;
23902 0         0 $_matched = 1;
23903 0         0 last;
23904             }
23905              
23906              
23907 0   0     0 while (!$_matched && !$commit)
23908             {
23909              
23910 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ASIN/i]},
23911             Parse::RecDescent::_tracefirst($_[1]),
23912             q{sysfun},
23913             $tracelevel)
23914             if defined $::RD_TRACE;
23915 0         0 my $thisprod = $thisrule->{"prods"}[3];
23916 0         0 $text = $_[1];
23917 0         0 my $_savetext;
23918 0         0 @item = (q{sysfun});
23919 0         0 %item = (__RULE__ => q{sysfun});
23920 0         0 my $repcount = 0;
23921              
23922              
23923 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ASIN/i]}, Parse::RecDescent::_tracefirst($text),
23924             q{sysfun},
23925             $tracelevel)
23926             if defined $::RD_TRACE;
23927 0         0 $lastsep = "";
23928 0         0 $expectation->is(q{})->at($text);
23929              
23930              
23931 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ASIN)//i)
  0 0       0  
23932             {
23933              
23934 0         0 $expectation->failed();
23935 0 0       0 Parse::RecDescent::_trace(q{<>},
23936             Parse::RecDescent::_tracefirst($text))
23937             if defined $::RD_TRACE;
23938              
23939 0         0 last;
23940             }
23941 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23942             . $& . q{])},
23943             Parse::RecDescent::_tracefirst($text))
23944             if defined $::RD_TRACE;
23945 0         0 push @item, $item{__PATTERN1__}=$&;
23946              
23947              
23948              
23949 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ASIN/i]<<},
23950             Parse::RecDescent::_tracefirst($text),
23951             q{sysfun},
23952             $tracelevel)
23953             if defined $::RD_TRACE;
23954 0         0 $_matched = 1;
23955 0         0 last;
23956             }
23957              
23958              
23959 0   0     0 while (!$_matched && !$commit)
23960             {
23961              
23962 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ATAN/i]},
23963             Parse::RecDescent::_tracefirst($_[1]),
23964             q{sysfun},
23965             $tracelevel)
23966             if defined $::RD_TRACE;
23967 0         0 my $thisprod = $thisrule->{"prods"}[4];
23968 0         0 $text = $_[1];
23969 0         0 my $_savetext;
23970 0         0 @item = (q{sysfun});
23971 0         0 %item = (__RULE__ => q{sysfun});
23972 0         0 my $repcount = 0;
23973              
23974              
23975 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ATAN/i]}, Parse::RecDescent::_tracefirst($text),
23976             q{sysfun},
23977             $tracelevel)
23978             if defined $::RD_TRACE;
23979 0         0 $lastsep = "";
23980 0         0 $expectation->is(q{})->at($text);
23981              
23982              
23983 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ATAN)//i)
  0 0       0  
23984             {
23985              
23986 0         0 $expectation->failed();
23987 0 0       0 Parse::RecDescent::_trace(q{<>},
23988             Parse::RecDescent::_tracefirst($text))
23989             if defined $::RD_TRACE;
23990              
23991 0         0 last;
23992             }
23993 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23994             . $& . q{])},
23995             Parse::RecDescent::_tracefirst($text))
23996             if defined $::RD_TRACE;
23997 0         0 push @item, $item{__PATTERN1__}=$&;
23998              
23999              
24000              
24001 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ATAN/i]<<},
24002             Parse::RecDescent::_tracefirst($text),
24003             q{sysfun},
24004             $tracelevel)
24005             if defined $::RD_TRACE;
24006 0         0 $_matched = 1;
24007 0         0 last;
24008             }
24009              
24010              
24011 0   0     0 while (!$_matched && !$commit)
24012             {
24013              
24014 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ATAN2/i]},
24015             Parse::RecDescent::_tracefirst($_[1]),
24016             q{sysfun},
24017             $tracelevel)
24018             if defined $::RD_TRACE;
24019 0         0 my $thisprod = $thisrule->{"prods"}[5];
24020 0         0 $text = $_[1];
24021 0         0 my $_savetext;
24022 0         0 @item = (q{sysfun});
24023 0         0 %item = (__RULE__ => q{sysfun});
24024 0         0 my $repcount = 0;
24025              
24026              
24027 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ATAN2/i]}, Parse::RecDescent::_tracefirst($text),
24028             q{sysfun},
24029             $tracelevel)
24030             if defined $::RD_TRACE;
24031 0         0 $lastsep = "";
24032 0         0 $expectation->is(q{})->at($text);
24033              
24034              
24035 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ATAN2)//i)
  0 0       0  
24036             {
24037              
24038 0         0 $expectation->failed();
24039 0 0       0 Parse::RecDescent::_trace(q{<>},
24040             Parse::RecDescent::_tracefirst($text))
24041             if defined $::RD_TRACE;
24042              
24043 0         0 last;
24044             }
24045 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24046             . $& . q{])},
24047             Parse::RecDescent::_tracefirst($text))
24048             if defined $::RD_TRACE;
24049 0         0 push @item, $item{__PATTERN1__}=$&;
24050              
24051              
24052              
24053 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ATAN2/i]<<},
24054             Parse::RecDescent::_tracefirst($text),
24055             q{sysfun},
24056             $tracelevel)
24057             if defined $::RD_TRACE;
24058 0         0 $_matched = 1;
24059 0         0 last;
24060             }
24061              
24062              
24063 0   0     0 while (!$_matched && !$commit)
24064             {
24065              
24066 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CEIL/i, or /CEILING/i]},
24067             Parse::RecDescent::_tracefirst($_[1]),
24068             q{sysfun},
24069             $tracelevel)
24070             if defined $::RD_TRACE;
24071 0         0 my $thisprod = $thisrule->{"prods"}[6];
24072 0         0 $text = $_[1];
24073 0         0 my $_savetext;
24074 0         0 @item = (q{sysfun});
24075 0         0 %item = (__RULE__ => q{sysfun});
24076 0         0 my $repcount = 0;
24077              
24078              
24079 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_7_of_rule_sysfun]},
24080             Parse::RecDescent::_tracefirst($text),
24081             q{sysfun},
24082             $tracelevel)
24083             if defined $::RD_TRACE;
24084 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         8614  
  0         0  
24085 0         0 $expectation->is(q{})->at($text);
24086 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_7_of_rule_sysfun($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
24087             {
24088              
24089 0 0       0 Parse::RecDescent::_trace(q{<>},
24090             Parse::RecDescent::_tracefirst($text),
24091             q{sysfun},
24092             $tracelevel)
24093             if defined $::RD_TRACE;
24094 0         0 $expectation->failed();
24095 0         0 last;
24096             }
24097 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_7_of_rule_sysfun]<< (return value: [}
24098             . $_tok . q{]},
24099              
24100             Parse::RecDescent::_tracefirst($text),
24101             q{sysfun},
24102             $tracelevel)
24103             if defined $::RD_TRACE;
24104 0         0 $item{q{_alternation_1_of_production_7_of_rule_sysfun}} = $_tok;
24105 0         0 push @item, $_tok;
24106              
24107             }
24108              
24109              
24110 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CEIL/i, or /CEILING/i]<<},
24111             Parse::RecDescent::_tracefirst($text),
24112             q{sysfun},
24113             $tracelevel)
24114             if defined $::RD_TRACE;
24115 0         0 $_matched = 1;
24116 0         0 last;
24117             }
24118              
24119              
24120 0   0     0 while (!$_matched && !$commit)
24121             {
24122              
24123 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CHAR/i]},
24124             Parse::RecDescent::_tracefirst($_[1]),
24125             q{sysfun},
24126             $tracelevel)
24127             if defined $::RD_TRACE;
24128 0         0 my $thisprod = $thisrule->{"prods"}[7];
24129 0         0 $text = $_[1];
24130 0         0 my $_savetext;
24131 0         0 @item = (q{sysfun});
24132 0         0 %item = (__RULE__ => q{sysfun});
24133 0         0 my $repcount = 0;
24134              
24135              
24136 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CHAR/i]}, Parse::RecDescent::_tracefirst($text),
24137             q{sysfun},
24138             $tracelevel)
24139             if defined $::RD_TRACE;
24140 0         0 $lastsep = "";
24141 0         0 $expectation->is(q{})->at($text);
24142              
24143              
24144 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CHAR)//i)
  0 0       0  
24145             {
24146              
24147 0         0 $expectation->failed();
24148 0 0       0 Parse::RecDescent::_trace(q{<>},
24149             Parse::RecDescent::_tracefirst($text))
24150             if defined $::RD_TRACE;
24151              
24152 0         0 last;
24153             }
24154 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24155             . $& . q{])},
24156             Parse::RecDescent::_tracefirst($text))
24157             if defined $::RD_TRACE;
24158 0         0 push @item, $item{__PATTERN1__}=$&;
24159              
24160              
24161              
24162 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CHAR/i]<<},
24163             Parse::RecDescent::_tracefirst($text),
24164             q{sysfun},
24165             $tracelevel)
24166             if defined $::RD_TRACE;
24167 0         0 $_matched = 1;
24168 0         0 last;
24169             }
24170              
24171              
24172 0   0     0 while (!$_matched && !$commit)
24173             {
24174              
24175 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CHR/i]},
24176             Parse::RecDescent::_tracefirst($_[1]),
24177             q{sysfun},
24178             $tracelevel)
24179             if defined $::RD_TRACE;
24180 0         0 my $thisprod = $thisrule->{"prods"}[8];
24181 0         0 $text = $_[1];
24182 0         0 my $_savetext;
24183 0         0 @item = (q{sysfun});
24184 0         0 %item = (__RULE__ => q{sysfun});
24185 0         0 my $repcount = 0;
24186              
24187              
24188 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CHR/i]}, Parse::RecDescent::_tracefirst($text),
24189             q{sysfun},
24190             $tracelevel)
24191             if defined $::RD_TRACE;
24192 0         0 $lastsep = "";
24193 0         0 $expectation->is(q{})->at($text);
24194              
24195              
24196 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CHR)//i)
  0 0       0  
24197             {
24198              
24199 0         0 $expectation->failed();
24200 0 0       0 Parse::RecDescent::_trace(q{<>},
24201             Parse::RecDescent::_tracefirst($text))
24202             if defined $::RD_TRACE;
24203              
24204 0         0 last;
24205             }
24206 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24207             . $& . q{])},
24208             Parse::RecDescent::_tracefirst($text))
24209             if defined $::RD_TRACE;
24210 0         0 push @item, $item{__PATTERN1__}=$&;
24211              
24212              
24213              
24214 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CHR/i]<<},
24215             Parse::RecDescent::_tracefirst($text),
24216             q{sysfun},
24217             $tracelevel)
24218             if defined $::RD_TRACE;
24219 0         0 $_matched = 1;
24220 0         0 last;
24221             }
24222              
24223              
24224 0   0     0 while (!$_matched && !$commit)
24225             {
24226              
24227 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/COS/i]},
24228             Parse::RecDescent::_tracefirst($_[1]),
24229             q{sysfun},
24230             $tracelevel)
24231             if defined $::RD_TRACE;
24232 0         0 my $thisprod = $thisrule->{"prods"}[9];
24233 0         0 $text = $_[1];
24234 0         0 my $_savetext;
24235 0         0 @item = (q{sysfun});
24236 0         0 %item = (__RULE__ => q{sysfun});
24237 0         0 my $repcount = 0;
24238              
24239              
24240 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/COS/i]}, Parse::RecDescent::_tracefirst($text),
24241             q{sysfun},
24242             $tracelevel)
24243             if defined $::RD_TRACE;
24244 0         0 $lastsep = "";
24245 0         0 $expectation->is(q{})->at($text);
24246              
24247              
24248 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:COS)//i)
  0 0       0  
24249             {
24250              
24251 0         0 $expectation->failed();
24252 0 0       0 Parse::RecDescent::_trace(q{<>},
24253             Parse::RecDescent::_tracefirst($text))
24254             if defined $::RD_TRACE;
24255              
24256 0         0 last;
24257             }
24258 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24259             . $& . q{])},
24260             Parse::RecDescent::_tracefirst($text))
24261             if defined $::RD_TRACE;
24262 0         0 push @item, $item{__PATTERN1__}=$&;
24263              
24264              
24265              
24266 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/COS/i]<<},
24267             Parse::RecDescent::_tracefirst($text),
24268             q{sysfun},
24269             $tracelevel)
24270             if defined $::RD_TRACE;
24271 0         0 $_matched = 1;
24272 0         0 last;
24273             }
24274              
24275              
24276 0   0     0 while (!$_matched && !$commit)
24277             {
24278              
24279 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/COT/i]},
24280             Parse::RecDescent::_tracefirst($_[1]),
24281             q{sysfun},
24282             $tracelevel)
24283             if defined $::RD_TRACE;
24284 0         0 my $thisprod = $thisrule->{"prods"}[10];
24285 0         0 $text = $_[1];
24286 0         0 my $_savetext;
24287 0         0 @item = (q{sysfun});
24288 0         0 %item = (__RULE__ => q{sysfun});
24289 0         0 my $repcount = 0;
24290              
24291              
24292 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/COT/i]}, Parse::RecDescent::_tracefirst($text),
24293             q{sysfun},
24294             $tracelevel)
24295             if defined $::RD_TRACE;
24296 0         0 $lastsep = "";
24297 0         0 $expectation->is(q{})->at($text);
24298              
24299              
24300 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:COT)//i)
  0 0       0  
24301             {
24302              
24303 0         0 $expectation->failed();
24304 0 0       0 Parse::RecDescent::_trace(q{<>},
24305             Parse::RecDescent::_tracefirst($text))
24306             if defined $::RD_TRACE;
24307              
24308 0         0 last;
24309             }
24310 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24311             . $& . q{])},
24312             Parse::RecDescent::_tracefirst($text))
24313             if defined $::RD_TRACE;
24314 0         0 push @item, $item{__PATTERN1__}=$&;
24315              
24316              
24317              
24318 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/COT/i]<<},
24319             Parse::RecDescent::_tracefirst($text),
24320             q{sysfun},
24321             $tracelevel)
24322             if defined $::RD_TRACE;
24323 0         0 $_matched = 1;
24324 0         0 last;
24325             }
24326              
24327              
24328 0   0     0 while (!$_matched && !$commit)
24329             {
24330              
24331 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DAYNAME/i]},
24332             Parse::RecDescent::_tracefirst($_[1]),
24333             q{sysfun},
24334             $tracelevel)
24335             if defined $::RD_TRACE;
24336 0         0 my $thisprod = $thisrule->{"prods"}[11];
24337 0         0 $text = $_[1];
24338 0         0 my $_savetext;
24339 0         0 @item = (q{sysfun});
24340 0         0 %item = (__RULE__ => q{sysfun});
24341 0         0 my $repcount = 0;
24342              
24343              
24344 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DAYNAME/i]}, Parse::RecDescent::_tracefirst($text),
24345             q{sysfun},
24346             $tracelevel)
24347             if defined $::RD_TRACE;
24348 0         0 $lastsep = "";
24349 0         0 $expectation->is(q{})->at($text);
24350              
24351              
24352 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DAYNAME)//i)
  0 0       0  
24353             {
24354              
24355 0         0 $expectation->failed();
24356 0 0       0 Parse::RecDescent::_trace(q{<>},
24357             Parse::RecDescent::_tracefirst($text))
24358             if defined $::RD_TRACE;
24359              
24360 0         0 last;
24361             }
24362 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24363             . $& . q{])},
24364             Parse::RecDescent::_tracefirst($text))
24365             if defined $::RD_TRACE;
24366 0         0 push @item, $item{__PATTERN1__}=$&;
24367              
24368              
24369              
24370 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DAYNAME/i]<<},
24371             Parse::RecDescent::_tracefirst($text),
24372             q{sysfun},
24373             $tracelevel)
24374             if defined $::RD_TRACE;
24375 0         0 $_matched = 1;
24376 0         0 last;
24377             }
24378              
24379              
24380 0   0     0 while (!$_matched && !$commit)
24381             {
24382              
24383 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DAYOFWEEK/i]},
24384             Parse::RecDescent::_tracefirst($_[1]),
24385             q{sysfun},
24386             $tracelevel)
24387             if defined $::RD_TRACE;
24388 0         0 my $thisprod = $thisrule->{"prods"}[12];
24389 0         0 $text = $_[1];
24390 0         0 my $_savetext;
24391 0         0 @item = (q{sysfun});
24392 0         0 %item = (__RULE__ => q{sysfun});
24393 0         0 my $repcount = 0;
24394              
24395              
24396 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DAYOFWEEK/i]}, Parse::RecDescent::_tracefirst($text),
24397             q{sysfun},
24398             $tracelevel)
24399             if defined $::RD_TRACE;
24400 0         0 $lastsep = "";
24401 0         0 $expectation->is(q{})->at($text);
24402              
24403              
24404 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DAYOFWEEK)//i)
  0 0       0  
24405             {
24406              
24407 0         0 $expectation->failed();
24408 0 0       0 Parse::RecDescent::_trace(q{<>},
24409             Parse::RecDescent::_tracefirst($text))
24410             if defined $::RD_TRACE;
24411              
24412 0         0 last;
24413             }
24414 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24415             . $& . q{])},
24416             Parse::RecDescent::_tracefirst($text))
24417             if defined $::RD_TRACE;
24418 0         0 push @item, $item{__PATTERN1__}=$&;
24419              
24420              
24421              
24422 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DAYOFWEEK/i]<<},
24423             Parse::RecDescent::_tracefirst($text),
24424             q{sysfun},
24425             $tracelevel)
24426             if defined $::RD_TRACE;
24427 0         0 $_matched = 1;
24428 0         0 last;
24429             }
24430              
24431              
24432 0   0     0 while (!$_matched && !$commit)
24433             {
24434              
24435 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DAYOFWEEK_ISO/i]},
24436             Parse::RecDescent::_tracefirst($_[1]),
24437             q{sysfun},
24438             $tracelevel)
24439             if defined $::RD_TRACE;
24440 0         0 my $thisprod = $thisrule->{"prods"}[13];
24441 0         0 $text = $_[1];
24442 0         0 my $_savetext;
24443 0         0 @item = (q{sysfun});
24444 0         0 %item = (__RULE__ => q{sysfun});
24445 0         0 my $repcount = 0;
24446              
24447              
24448 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DAYOFWEEK_ISO/i]}, Parse::RecDescent::_tracefirst($text),
24449             q{sysfun},
24450             $tracelevel)
24451             if defined $::RD_TRACE;
24452 0         0 $lastsep = "";
24453 0         0 $expectation->is(q{})->at($text);
24454              
24455              
24456 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DAYOFWEEK_ISO)//i)
  0 0       0  
24457             {
24458              
24459 0         0 $expectation->failed();
24460 0 0       0 Parse::RecDescent::_trace(q{<>},
24461             Parse::RecDescent::_tracefirst($text))
24462             if defined $::RD_TRACE;
24463              
24464 0         0 last;
24465             }
24466 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24467             . $& . q{])},
24468             Parse::RecDescent::_tracefirst($text))
24469             if defined $::RD_TRACE;
24470 0         0 push @item, $item{__PATTERN1__}=$&;
24471              
24472              
24473              
24474 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DAYOFWEEK_ISO/i]<<},
24475             Parse::RecDescent::_tracefirst($text),
24476             q{sysfun},
24477             $tracelevel)
24478             if defined $::RD_TRACE;
24479 0         0 $_matched = 1;
24480 0         0 last;
24481             }
24482              
24483              
24484 0   0     0 while (!$_matched && !$commit)
24485             {
24486              
24487 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DAYOFYEAR/i]},
24488             Parse::RecDescent::_tracefirst($_[1]),
24489             q{sysfun},
24490             $tracelevel)
24491             if defined $::RD_TRACE;
24492 0         0 my $thisprod = $thisrule->{"prods"}[14];
24493 0         0 $text = $_[1];
24494 0         0 my $_savetext;
24495 0         0 @item = (q{sysfun});
24496 0         0 %item = (__RULE__ => q{sysfun});
24497 0         0 my $repcount = 0;
24498              
24499              
24500 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DAYOFYEAR/i]}, Parse::RecDescent::_tracefirst($text),
24501             q{sysfun},
24502             $tracelevel)
24503             if defined $::RD_TRACE;
24504 0         0 $lastsep = "";
24505 0         0 $expectation->is(q{})->at($text);
24506              
24507              
24508 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DAYOFYEAR)//i)
  0 0       0  
24509             {
24510              
24511 0         0 $expectation->failed();
24512 0 0       0 Parse::RecDescent::_trace(q{<>},
24513             Parse::RecDescent::_tracefirst($text))
24514             if defined $::RD_TRACE;
24515              
24516 0         0 last;
24517             }
24518 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24519             . $& . q{])},
24520             Parse::RecDescent::_tracefirst($text))
24521             if defined $::RD_TRACE;
24522 0         0 push @item, $item{__PATTERN1__}=$&;
24523              
24524              
24525              
24526 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DAYOFYEAR/i]<<},
24527             Parse::RecDescent::_tracefirst($text),
24528             q{sysfun},
24529             $tracelevel)
24530             if defined $::RD_TRACE;
24531 0         0 $_matched = 1;
24532 0         0 last;
24533             }
24534              
24535              
24536 0   0     0 while (!$_matched && !$commit)
24537             {
24538              
24539 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DEGREES/i]},
24540             Parse::RecDescent::_tracefirst($_[1]),
24541             q{sysfun},
24542             $tracelevel)
24543             if defined $::RD_TRACE;
24544 0         0 my $thisprod = $thisrule->{"prods"}[15];
24545 0         0 $text = $_[1];
24546 0         0 my $_savetext;
24547 0         0 @item = (q{sysfun});
24548 0         0 %item = (__RULE__ => q{sysfun});
24549 0         0 my $repcount = 0;
24550              
24551              
24552 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DEGREES/i]}, Parse::RecDescent::_tracefirst($text),
24553             q{sysfun},
24554             $tracelevel)
24555             if defined $::RD_TRACE;
24556 0         0 $lastsep = "";
24557 0         0 $expectation->is(q{})->at($text);
24558              
24559              
24560 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DEGREES)//i)
  0 0       0  
24561             {
24562              
24563 0         0 $expectation->failed();
24564 0 0       0 Parse::RecDescent::_trace(q{<>},
24565             Parse::RecDescent::_tracefirst($text))
24566             if defined $::RD_TRACE;
24567              
24568 0         0 last;
24569             }
24570 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24571             . $& . q{])},
24572             Parse::RecDescent::_tracefirst($text))
24573             if defined $::RD_TRACE;
24574 0         0 push @item, $item{__PATTERN1__}=$&;
24575              
24576              
24577              
24578 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DEGREES/i]<<},
24579             Parse::RecDescent::_tracefirst($text),
24580             q{sysfun},
24581             $tracelevel)
24582             if defined $::RD_TRACE;
24583 0         0 $_matched = 1;
24584 0         0 last;
24585             }
24586              
24587              
24588 0   0     0 while (!$_matched && !$commit)
24589             {
24590              
24591 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DIFFERENCE/i]},
24592             Parse::RecDescent::_tracefirst($_[1]),
24593             q{sysfun},
24594             $tracelevel)
24595             if defined $::RD_TRACE;
24596 0         0 my $thisprod = $thisrule->{"prods"}[16];
24597 0         0 $text = $_[1];
24598 0         0 my $_savetext;
24599 0         0 @item = (q{sysfun});
24600 0         0 %item = (__RULE__ => q{sysfun});
24601 0         0 my $repcount = 0;
24602              
24603              
24604 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DIFFERENCE/i]}, Parse::RecDescent::_tracefirst($text),
24605             q{sysfun},
24606             $tracelevel)
24607             if defined $::RD_TRACE;
24608 0         0 $lastsep = "";
24609 0         0 $expectation->is(q{})->at($text);
24610              
24611              
24612 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DIFFERENCE)//i)
  0 0       0  
24613             {
24614              
24615 0         0 $expectation->failed();
24616 0 0       0 Parse::RecDescent::_trace(q{<>},
24617             Parse::RecDescent::_tracefirst($text))
24618             if defined $::RD_TRACE;
24619              
24620 0         0 last;
24621             }
24622 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24623             . $& . q{])},
24624             Parse::RecDescent::_tracefirst($text))
24625             if defined $::RD_TRACE;
24626 0         0 push @item, $item{__PATTERN1__}=$&;
24627              
24628              
24629              
24630 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DIFFERENCE/i]<<},
24631             Parse::RecDescent::_tracefirst($text),
24632             q{sysfun},
24633             $tracelevel)
24634             if defined $::RD_TRACE;
24635 0         0 $_matched = 1;
24636 0         0 last;
24637             }
24638              
24639              
24640 0   0     0 while (!$_matched && !$commit)
24641             {
24642              
24643 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DOUBLE/i]},
24644             Parse::RecDescent::_tracefirst($_[1]),
24645             q{sysfun},
24646             $tracelevel)
24647             if defined $::RD_TRACE;
24648 0         0 my $thisprod = $thisrule->{"prods"}[17];
24649 0         0 $text = $_[1];
24650 0         0 my $_savetext;
24651 0         0 @item = (q{sysfun});
24652 0         0 %item = (__RULE__ => q{sysfun});
24653 0         0 my $repcount = 0;
24654              
24655              
24656 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DOUBLE/i]}, Parse::RecDescent::_tracefirst($text),
24657             q{sysfun},
24658             $tracelevel)
24659             if defined $::RD_TRACE;
24660 0         0 $lastsep = "";
24661 0         0 $expectation->is(q{})->at($text);
24662              
24663              
24664 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DOUBLE)//i)
  0 0       0  
24665             {
24666              
24667 0         0 $expectation->failed();
24668 0 0       0 Parse::RecDescent::_trace(q{<>},
24669             Parse::RecDescent::_tracefirst($text))
24670             if defined $::RD_TRACE;
24671              
24672 0         0 last;
24673             }
24674 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24675             . $& . q{])},
24676             Parse::RecDescent::_tracefirst($text))
24677             if defined $::RD_TRACE;
24678 0         0 push @item, $item{__PATTERN1__}=$&;
24679              
24680              
24681              
24682 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DOUBLE/i]<<},
24683             Parse::RecDescent::_tracefirst($text),
24684             q{sysfun},
24685             $tracelevel)
24686             if defined $::RD_TRACE;
24687 0         0 $_matched = 1;
24688 0         0 last;
24689             }
24690              
24691              
24692 0   0     0 while (!$_matched && !$commit)
24693             {
24694              
24695 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/EXP/i]},
24696             Parse::RecDescent::_tracefirst($_[1]),
24697             q{sysfun},
24698             $tracelevel)
24699             if defined $::RD_TRACE;
24700 0         0 my $thisprod = $thisrule->{"prods"}[18];
24701 0         0 $text = $_[1];
24702 0         0 my $_savetext;
24703 0         0 @item = (q{sysfun});
24704 0         0 %item = (__RULE__ => q{sysfun});
24705 0         0 my $repcount = 0;
24706              
24707              
24708 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/EXP/i]}, Parse::RecDescent::_tracefirst($text),
24709             q{sysfun},
24710             $tracelevel)
24711             if defined $::RD_TRACE;
24712 0         0 $lastsep = "";
24713 0         0 $expectation->is(q{})->at($text);
24714              
24715              
24716 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:EXP)//i)
  0 0       0  
24717             {
24718              
24719 0         0 $expectation->failed();
24720 0 0       0 Parse::RecDescent::_trace(q{<>},
24721             Parse::RecDescent::_tracefirst($text))
24722             if defined $::RD_TRACE;
24723              
24724 0         0 last;
24725             }
24726 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24727             . $& . q{])},
24728             Parse::RecDescent::_tracefirst($text))
24729             if defined $::RD_TRACE;
24730 0         0 push @item, $item{__PATTERN1__}=$&;
24731              
24732              
24733              
24734 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/EXP/i]<<},
24735             Parse::RecDescent::_tracefirst($text),
24736             q{sysfun},
24737             $tracelevel)
24738             if defined $::RD_TRACE;
24739 0         0 $_matched = 1;
24740 0         0 last;
24741             }
24742              
24743              
24744 0   0     0 while (!$_matched && !$commit)
24745             {
24746              
24747 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/FLOOR/i]},
24748             Parse::RecDescent::_tracefirst($_[1]),
24749             q{sysfun},
24750             $tracelevel)
24751             if defined $::RD_TRACE;
24752 0         0 my $thisprod = $thisrule->{"prods"}[19];
24753 0         0 $text = $_[1];
24754 0         0 my $_savetext;
24755 0         0 @item = (q{sysfun});
24756 0         0 %item = (__RULE__ => q{sysfun});
24757 0         0 my $repcount = 0;
24758              
24759              
24760 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/FLOOR/i]}, Parse::RecDescent::_tracefirst($text),
24761             q{sysfun},
24762             $tracelevel)
24763             if defined $::RD_TRACE;
24764 0         0 $lastsep = "";
24765 0         0 $expectation->is(q{})->at($text);
24766              
24767              
24768 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:FLOOR)//i)
  0 0       0  
24769             {
24770              
24771 0         0 $expectation->failed();
24772 0 0       0 Parse::RecDescent::_trace(q{<>},
24773             Parse::RecDescent::_tracefirst($text))
24774             if defined $::RD_TRACE;
24775              
24776 0         0 last;
24777             }
24778 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24779             . $& . q{])},
24780             Parse::RecDescent::_tracefirst($text))
24781             if defined $::RD_TRACE;
24782 0         0 push @item, $item{__PATTERN1__}=$&;
24783              
24784              
24785              
24786 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/FLOOR/i]<<},
24787             Parse::RecDescent::_tracefirst($text),
24788             q{sysfun},
24789             $tracelevel)
24790             if defined $::RD_TRACE;
24791 0         0 $_matched = 1;
24792 0         0 last;
24793             }
24794              
24795              
24796 0   0     0 while (!$_matched && !$commit)
24797             {
24798              
24799 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/GET_ROUTINE_SAR/i]},
24800             Parse::RecDescent::_tracefirst($_[1]),
24801             q{sysfun},
24802             $tracelevel)
24803             if defined $::RD_TRACE;
24804 0         0 my $thisprod = $thisrule->{"prods"}[20];
24805 0         0 $text = $_[1];
24806 0         0 my $_savetext;
24807 0         0 @item = (q{sysfun});
24808 0         0 %item = (__RULE__ => q{sysfun});
24809 0         0 my $repcount = 0;
24810              
24811              
24812 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/GET_ROUTINE_SAR/i]}, Parse::RecDescent::_tracefirst($text),
24813             q{sysfun},
24814             $tracelevel)
24815             if defined $::RD_TRACE;
24816 0         0 $lastsep = "";
24817 0         0 $expectation->is(q{})->at($text);
24818              
24819              
24820 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:GET_ROUTINE_SAR)//i)
  0 0       0  
24821             {
24822              
24823 0         0 $expectation->failed();
24824 0 0       0 Parse::RecDescent::_trace(q{<>},
24825             Parse::RecDescent::_tracefirst($text))
24826             if defined $::RD_TRACE;
24827              
24828 0         0 last;
24829             }
24830 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24831             . $& . q{])},
24832             Parse::RecDescent::_tracefirst($text))
24833             if defined $::RD_TRACE;
24834 0         0 push @item, $item{__PATTERN1__}=$&;
24835              
24836              
24837              
24838 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/GET_ROUTINE_SAR/i]<<},
24839             Parse::RecDescent::_tracefirst($text),
24840             q{sysfun},
24841             $tracelevel)
24842             if defined $::RD_TRACE;
24843 0         0 $_matched = 1;
24844 0         0 last;
24845             }
24846              
24847              
24848 0   0     0 while (!$_matched && !$commit)
24849             {
24850              
24851 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/INSERT/i]},
24852             Parse::RecDescent::_tracefirst($_[1]),
24853             q{sysfun},
24854             $tracelevel)
24855             if defined $::RD_TRACE;
24856 0         0 my $thisprod = $thisrule->{"prods"}[21];
24857 0         0 $text = $_[1];
24858 0         0 my $_savetext;
24859 0         0 @item = (q{sysfun});
24860 0         0 %item = (__RULE__ => q{sysfun});
24861 0         0 my $repcount = 0;
24862              
24863              
24864 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/INSERT/i]}, Parse::RecDescent::_tracefirst($text),
24865             q{sysfun},
24866             $tracelevel)
24867             if defined $::RD_TRACE;
24868 0         0 $lastsep = "";
24869 0         0 $expectation->is(q{})->at($text);
24870              
24871              
24872 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:INSERT)//i)
  0 0       0  
24873             {
24874              
24875 0         0 $expectation->failed();
24876 0 0       0 Parse::RecDescent::_trace(q{<>},
24877             Parse::RecDescent::_tracefirst($text))
24878             if defined $::RD_TRACE;
24879              
24880 0         0 last;
24881             }
24882 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24883             . $& . q{])},
24884             Parse::RecDescent::_tracefirst($text))
24885             if defined $::RD_TRACE;
24886 0         0 push @item, $item{__PATTERN1__}=$&;
24887              
24888              
24889              
24890 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/INSERT/i]<<},
24891             Parse::RecDescent::_tracefirst($text),
24892             q{sysfun},
24893             $tracelevel)
24894             if defined $::RD_TRACE;
24895 0         0 $_matched = 1;
24896 0         0 last;
24897             }
24898              
24899              
24900 0   0     0 while (!$_matched && !$commit)
24901             {
24902              
24903 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/JULIAN_DAY/i]},
24904             Parse::RecDescent::_tracefirst($_[1]),
24905             q{sysfun},
24906             $tracelevel)
24907             if defined $::RD_TRACE;
24908 0         0 my $thisprod = $thisrule->{"prods"}[22];
24909 0         0 $text = $_[1];
24910 0         0 my $_savetext;
24911 0         0 @item = (q{sysfun});
24912 0         0 %item = (__RULE__ => q{sysfun});
24913 0         0 my $repcount = 0;
24914              
24915              
24916 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/JULIAN_DAY/i]}, Parse::RecDescent::_tracefirst($text),
24917             q{sysfun},
24918             $tracelevel)
24919             if defined $::RD_TRACE;
24920 0         0 $lastsep = "";
24921 0         0 $expectation->is(q{})->at($text);
24922              
24923              
24924 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:JULIAN_DAY)//i)
  0 0       0  
24925             {
24926              
24927 0         0 $expectation->failed();
24928 0 0       0 Parse::RecDescent::_trace(q{<>},
24929             Parse::RecDescent::_tracefirst($text))
24930             if defined $::RD_TRACE;
24931              
24932 0         0 last;
24933             }
24934 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24935             . $& . q{])},
24936             Parse::RecDescent::_tracefirst($text))
24937             if defined $::RD_TRACE;
24938 0         0 push @item, $item{__PATTERN1__}=$&;
24939              
24940              
24941              
24942 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/JULIAN_DAY/i]<<},
24943             Parse::RecDescent::_tracefirst($text),
24944             q{sysfun},
24945             $tracelevel)
24946             if defined $::RD_TRACE;
24947 0         0 $_matched = 1;
24948 0         0 last;
24949             }
24950              
24951              
24952 0   0     0 while (!$_matched && !$commit)
24953             {
24954              
24955 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LCASE/i]},
24956             Parse::RecDescent::_tracefirst($_[1]),
24957             q{sysfun},
24958             $tracelevel)
24959             if defined $::RD_TRACE;
24960 0         0 my $thisprod = $thisrule->{"prods"}[23];
24961 0         0 $text = $_[1];
24962 0         0 my $_savetext;
24963 0         0 @item = (q{sysfun});
24964 0         0 %item = (__RULE__ => q{sysfun});
24965 0         0 my $repcount = 0;
24966              
24967              
24968 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LCASE/i]}, Parse::RecDescent::_tracefirst($text),
24969             q{sysfun},
24970             $tracelevel)
24971             if defined $::RD_TRACE;
24972 0         0 $lastsep = "";
24973 0         0 $expectation->is(q{})->at($text);
24974              
24975              
24976 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LCASE)//i)
  0 0       0  
24977             {
24978              
24979 0         0 $expectation->failed();
24980 0 0       0 Parse::RecDescent::_trace(q{<>},
24981             Parse::RecDescent::_tracefirst($text))
24982             if defined $::RD_TRACE;
24983              
24984 0         0 last;
24985             }
24986 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24987             . $& . q{])},
24988             Parse::RecDescent::_tracefirst($text))
24989             if defined $::RD_TRACE;
24990 0         0 push @item, $item{__PATTERN1__}=$&;
24991              
24992              
24993              
24994 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LCASE/i]<<},
24995             Parse::RecDescent::_tracefirst($text),
24996             q{sysfun},
24997             $tracelevel)
24998             if defined $::RD_TRACE;
24999 0         0 $_matched = 1;
25000 0         0 last;
25001             }
25002              
25003              
25004 0   0     0 while (!$_matched && !$commit)
25005             {
25006              
25007 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LEFT/i]},
25008             Parse::RecDescent::_tracefirst($_[1]),
25009             q{sysfun},
25010             $tracelevel)
25011             if defined $::RD_TRACE;
25012 0         0 my $thisprod = $thisrule->{"prods"}[24];
25013 0         0 $text = $_[1];
25014 0         0 my $_savetext;
25015 0         0 @item = (q{sysfun});
25016 0         0 %item = (__RULE__ => q{sysfun});
25017 0         0 my $repcount = 0;
25018              
25019              
25020 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LEFT/i]}, Parse::RecDescent::_tracefirst($text),
25021             q{sysfun},
25022             $tracelevel)
25023             if defined $::RD_TRACE;
25024 0         0 $lastsep = "";
25025 0         0 $expectation->is(q{})->at($text);
25026              
25027              
25028 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LEFT)//i)
  0 0       0  
25029             {
25030              
25031 0         0 $expectation->failed();
25032 0 0       0 Parse::RecDescent::_trace(q{<>},
25033             Parse::RecDescent::_tracefirst($text))
25034             if defined $::RD_TRACE;
25035              
25036 0         0 last;
25037             }
25038 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25039             . $& . q{])},
25040             Parse::RecDescent::_tracefirst($text))
25041             if defined $::RD_TRACE;
25042 0         0 push @item, $item{__PATTERN1__}=$&;
25043              
25044              
25045              
25046 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LEFT/i]<<},
25047             Parse::RecDescent::_tracefirst($text),
25048             q{sysfun},
25049             $tracelevel)
25050             if defined $::RD_TRACE;
25051 0         0 $_matched = 1;
25052 0         0 last;
25053             }
25054              
25055              
25056 0   0     0 while (!$_matched && !$commit)
25057             {
25058              
25059 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LN/i]},
25060             Parse::RecDescent::_tracefirst($_[1]),
25061             q{sysfun},
25062             $tracelevel)
25063             if defined $::RD_TRACE;
25064 0         0 my $thisprod = $thisrule->{"prods"}[25];
25065 0         0 $text = $_[1];
25066 0         0 my $_savetext;
25067 0         0 @item = (q{sysfun});
25068 0         0 %item = (__RULE__ => q{sysfun});
25069 0         0 my $repcount = 0;
25070              
25071              
25072 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LN/i]}, Parse::RecDescent::_tracefirst($text),
25073             q{sysfun},
25074             $tracelevel)
25075             if defined $::RD_TRACE;
25076 0         0 $lastsep = "";
25077 0         0 $expectation->is(q{})->at($text);
25078              
25079              
25080 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LN)//i)
  0 0       0  
25081             {
25082              
25083 0         0 $expectation->failed();
25084 0 0       0 Parse::RecDescent::_trace(q{<>},
25085             Parse::RecDescent::_tracefirst($text))
25086             if defined $::RD_TRACE;
25087              
25088 0         0 last;
25089             }
25090 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25091             . $& . q{])},
25092             Parse::RecDescent::_tracefirst($text))
25093             if defined $::RD_TRACE;
25094 0         0 push @item, $item{__PATTERN1__}=$&;
25095              
25096              
25097              
25098 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LN/i]<<},
25099             Parse::RecDescent::_tracefirst($text),
25100             q{sysfun},
25101             $tracelevel)
25102             if defined $::RD_TRACE;
25103 0         0 $_matched = 1;
25104 0         0 last;
25105             }
25106              
25107              
25108 0   0     0 while (!$_matched && !$commit)
25109             {
25110              
25111 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LOCATE/i]},
25112             Parse::RecDescent::_tracefirst($_[1]),
25113             q{sysfun},
25114             $tracelevel)
25115             if defined $::RD_TRACE;
25116 0         0 my $thisprod = $thisrule->{"prods"}[26];
25117 0         0 $text = $_[1];
25118 0         0 my $_savetext;
25119 0         0 @item = (q{sysfun});
25120 0         0 %item = (__RULE__ => q{sysfun});
25121 0         0 my $repcount = 0;
25122              
25123              
25124 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LOCATE/i]}, Parse::RecDescent::_tracefirst($text),
25125             q{sysfun},
25126             $tracelevel)
25127             if defined $::RD_TRACE;
25128 0         0 $lastsep = "";
25129 0         0 $expectation->is(q{})->at($text);
25130              
25131              
25132 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LOCATE)//i)
  0 0       0  
25133             {
25134              
25135 0         0 $expectation->failed();
25136 0 0       0 Parse::RecDescent::_trace(q{<>},
25137             Parse::RecDescent::_tracefirst($text))
25138             if defined $::RD_TRACE;
25139              
25140 0         0 last;
25141             }
25142 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25143             . $& . q{])},
25144             Parse::RecDescent::_tracefirst($text))
25145             if defined $::RD_TRACE;
25146 0         0 push @item, $item{__PATTERN1__}=$&;
25147              
25148              
25149              
25150 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LOCATE/i]<<},
25151             Parse::RecDescent::_tracefirst($text),
25152             q{sysfun},
25153             $tracelevel)
25154             if defined $::RD_TRACE;
25155 0         0 $_matched = 1;
25156 0         0 last;
25157             }
25158              
25159              
25160 0   0     0 while (!$_matched && !$commit)
25161             {
25162              
25163 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LOG/i]},
25164             Parse::RecDescent::_tracefirst($_[1]),
25165             q{sysfun},
25166             $tracelevel)
25167             if defined $::RD_TRACE;
25168 0         0 my $thisprod = $thisrule->{"prods"}[27];
25169 0         0 $text = $_[1];
25170 0         0 my $_savetext;
25171 0         0 @item = (q{sysfun});
25172 0         0 %item = (__RULE__ => q{sysfun});
25173 0         0 my $repcount = 0;
25174              
25175              
25176 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LOG/i]}, Parse::RecDescent::_tracefirst($text),
25177             q{sysfun},
25178             $tracelevel)
25179             if defined $::RD_TRACE;
25180 0         0 $lastsep = "";
25181 0         0 $expectation->is(q{})->at($text);
25182              
25183              
25184 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LOG)//i)
  0 0       0  
25185             {
25186              
25187 0         0 $expectation->failed();
25188 0 0       0 Parse::RecDescent::_trace(q{<>},
25189             Parse::RecDescent::_tracefirst($text))
25190             if defined $::RD_TRACE;
25191              
25192 0         0 last;
25193             }
25194 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25195             . $& . q{])},
25196             Parse::RecDescent::_tracefirst($text))
25197             if defined $::RD_TRACE;
25198 0         0 push @item, $item{__PATTERN1__}=$&;
25199              
25200              
25201              
25202 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LOG/i]<<},
25203             Parse::RecDescent::_tracefirst($text),
25204             q{sysfun},
25205             $tracelevel)
25206             if defined $::RD_TRACE;
25207 0         0 $_matched = 1;
25208 0         0 last;
25209             }
25210              
25211              
25212 0   0     0 while (!$_matched && !$commit)
25213             {
25214              
25215 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LOG10/i]},
25216             Parse::RecDescent::_tracefirst($_[1]),
25217             q{sysfun},
25218             $tracelevel)
25219             if defined $::RD_TRACE;
25220 0         0 my $thisprod = $thisrule->{"prods"}[28];
25221 0         0 $text = $_[1];
25222 0         0 my $_savetext;
25223 0         0 @item = (q{sysfun});
25224 0         0 %item = (__RULE__ => q{sysfun});
25225 0         0 my $repcount = 0;
25226              
25227              
25228 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LOG10/i]}, Parse::RecDescent::_tracefirst($text),
25229             q{sysfun},
25230             $tracelevel)
25231             if defined $::RD_TRACE;
25232 0         0 $lastsep = "";
25233 0         0 $expectation->is(q{})->at($text);
25234              
25235              
25236 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LOG10)//i)
  0 0       0  
25237             {
25238              
25239 0         0 $expectation->failed();
25240 0 0       0 Parse::RecDescent::_trace(q{<>},
25241             Parse::RecDescent::_tracefirst($text))
25242             if defined $::RD_TRACE;
25243              
25244 0         0 last;
25245             }
25246 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25247             . $& . q{])},
25248             Parse::RecDescent::_tracefirst($text))
25249             if defined $::RD_TRACE;
25250 0         0 push @item, $item{__PATTERN1__}=$&;
25251              
25252              
25253              
25254 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LOG10/i]<<},
25255             Parse::RecDescent::_tracefirst($text),
25256             q{sysfun},
25257             $tracelevel)
25258             if defined $::RD_TRACE;
25259 0         0 $_matched = 1;
25260 0         0 last;
25261             }
25262              
25263              
25264 0   0     0 while (!$_matched && !$commit)
25265             {
25266              
25267 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LTRIM/i]},
25268             Parse::RecDescent::_tracefirst($_[1]),
25269             q{sysfun},
25270             $tracelevel)
25271             if defined $::RD_TRACE;
25272 0         0 my $thisprod = $thisrule->{"prods"}[29];
25273 0         0 $text = $_[1];
25274 0         0 my $_savetext;
25275 0         0 @item = (q{sysfun});
25276 0         0 %item = (__RULE__ => q{sysfun});
25277 0         0 my $repcount = 0;
25278              
25279              
25280 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LTRIM/i]}, Parse::RecDescent::_tracefirst($text),
25281             q{sysfun},
25282             $tracelevel)
25283             if defined $::RD_TRACE;
25284 0         0 $lastsep = "";
25285 0         0 $expectation->is(q{})->at($text);
25286              
25287              
25288 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LTRIM)//i)
  0 0       0  
25289             {
25290              
25291 0         0 $expectation->failed();
25292 0 0       0 Parse::RecDescent::_trace(q{<>},
25293             Parse::RecDescent::_tracefirst($text))
25294             if defined $::RD_TRACE;
25295              
25296 0         0 last;
25297             }
25298 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25299             . $& . q{])},
25300             Parse::RecDescent::_tracefirst($text))
25301             if defined $::RD_TRACE;
25302 0         0 push @item, $item{__PATTERN1__}=$&;
25303              
25304              
25305              
25306 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LTRIM/i]<<},
25307             Parse::RecDescent::_tracefirst($text),
25308             q{sysfun},
25309             $tracelevel)
25310             if defined $::RD_TRACE;
25311 0         0 $_matched = 1;
25312 0         0 last;
25313             }
25314              
25315              
25316 0   0     0 while (!$_matched && !$commit)
25317             {
25318              
25319 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/MIDNIGHT_SECONDS/i]},
25320             Parse::RecDescent::_tracefirst($_[1]),
25321             q{sysfun},
25322             $tracelevel)
25323             if defined $::RD_TRACE;
25324 0         0 my $thisprod = $thisrule->{"prods"}[30];
25325 0         0 $text = $_[1];
25326 0         0 my $_savetext;
25327 0         0 @item = (q{sysfun});
25328 0         0 %item = (__RULE__ => q{sysfun});
25329 0         0 my $repcount = 0;
25330              
25331              
25332 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/MIDNIGHT_SECONDS/i]}, Parse::RecDescent::_tracefirst($text),
25333             q{sysfun},
25334             $tracelevel)
25335             if defined $::RD_TRACE;
25336 0         0 $lastsep = "";
25337 0         0 $expectation->is(q{})->at($text);
25338              
25339              
25340 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:MIDNIGHT_SECONDS)//i)
  0 0       0  
25341             {
25342              
25343 0         0 $expectation->failed();
25344 0 0       0 Parse::RecDescent::_trace(q{<>},
25345             Parse::RecDescent::_tracefirst($text))
25346             if defined $::RD_TRACE;
25347              
25348 0         0 last;
25349             }
25350 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25351             . $& . q{])},
25352             Parse::RecDescent::_tracefirst($text))
25353             if defined $::RD_TRACE;
25354 0         0 push @item, $item{__PATTERN1__}=$&;
25355              
25356              
25357              
25358 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/MIDNIGHT_SECONDS/i]<<},
25359             Parse::RecDescent::_tracefirst($text),
25360             q{sysfun},
25361             $tracelevel)
25362             if defined $::RD_TRACE;
25363 0         0 $_matched = 1;
25364 0         0 last;
25365             }
25366              
25367              
25368 0   0     0 while (!$_matched && !$commit)
25369             {
25370              
25371 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/MOD/i]},
25372             Parse::RecDescent::_tracefirst($_[1]),
25373             q{sysfun},
25374             $tracelevel)
25375             if defined $::RD_TRACE;
25376 0         0 my $thisprod = $thisrule->{"prods"}[31];
25377 0         0 $text = $_[1];
25378 0         0 my $_savetext;
25379 0         0 @item = (q{sysfun});
25380 0         0 %item = (__RULE__ => q{sysfun});
25381 0         0 my $repcount = 0;
25382              
25383              
25384 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/MOD/i]}, Parse::RecDescent::_tracefirst($text),
25385             q{sysfun},
25386             $tracelevel)
25387             if defined $::RD_TRACE;
25388 0         0 $lastsep = "";
25389 0         0 $expectation->is(q{})->at($text);
25390              
25391              
25392 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:MOD)//i)
  0 0       0  
25393             {
25394              
25395 0         0 $expectation->failed();
25396 0 0       0 Parse::RecDescent::_trace(q{<>},
25397             Parse::RecDescent::_tracefirst($text))
25398             if defined $::RD_TRACE;
25399              
25400 0         0 last;
25401             }
25402 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25403             . $& . q{])},
25404             Parse::RecDescent::_tracefirst($text))
25405             if defined $::RD_TRACE;
25406 0         0 push @item, $item{__PATTERN1__}=$&;
25407              
25408              
25409              
25410 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/MOD/i]<<},
25411             Parse::RecDescent::_tracefirst($text),
25412             q{sysfun},
25413             $tracelevel)
25414             if defined $::RD_TRACE;
25415 0         0 $_matched = 1;
25416 0         0 last;
25417             }
25418              
25419              
25420 0   0     0 while (!$_matched && !$commit)
25421             {
25422              
25423 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/MONTHNAME/i]},
25424             Parse::RecDescent::_tracefirst($_[1]),
25425             q{sysfun},
25426             $tracelevel)
25427             if defined $::RD_TRACE;
25428 0         0 my $thisprod = $thisrule->{"prods"}[32];
25429 0         0 $text = $_[1];
25430 0         0 my $_savetext;
25431 0         0 @item = (q{sysfun});
25432 0         0 %item = (__RULE__ => q{sysfun});
25433 0         0 my $repcount = 0;
25434              
25435              
25436 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/MONTHNAME/i]}, Parse::RecDescent::_tracefirst($text),
25437             q{sysfun},
25438             $tracelevel)
25439             if defined $::RD_TRACE;
25440 0         0 $lastsep = "";
25441 0         0 $expectation->is(q{})->at($text);
25442              
25443              
25444 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:MONTHNAME)//i)
  0 0       0  
25445             {
25446              
25447 0         0 $expectation->failed();
25448 0 0       0 Parse::RecDescent::_trace(q{<>},
25449             Parse::RecDescent::_tracefirst($text))
25450             if defined $::RD_TRACE;
25451              
25452 0         0 last;
25453             }
25454 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25455             . $& . q{])},
25456             Parse::RecDescent::_tracefirst($text))
25457             if defined $::RD_TRACE;
25458 0         0 push @item, $item{__PATTERN1__}=$&;
25459              
25460              
25461              
25462 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/MONTHNAME/i]<<},
25463             Parse::RecDescent::_tracefirst($text),
25464             q{sysfun},
25465             $tracelevel)
25466             if defined $::RD_TRACE;
25467 0         0 $_matched = 1;
25468 0         0 last;
25469             }
25470              
25471              
25472 0   0     0 while (!$_matched && !$commit)
25473             {
25474              
25475 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/POWER/i]},
25476             Parse::RecDescent::_tracefirst($_[1]),
25477             q{sysfun},
25478             $tracelevel)
25479             if defined $::RD_TRACE;
25480 0         0 my $thisprod = $thisrule->{"prods"}[33];
25481 0         0 $text = $_[1];
25482 0         0 my $_savetext;
25483 0         0 @item = (q{sysfun});
25484 0         0 %item = (__RULE__ => q{sysfun});
25485 0         0 my $repcount = 0;
25486              
25487              
25488 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/POWER/i]}, Parse::RecDescent::_tracefirst($text),
25489             q{sysfun},
25490             $tracelevel)
25491             if defined $::RD_TRACE;
25492 0         0 $lastsep = "";
25493 0         0 $expectation->is(q{})->at($text);
25494              
25495              
25496 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:POWER)//i)
  0 0       0  
25497             {
25498              
25499 0         0 $expectation->failed();
25500 0 0       0 Parse::RecDescent::_trace(q{<>},
25501             Parse::RecDescent::_tracefirst($text))
25502             if defined $::RD_TRACE;
25503              
25504 0         0 last;
25505             }
25506 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25507             . $& . q{])},
25508             Parse::RecDescent::_tracefirst($text))
25509             if defined $::RD_TRACE;
25510 0         0 push @item, $item{__PATTERN1__}=$&;
25511              
25512              
25513              
25514 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/POWER/i]<<},
25515             Parse::RecDescent::_tracefirst($text),
25516             q{sysfun},
25517             $tracelevel)
25518             if defined $::RD_TRACE;
25519 0         0 $_matched = 1;
25520 0         0 last;
25521             }
25522              
25523              
25524 0   0     0 while (!$_matched && !$commit)
25525             {
25526              
25527 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/PUT_ROUTINE_SAR/i]},
25528             Parse::RecDescent::_tracefirst($_[1]),
25529             q{sysfun},
25530             $tracelevel)
25531             if defined $::RD_TRACE;
25532 0         0 my $thisprod = $thisrule->{"prods"}[34];
25533 0         0 $text = $_[1];
25534 0         0 my $_savetext;
25535 0         0 @item = (q{sysfun});
25536 0         0 %item = (__RULE__ => q{sysfun});
25537 0         0 my $repcount = 0;
25538              
25539              
25540 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/PUT_ROUTINE_SAR/i]}, Parse::RecDescent::_tracefirst($text),
25541             q{sysfun},
25542             $tracelevel)
25543             if defined $::RD_TRACE;
25544 0         0 $lastsep = "";
25545 0         0 $expectation->is(q{})->at($text);
25546              
25547              
25548 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:PUT_ROUTINE_SAR)//i)
  0 0       0  
25549             {
25550              
25551 0         0 $expectation->failed();
25552 0 0       0 Parse::RecDescent::_trace(q{<>},
25553             Parse::RecDescent::_tracefirst($text))
25554             if defined $::RD_TRACE;
25555              
25556 0         0 last;
25557             }
25558 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25559             . $& . q{])},
25560             Parse::RecDescent::_tracefirst($text))
25561             if defined $::RD_TRACE;
25562 0         0 push @item, $item{__PATTERN1__}=$&;
25563              
25564              
25565              
25566 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/PUT_ROUTINE_SAR/i]<<},
25567             Parse::RecDescent::_tracefirst($text),
25568             q{sysfun},
25569             $tracelevel)
25570             if defined $::RD_TRACE;
25571 0         0 $_matched = 1;
25572 0         0 last;
25573             }
25574              
25575              
25576 0   0     0 while (!$_matched && !$commit)
25577             {
25578              
25579 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/QUARTER/i]},
25580             Parse::RecDescent::_tracefirst($_[1]),
25581             q{sysfun},
25582             $tracelevel)
25583             if defined $::RD_TRACE;
25584 0         0 my $thisprod = $thisrule->{"prods"}[35];
25585 0         0 $text = $_[1];
25586 0         0 my $_savetext;
25587 0         0 @item = (q{sysfun});
25588 0         0 %item = (__RULE__ => q{sysfun});
25589 0         0 my $repcount = 0;
25590              
25591              
25592 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/QUARTER/i]}, Parse::RecDescent::_tracefirst($text),
25593             q{sysfun},
25594             $tracelevel)
25595             if defined $::RD_TRACE;
25596 0         0 $lastsep = "";
25597 0         0 $expectation->is(q{})->at($text);
25598              
25599              
25600 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:QUARTER)//i)
  0 0       0  
25601             {
25602              
25603 0         0 $expectation->failed();
25604 0 0       0 Parse::RecDescent::_trace(q{<>},
25605             Parse::RecDescent::_tracefirst($text))
25606             if defined $::RD_TRACE;
25607              
25608 0         0 last;
25609             }
25610 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25611             . $& . q{])},
25612             Parse::RecDescent::_tracefirst($text))
25613             if defined $::RD_TRACE;
25614 0         0 push @item, $item{__PATTERN1__}=$&;
25615              
25616              
25617              
25618 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/QUARTER/i]<<},
25619             Parse::RecDescent::_tracefirst($text),
25620             q{sysfun},
25621             $tracelevel)
25622             if defined $::RD_TRACE;
25623 0         0 $_matched = 1;
25624 0         0 last;
25625             }
25626              
25627              
25628 0   0     0 while (!$_matched && !$commit)
25629             {
25630              
25631 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/RADIANS/i]},
25632             Parse::RecDescent::_tracefirst($_[1]),
25633             q{sysfun},
25634             $tracelevel)
25635             if defined $::RD_TRACE;
25636 0         0 my $thisprod = $thisrule->{"prods"}[36];
25637 0         0 $text = $_[1];
25638 0         0 my $_savetext;
25639 0         0 @item = (q{sysfun});
25640 0         0 %item = (__RULE__ => q{sysfun});
25641 0         0 my $repcount = 0;
25642              
25643              
25644 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/RADIANS/i]}, Parse::RecDescent::_tracefirst($text),
25645             q{sysfun},
25646             $tracelevel)
25647             if defined $::RD_TRACE;
25648 0         0 $lastsep = "";
25649 0         0 $expectation->is(q{})->at($text);
25650              
25651              
25652 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:RADIANS)//i)
  0 0       0  
25653             {
25654              
25655 0         0 $expectation->failed();
25656 0 0       0 Parse::RecDescent::_trace(q{<>},
25657             Parse::RecDescent::_tracefirst($text))
25658             if defined $::RD_TRACE;
25659              
25660 0         0 last;
25661             }
25662 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25663             . $& . q{])},
25664             Parse::RecDescent::_tracefirst($text))
25665             if defined $::RD_TRACE;
25666 0         0 push @item, $item{__PATTERN1__}=$&;
25667              
25668              
25669              
25670 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/RADIANS/i]<<},
25671             Parse::RecDescent::_tracefirst($text),
25672             q{sysfun},
25673             $tracelevel)
25674             if defined $::RD_TRACE;
25675 0         0 $_matched = 1;
25676 0         0 last;
25677             }
25678              
25679              
25680 0   0     0 while (!$_matched && !$commit)
25681             {
25682              
25683 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/RAND/i]},
25684             Parse::RecDescent::_tracefirst($_[1]),
25685             q{sysfun},
25686             $tracelevel)
25687             if defined $::RD_TRACE;
25688 0         0 my $thisprod = $thisrule->{"prods"}[37];
25689 0         0 $text = $_[1];
25690 0         0 my $_savetext;
25691 0         0 @item = (q{sysfun});
25692 0         0 %item = (__RULE__ => q{sysfun});
25693 0         0 my $repcount = 0;
25694              
25695              
25696 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/RAND/i]}, Parse::RecDescent::_tracefirst($text),
25697             q{sysfun},
25698             $tracelevel)
25699             if defined $::RD_TRACE;
25700 0         0 $lastsep = "";
25701 0         0 $expectation->is(q{})->at($text);
25702              
25703              
25704 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:RAND)//i)
  0 0       0  
25705             {
25706              
25707 0         0 $expectation->failed();
25708 0 0       0 Parse::RecDescent::_trace(q{<>},
25709             Parse::RecDescent::_tracefirst($text))
25710             if defined $::RD_TRACE;
25711              
25712 0         0 last;
25713             }
25714 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25715             . $& . q{])},
25716             Parse::RecDescent::_tracefirst($text))
25717             if defined $::RD_TRACE;
25718 0         0 push @item, $item{__PATTERN1__}=$&;
25719              
25720              
25721              
25722 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/RAND/i]<<},
25723             Parse::RecDescent::_tracefirst($text),
25724             q{sysfun},
25725             $tracelevel)
25726             if defined $::RD_TRACE;
25727 0         0 $_matched = 1;
25728 0         0 last;
25729             }
25730              
25731              
25732 0   0     0 while (!$_matched && !$commit)
25733             {
25734              
25735 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REPEAT/i]},
25736             Parse::RecDescent::_tracefirst($_[1]),
25737             q{sysfun},
25738             $tracelevel)
25739             if defined $::RD_TRACE;
25740 0         0 my $thisprod = $thisrule->{"prods"}[38];
25741 0         0 $text = $_[1];
25742 0         0 my $_savetext;
25743 0         0 @item = (q{sysfun});
25744 0         0 %item = (__RULE__ => q{sysfun});
25745 0         0 my $repcount = 0;
25746              
25747              
25748 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REPEAT/i]}, Parse::RecDescent::_tracefirst($text),
25749             q{sysfun},
25750             $tracelevel)
25751             if defined $::RD_TRACE;
25752 0         0 $lastsep = "";
25753 0         0 $expectation->is(q{})->at($text);
25754              
25755              
25756 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REPEAT)//i)
  0 0       0  
25757             {
25758              
25759 0         0 $expectation->failed();
25760 0 0       0 Parse::RecDescent::_trace(q{<>},
25761             Parse::RecDescent::_tracefirst($text))
25762             if defined $::RD_TRACE;
25763              
25764 0         0 last;
25765             }
25766 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25767             . $& . q{])},
25768             Parse::RecDescent::_tracefirst($text))
25769             if defined $::RD_TRACE;
25770 0         0 push @item, $item{__PATTERN1__}=$&;
25771              
25772              
25773              
25774 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REPEAT/i]<<},
25775             Parse::RecDescent::_tracefirst($text),
25776             q{sysfun},
25777             $tracelevel)
25778             if defined $::RD_TRACE;
25779 0         0 $_matched = 1;
25780 0         0 last;
25781             }
25782              
25783              
25784 0   0     0 while (!$_matched && !$commit)
25785             {
25786              
25787 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REPLACE/i]},
25788             Parse::RecDescent::_tracefirst($_[1]),
25789             q{sysfun},
25790             $tracelevel)
25791             if defined $::RD_TRACE;
25792 0         0 my $thisprod = $thisrule->{"prods"}[39];
25793 0         0 $text = $_[1];
25794 0         0 my $_savetext;
25795 0         0 @item = (q{sysfun});
25796 0         0 %item = (__RULE__ => q{sysfun});
25797 0         0 my $repcount = 0;
25798              
25799              
25800 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REPLACE/i]}, Parse::RecDescent::_tracefirst($text),
25801             q{sysfun},
25802             $tracelevel)
25803             if defined $::RD_TRACE;
25804 0         0 $lastsep = "";
25805 0         0 $expectation->is(q{})->at($text);
25806              
25807              
25808 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REPLACE)//i)
  0 0       0  
25809             {
25810              
25811 0         0 $expectation->failed();
25812 0 0       0 Parse::RecDescent::_trace(q{<>},
25813             Parse::RecDescent::_tracefirst($text))
25814             if defined $::RD_TRACE;
25815              
25816 0         0 last;
25817             }
25818 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25819             . $& . q{])},
25820             Parse::RecDescent::_tracefirst($text))
25821             if defined $::RD_TRACE;
25822 0         0 push @item, $item{__PATTERN1__}=$&;
25823              
25824              
25825              
25826 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REPLACE/i]<<},
25827             Parse::RecDescent::_tracefirst($text),
25828             q{sysfun},
25829             $tracelevel)
25830             if defined $::RD_TRACE;
25831 0         0 $_matched = 1;
25832 0         0 last;
25833             }
25834              
25835              
25836 0   0     0 while (!$_matched && !$commit)
25837             {
25838              
25839 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/RIGHT/i]},
25840             Parse::RecDescent::_tracefirst($_[1]),
25841             q{sysfun},
25842             $tracelevel)
25843             if defined $::RD_TRACE;
25844 0         0 my $thisprod = $thisrule->{"prods"}[40];
25845 0         0 $text = $_[1];
25846 0         0 my $_savetext;
25847 0         0 @item = (q{sysfun});
25848 0         0 %item = (__RULE__ => q{sysfun});
25849 0         0 my $repcount = 0;
25850              
25851              
25852 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/RIGHT/i]}, Parse::RecDescent::_tracefirst($text),
25853             q{sysfun},
25854             $tracelevel)
25855             if defined $::RD_TRACE;
25856 0         0 $lastsep = "";
25857 0         0 $expectation->is(q{})->at($text);
25858              
25859              
25860 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:RIGHT)//i)
  0 0       0  
25861             {
25862              
25863 0         0 $expectation->failed();
25864 0 0       0 Parse::RecDescent::_trace(q{<>},
25865             Parse::RecDescent::_tracefirst($text))
25866             if defined $::RD_TRACE;
25867              
25868 0         0 last;
25869             }
25870 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25871             . $& . q{])},
25872             Parse::RecDescent::_tracefirst($text))
25873             if defined $::RD_TRACE;
25874 0         0 push @item, $item{__PATTERN1__}=$&;
25875              
25876              
25877              
25878 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/RIGHT/i]<<},
25879             Parse::RecDescent::_tracefirst($text),
25880             q{sysfun},
25881             $tracelevel)
25882             if defined $::RD_TRACE;
25883 0         0 $_matched = 1;
25884 0         0 last;
25885             }
25886              
25887              
25888 0   0     0 while (!$_matched && !$commit)
25889             {
25890              
25891 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ROUND/i]},
25892             Parse::RecDescent::_tracefirst($_[1]),
25893             q{sysfun},
25894             $tracelevel)
25895             if defined $::RD_TRACE;
25896 0         0 my $thisprod = $thisrule->{"prods"}[41];
25897 0         0 $text = $_[1];
25898 0         0 my $_savetext;
25899 0         0 @item = (q{sysfun});
25900 0         0 %item = (__RULE__ => q{sysfun});
25901 0         0 my $repcount = 0;
25902              
25903              
25904 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ROUND/i]}, Parse::RecDescent::_tracefirst($text),
25905             q{sysfun},
25906             $tracelevel)
25907             if defined $::RD_TRACE;
25908 0         0 $lastsep = "";
25909 0         0 $expectation->is(q{})->at($text);
25910              
25911              
25912 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ROUND)//i)
  0 0       0  
25913             {
25914              
25915 0         0 $expectation->failed();
25916 0 0       0 Parse::RecDescent::_trace(q{<>},
25917             Parse::RecDescent::_tracefirst($text))
25918             if defined $::RD_TRACE;
25919              
25920 0         0 last;
25921             }
25922 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25923             . $& . q{])},
25924             Parse::RecDescent::_tracefirst($text))
25925             if defined $::RD_TRACE;
25926 0         0 push @item, $item{__PATTERN1__}=$&;
25927              
25928              
25929              
25930 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ROUND/i]<<},
25931             Parse::RecDescent::_tracefirst($text),
25932             q{sysfun},
25933             $tracelevel)
25934             if defined $::RD_TRACE;
25935 0         0 $_matched = 1;
25936 0         0 last;
25937             }
25938              
25939              
25940 0   0     0 while (!$_matched && !$commit)
25941             {
25942              
25943 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/RTRIM/ I]},
25944             Parse::RecDescent::_tracefirst($_[1]),
25945             q{sysfun},
25946             $tracelevel)
25947             if defined $::RD_TRACE;
25948 0         0 my $thisprod = $thisrule->{"prods"}[42];
25949 0         0 $text = $_[1];
25950 0         0 my $_savetext;
25951 0         0 @item = (q{sysfun});
25952 0         0 %item = (__RULE__ => q{sysfun});
25953 0         0 my $repcount = 0;
25954              
25955              
25956 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/RTRIM/]}, Parse::RecDescent::_tracefirst($text),
25957             q{sysfun},
25958             $tracelevel)
25959             if defined $::RD_TRACE;
25960 0         0 $lastsep = "";
25961 0         0 $expectation->is(q{})->at($text);
25962              
25963              
25964 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:RTRIM)//)
  0 0       0  
25965             {
25966              
25967 0         0 $expectation->failed();
25968 0 0       0 Parse::RecDescent::_trace(q{<>},
25969             Parse::RecDescent::_tracefirst($text))
25970             if defined $::RD_TRACE;
25971              
25972 0         0 last;
25973             }
25974 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25975             . $& . q{])},
25976             Parse::RecDescent::_tracefirst($text))
25977             if defined $::RD_TRACE;
25978 0         0 push @item, $item{__PATTERN1__}=$&;
25979              
25980              
25981 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [I]},
25982             Parse::RecDescent::_tracefirst($text),
25983             q{sysfun},
25984             $tracelevel)
25985             if defined $::RD_TRACE;
25986 1     1   20 if (1) { no strict qw{refs};
  1         2  
  1         2990  
  0         0  
25987 0         0 $expectation->is(q{I})->at($text);
25988 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::I($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
25989             {
25990              
25991 0 0       0 Parse::RecDescent::_trace(q{<>},
25992             Parse::RecDescent::_tracefirst($text),
25993             q{sysfun},
25994             $tracelevel)
25995             if defined $::RD_TRACE;
25996 0         0 $expectation->failed();
25997 0         0 last;
25998             }
25999 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [I]<< (return value: [}
26000             . $_tok . q{]},
26001              
26002             Parse::RecDescent::_tracefirst($text),
26003             q{sysfun},
26004             $tracelevel)
26005             if defined $::RD_TRACE;
26006 0         0 $item{q{I}} = $_tok;
26007 0         0 push @item, $_tok;
26008              
26009             }
26010              
26011              
26012 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/RTRIM/ I]<<},
26013             Parse::RecDescent::_tracefirst($text),
26014             q{sysfun},
26015             $tracelevel)
26016             if defined $::RD_TRACE;
26017 0         0 $_matched = 1;
26018 0         0 last;
26019             }
26020              
26021              
26022 0   0     0 while (!$_matched && !$commit)
26023             {
26024              
26025 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SIGN/i]},
26026             Parse::RecDescent::_tracefirst($_[1]),
26027             q{sysfun},
26028             $tracelevel)
26029             if defined $::RD_TRACE;
26030 0         0 my $thisprod = $thisrule->{"prods"}[43];
26031 0         0 $text = $_[1];
26032 0         0 my $_savetext;
26033 0         0 @item = (q{sysfun});
26034 0         0 %item = (__RULE__ => q{sysfun});
26035 0         0 my $repcount = 0;
26036              
26037              
26038 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SIGN/i]}, Parse::RecDescent::_tracefirst($text),
26039             q{sysfun},
26040             $tracelevel)
26041             if defined $::RD_TRACE;
26042 0         0 $lastsep = "";
26043 0         0 $expectation->is(q{})->at($text);
26044              
26045              
26046 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SIGN)//i)
  0 0       0  
26047             {
26048              
26049 0         0 $expectation->failed();
26050 0 0       0 Parse::RecDescent::_trace(q{<>},
26051             Parse::RecDescent::_tracefirst($text))
26052             if defined $::RD_TRACE;
26053              
26054 0         0 last;
26055             }
26056 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26057             . $& . q{])},
26058             Parse::RecDescent::_tracefirst($text))
26059             if defined $::RD_TRACE;
26060 0         0 push @item, $item{__PATTERN1__}=$&;
26061              
26062              
26063              
26064 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SIGN/i]<<},
26065             Parse::RecDescent::_tracefirst($text),
26066             q{sysfun},
26067             $tracelevel)
26068             if defined $::RD_TRACE;
26069 0         0 $_matched = 1;
26070 0         0 last;
26071             }
26072              
26073              
26074 0   0     0 while (!$_matched && !$commit)
26075             {
26076              
26077 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SIN/i]},
26078             Parse::RecDescent::_tracefirst($_[1]),
26079             q{sysfun},
26080             $tracelevel)
26081             if defined $::RD_TRACE;
26082 0         0 my $thisprod = $thisrule->{"prods"}[44];
26083 0         0 $text = $_[1];
26084 0         0 my $_savetext;
26085 0         0 @item = (q{sysfun});
26086 0         0 %item = (__RULE__ => q{sysfun});
26087 0         0 my $repcount = 0;
26088              
26089              
26090 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SIN/i]}, Parse::RecDescent::_tracefirst($text),
26091             q{sysfun},
26092             $tracelevel)
26093             if defined $::RD_TRACE;
26094 0         0 $lastsep = "";
26095 0         0 $expectation->is(q{})->at($text);
26096              
26097              
26098 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SIN)//i)
  0 0       0  
26099             {
26100              
26101 0         0 $expectation->failed();
26102 0 0       0 Parse::RecDescent::_trace(q{<>},
26103             Parse::RecDescent::_tracefirst($text))
26104             if defined $::RD_TRACE;
26105              
26106 0         0 last;
26107             }
26108 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26109             . $& . q{])},
26110             Parse::RecDescent::_tracefirst($text))
26111             if defined $::RD_TRACE;
26112 0         0 push @item, $item{__PATTERN1__}=$&;
26113              
26114              
26115              
26116 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SIN/i]<<},
26117             Parse::RecDescent::_tracefirst($text),
26118             q{sysfun},
26119             $tracelevel)
26120             if defined $::RD_TRACE;
26121 0         0 $_matched = 1;
26122 0         0 last;
26123             }
26124              
26125              
26126 0   0     0 while (!$_matched && !$commit)
26127             {
26128              
26129 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SOUNDEX/i]},
26130             Parse::RecDescent::_tracefirst($_[1]),
26131             q{sysfun},
26132             $tracelevel)
26133             if defined $::RD_TRACE;
26134 0         0 my $thisprod = $thisrule->{"prods"}[45];
26135 0         0 $text = $_[1];
26136 0         0 my $_savetext;
26137 0         0 @item = (q{sysfun});
26138 0         0 %item = (__RULE__ => q{sysfun});
26139 0         0 my $repcount = 0;
26140              
26141              
26142 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SOUNDEX/i]}, Parse::RecDescent::_tracefirst($text),
26143             q{sysfun},
26144             $tracelevel)
26145             if defined $::RD_TRACE;
26146 0         0 $lastsep = "";
26147 0         0 $expectation->is(q{})->at($text);
26148              
26149              
26150 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SOUNDEX)//i)
  0 0       0  
26151             {
26152              
26153 0         0 $expectation->failed();
26154 0 0       0 Parse::RecDescent::_trace(q{<>},
26155             Parse::RecDescent::_tracefirst($text))
26156             if defined $::RD_TRACE;
26157              
26158 0         0 last;
26159             }
26160 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26161             . $& . q{])},
26162             Parse::RecDescent::_tracefirst($text))
26163             if defined $::RD_TRACE;
26164 0         0 push @item, $item{__PATTERN1__}=$&;
26165              
26166              
26167              
26168 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SOUNDEX/i]<<},
26169             Parse::RecDescent::_tracefirst($text),
26170             q{sysfun},
26171             $tracelevel)
26172             if defined $::RD_TRACE;
26173 0         0 $_matched = 1;
26174 0         0 last;
26175             }
26176              
26177              
26178 0   0     0 while (!$_matched && !$commit)
26179             {
26180              
26181 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SPACE/i]},
26182             Parse::RecDescent::_tracefirst($_[1]),
26183             q{sysfun},
26184             $tracelevel)
26185             if defined $::RD_TRACE;
26186 0         0 my $thisprod = $thisrule->{"prods"}[46];
26187 0         0 $text = $_[1];
26188 0         0 my $_savetext;
26189 0         0 @item = (q{sysfun});
26190 0         0 %item = (__RULE__ => q{sysfun});
26191 0         0 my $repcount = 0;
26192              
26193              
26194 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SPACE/i]}, Parse::RecDescent::_tracefirst($text),
26195             q{sysfun},
26196             $tracelevel)
26197             if defined $::RD_TRACE;
26198 0         0 $lastsep = "";
26199 0         0 $expectation->is(q{})->at($text);
26200              
26201              
26202 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SPACE)//i)
  0 0       0  
26203             {
26204              
26205 0         0 $expectation->failed();
26206 0 0       0 Parse::RecDescent::_trace(q{<>},
26207             Parse::RecDescent::_tracefirst($text))
26208             if defined $::RD_TRACE;
26209              
26210 0         0 last;
26211             }
26212 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26213             . $& . q{])},
26214             Parse::RecDescent::_tracefirst($text))
26215             if defined $::RD_TRACE;
26216 0         0 push @item, $item{__PATTERN1__}=$&;
26217              
26218              
26219              
26220 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SPACE/i]<<},
26221             Parse::RecDescent::_tracefirst($text),
26222             q{sysfun},
26223             $tracelevel)
26224             if defined $::RD_TRACE;
26225 0         0 $_matched = 1;
26226 0         0 last;
26227             }
26228              
26229              
26230 0   0     0 while (!$_matched && !$commit)
26231             {
26232              
26233 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SQLCACHE_SNAPSHOT/i]},
26234             Parse::RecDescent::_tracefirst($_[1]),
26235             q{sysfun},
26236             $tracelevel)
26237             if defined $::RD_TRACE;
26238 0         0 my $thisprod = $thisrule->{"prods"}[47];
26239 0         0 $text = $_[1];
26240 0         0 my $_savetext;
26241 0         0 @item = (q{sysfun});
26242 0         0 %item = (__RULE__ => q{sysfun});
26243 0         0 my $repcount = 0;
26244              
26245              
26246 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SQLCACHE_SNAPSHOT/i]}, Parse::RecDescent::_tracefirst($text),
26247             q{sysfun},
26248             $tracelevel)
26249             if defined $::RD_TRACE;
26250 0         0 $lastsep = "";
26251 0         0 $expectation->is(q{})->at($text);
26252              
26253              
26254 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SQLCACHE_SNAPSHOT)//i)
  0 0       0  
26255             {
26256              
26257 0         0 $expectation->failed();
26258 0 0       0 Parse::RecDescent::_trace(q{<>},
26259             Parse::RecDescent::_tracefirst($text))
26260             if defined $::RD_TRACE;
26261              
26262 0         0 last;
26263             }
26264 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26265             . $& . q{])},
26266             Parse::RecDescent::_tracefirst($text))
26267             if defined $::RD_TRACE;
26268 0         0 push @item, $item{__PATTERN1__}=$&;
26269              
26270              
26271              
26272 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SQLCACHE_SNAPSHOT/i]<<},
26273             Parse::RecDescent::_tracefirst($text),
26274             q{sysfun},
26275             $tracelevel)
26276             if defined $::RD_TRACE;
26277 0         0 $_matched = 1;
26278 0         0 last;
26279             }
26280              
26281              
26282 0   0     0 while (!$_matched && !$commit)
26283             {
26284              
26285 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SQRT/i]},
26286             Parse::RecDescent::_tracefirst($_[1]),
26287             q{sysfun},
26288             $tracelevel)
26289             if defined $::RD_TRACE;
26290 0         0 my $thisprod = $thisrule->{"prods"}[48];
26291 0         0 $text = $_[1];
26292 0         0 my $_savetext;
26293 0         0 @item = (q{sysfun});
26294 0         0 %item = (__RULE__ => q{sysfun});
26295 0         0 my $repcount = 0;
26296              
26297              
26298 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SQRT/i]}, Parse::RecDescent::_tracefirst($text),
26299             q{sysfun},
26300             $tracelevel)
26301             if defined $::RD_TRACE;
26302 0         0 $lastsep = "";
26303 0         0 $expectation->is(q{})->at($text);
26304              
26305              
26306 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SQRT)//i)
  0 0       0  
26307             {
26308              
26309 0         0 $expectation->failed();
26310 0 0       0 Parse::RecDescent::_trace(q{<>},
26311             Parse::RecDescent::_tracefirst($text))
26312             if defined $::RD_TRACE;
26313              
26314 0         0 last;
26315             }
26316 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26317             . $& . q{])},
26318             Parse::RecDescent::_tracefirst($text))
26319             if defined $::RD_TRACE;
26320 0         0 push @item, $item{__PATTERN1__}=$&;
26321              
26322              
26323              
26324 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SQRT/i]<<},
26325             Parse::RecDescent::_tracefirst($text),
26326             q{sysfun},
26327             $tracelevel)
26328             if defined $::RD_TRACE;
26329 0         0 $_matched = 1;
26330 0         0 last;
26331             }
26332              
26333              
26334 0   0     0 while (!$_matched && !$commit)
26335             {
26336              
26337 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TAN/i]},
26338             Parse::RecDescent::_tracefirst($_[1]),
26339             q{sysfun},
26340             $tracelevel)
26341             if defined $::RD_TRACE;
26342 0         0 my $thisprod = $thisrule->{"prods"}[49];
26343 0         0 $text = $_[1];
26344 0         0 my $_savetext;
26345 0         0 @item = (q{sysfun});
26346 0         0 %item = (__RULE__ => q{sysfun});
26347 0         0 my $repcount = 0;
26348              
26349              
26350 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TAN/i]}, Parse::RecDescent::_tracefirst($text),
26351             q{sysfun},
26352             $tracelevel)
26353             if defined $::RD_TRACE;
26354 0         0 $lastsep = "";
26355 0         0 $expectation->is(q{})->at($text);
26356              
26357              
26358 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TAN)//i)
  0 0       0  
26359             {
26360              
26361 0         0 $expectation->failed();
26362 0 0       0 Parse::RecDescent::_trace(q{<>},
26363             Parse::RecDescent::_tracefirst($text))
26364             if defined $::RD_TRACE;
26365              
26366 0         0 last;
26367             }
26368 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26369             . $& . q{])},
26370             Parse::RecDescent::_tracefirst($text))
26371             if defined $::RD_TRACE;
26372 0         0 push @item, $item{__PATTERN1__}=$&;
26373              
26374              
26375              
26376 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TAN/i]<<},
26377             Parse::RecDescent::_tracefirst($text),
26378             q{sysfun},
26379             $tracelevel)
26380             if defined $::RD_TRACE;
26381 0         0 $_matched = 1;
26382 0         0 last;
26383             }
26384              
26385              
26386 0   0     0 while (!$_matched && !$commit)
26387             {
26388              
26389 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TIMESTAMP_ISO/i]},
26390             Parse::RecDescent::_tracefirst($_[1]),
26391             q{sysfun},
26392             $tracelevel)
26393             if defined $::RD_TRACE;
26394 0         0 my $thisprod = $thisrule->{"prods"}[50];
26395 0         0 $text = $_[1];
26396 0         0 my $_savetext;
26397 0         0 @item = (q{sysfun});
26398 0         0 %item = (__RULE__ => q{sysfun});
26399 0         0 my $repcount = 0;
26400              
26401              
26402 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TIMESTAMP_ISO/i]}, Parse::RecDescent::_tracefirst($text),
26403             q{sysfun},
26404             $tracelevel)
26405             if defined $::RD_TRACE;
26406 0         0 $lastsep = "";
26407 0         0 $expectation->is(q{})->at($text);
26408              
26409              
26410 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TIMESTAMP_ISO)//i)
  0 0       0  
26411             {
26412              
26413 0         0 $expectation->failed();
26414 0 0       0 Parse::RecDescent::_trace(q{<>},
26415             Parse::RecDescent::_tracefirst($text))
26416             if defined $::RD_TRACE;
26417              
26418 0         0 last;
26419             }
26420 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26421             . $& . q{])},
26422             Parse::RecDescent::_tracefirst($text))
26423             if defined $::RD_TRACE;
26424 0         0 push @item, $item{__PATTERN1__}=$&;
26425              
26426              
26427              
26428 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TIMESTAMP_ISO/i]<<},
26429             Parse::RecDescent::_tracefirst($text),
26430             q{sysfun},
26431             $tracelevel)
26432             if defined $::RD_TRACE;
26433 0         0 $_matched = 1;
26434 0         0 last;
26435             }
26436              
26437              
26438 0   0     0 while (!$_matched && !$commit)
26439             {
26440              
26441 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TIMESTAMPDIFF/i]},
26442             Parse::RecDescent::_tracefirst($_[1]),
26443             q{sysfun},
26444             $tracelevel)
26445             if defined $::RD_TRACE;
26446 0         0 my $thisprod = $thisrule->{"prods"}[51];
26447 0         0 $text = $_[1];
26448 0         0 my $_savetext;
26449 0         0 @item = (q{sysfun});
26450 0         0 %item = (__RULE__ => q{sysfun});
26451 0         0 my $repcount = 0;
26452              
26453              
26454 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TIMESTAMPDIFF/i]}, Parse::RecDescent::_tracefirst($text),
26455             q{sysfun},
26456             $tracelevel)
26457             if defined $::RD_TRACE;
26458 0         0 $lastsep = "";
26459 0         0 $expectation->is(q{})->at($text);
26460              
26461              
26462 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TIMESTAMPDIFF)//i)
  0 0       0  
26463             {
26464              
26465 0         0 $expectation->failed();
26466 0 0       0 Parse::RecDescent::_trace(q{<>},
26467             Parse::RecDescent::_tracefirst($text))
26468             if defined $::RD_TRACE;
26469              
26470 0         0 last;
26471             }
26472 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26473             . $& . q{])},
26474             Parse::RecDescent::_tracefirst($text))
26475             if defined $::RD_TRACE;
26476 0         0 push @item, $item{__PATTERN1__}=$&;
26477              
26478              
26479              
26480 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TIMESTAMPDIFF/i]<<},
26481             Parse::RecDescent::_tracefirst($text),
26482             q{sysfun},
26483             $tracelevel)
26484             if defined $::RD_TRACE;
26485 0         0 $_matched = 1;
26486 0         0 last;
26487             }
26488              
26489              
26490 0   0     0 while (!$_matched && !$commit)
26491             {
26492              
26493 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TRUNCATE/i, or /TRUNC/i]},
26494             Parse::RecDescent::_tracefirst($_[1]),
26495             q{sysfun},
26496             $tracelevel)
26497             if defined $::RD_TRACE;
26498 0         0 my $thisprod = $thisrule->{"prods"}[52];
26499 0         0 $text = $_[1];
26500 0         0 my $_savetext;
26501 0         0 @item = (q{sysfun});
26502 0         0 %item = (__RULE__ => q{sysfun});
26503 0         0 my $repcount = 0;
26504              
26505              
26506 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_53_of_rule_sysfun]},
26507             Parse::RecDescent::_tracefirst($text),
26508             q{sysfun},
26509             $tracelevel)
26510             if defined $::RD_TRACE;
26511 1     1   13 if (1) { no strict qw{refs};
  1         3  
  1         2145  
  0         0  
26512 0         0 $expectation->is(q{})->at($text);
26513 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_53_of_rule_sysfun($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
26514             {
26515              
26516 0 0       0 Parse::RecDescent::_trace(q{<>},
26517             Parse::RecDescent::_tracefirst($text),
26518             q{sysfun},
26519             $tracelevel)
26520             if defined $::RD_TRACE;
26521 0         0 $expectation->failed();
26522 0         0 last;
26523             }
26524 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_53_of_rule_sysfun]<< (return value: [}
26525             . $_tok . q{]},
26526              
26527             Parse::RecDescent::_tracefirst($text),
26528             q{sysfun},
26529             $tracelevel)
26530             if defined $::RD_TRACE;
26531 0         0 $item{q{_alternation_1_of_production_53_of_rule_sysfun}} = $_tok;
26532 0         0 push @item, $_tok;
26533              
26534             }
26535              
26536              
26537 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TRUNCATE/i, or /TRUNC/i]<<},
26538             Parse::RecDescent::_tracefirst($text),
26539             q{sysfun},
26540             $tracelevel)
26541             if defined $::RD_TRACE;
26542 0         0 $_matched = 1;
26543 0         0 last;
26544             }
26545              
26546              
26547 0   0     0 while (!$_matched && !$commit)
26548             {
26549              
26550 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/UCASE/i]},
26551             Parse::RecDescent::_tracefirst($_[1]),
26552             q{sysfun},
26553             $tracelevel)
26554             if defined $::RD_TRACE;
26555 0         0 my $thisprod = $thisrule->{"prods"}[53];
26556 0         0 $text = $_[1];
26557 0         0 my $_savetext;
26558 0         0 @item = (q{sysfun});
26559 0         0 %item = (__RULE__ => q{sysfun});
26560 0         0 my $repcount = 0;
26561              
26562              
26563 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/UCASE/i]}, Parse::RecDescent::_tracefirst($text),
26564             q{sysfun},
26565             $tracelevel)
26566             if defined $::RD_TRACE;
26567 0         0 $lastsep = "";
26568 0         0 $expectation->is(q{})->at($text);
26569              
26570              
26571 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:UCASE)//i)
  0 0       0  
26572             {
26573              
26574 0         0 $expectation->failed();
26575 0 0       0 Parse::RecDescent::_trace(q{<>},
26576             Parse::RecDescent::_tracefirst($text))
26577             if defined $::RD_TRACE;
26578              
26579 0         0 last;
26580             }
26581 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26582             . $& . q{])},
26583             Parse::RecDescent::_tracefirst($text))
26584             if defined $::RD_TRACE;
26585 0         0 push @item, $item{__PATTERN1__}=$&;
26586              
26587              
26588              
26589 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/UCASE/i]<<},
26590             Parse::RecDescent::_tracefirst($text),
26591             q{sysfun},
26592             $tracelevel)
26593             if defined $::RD_TRACE;
26594 0         0 $_matched = 1;
26595 0         0 last;
26596             }
26597              
26598              
26599 0   0     0 while (!$_matched && !$commit)
26600             {
26601              
26602 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/WEEK/i]},
26603             Parse::RecDescent::_tracefirst($_[1]),
26604             q{sysfun},
26605             $tracelevel)
26606             if defined $::RD_TRACE;
26607 0         0 my $thisprod = $thisrule->{"prods"}[54];
26608 0         0 $text = $_[1];
26609 0         0 my $_savetext;
26610 0         0 @item = (q{sysfun});
26611 0         0 %item = (__RULE__ => q{sysfun});
26612 0         0 my $repcount = 0;
26613              
26614              
26615 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/WEEK/i]}, Parse::RecDescent::_tracefirst($text),
26616             q{sysfun},
26617             $tracelevel)
26618             if defined $::RD_TRACE;
26619 0         0 $lastsep = "";
26620 0         0 $expectation->is(q{})->at($text);
26621              
26622              
26623 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:WEEK)//i)
  0 0       0  
26624             {
26625              
26626 0         0 $expectation->failed();
26627 0 0       0 Parse::RecDescent::_trace(q{<>},
26628             Parse::RecDescent::_tracefirst($text))
26629             if defined $::RD_TRACE;
26630              
26631 0         0 last;
26632             }
26633 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26634             . $& . q{])},
26635             Parse::RecDescent::_tracefirst($text))
26636             if defined $::RD_TRACE;
26637 0         0 push @item, $item{__PATTERN1__}=$&;
26638              
26639              
26640              
26641 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/WEEK/i]<<},
26642             Parse::RecDescent::_tracefirst($text),
26643             q{sysfun},
26644             $tracelevel)
26645             if defined $::RD_TRACE;
26646 0         0 $_matched = 1;
26647 0         0 last;
26648             }
26649              
26650              
26651 0   0     0 while (!$_matched && !$commit)
26652             {
26653              
26654 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/WEEK_ISO/i]},
26655             Parse::RecDescent::_tracefirst($_[1]),
26656             q{sysfun},
26657             $tracelevel)
26658             if defined $::RD_TRACE;
26659 0         0 my $thisprod = $thisrule->{"prods"}[55];
26660 0         0 $text = $_[1];
26661 0         0 my $_savetext;
26662 0         0 @item = (q{sysfun});
26663 0         0 %item = (__RULE__ => q{sysfun});
26664 0         0 my $repcount = 0;
26665              
26666              
26667 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/WEEK_ISO/i]}, Parse::RecDescent::_tracefirst($text),
26668             q{sysfun},
26669             $tracelevel)
26670             if defined $::RD_TRACE;
26671 0         0 $lastsep = "";
26672 0         0 $expectation->is(q{})->at($text);
26673              
26674              
26675 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:WEEK_ISO)//i)
  0 0       0  
26676             {
26677              
26678 0         0 $expectation->failed();
26679 0 0       0 Parse::RecDescent::_trace(q{<>},
26680             Parse::RecDescent::_tracefirst($text))
26681             if defined $::RD_TRACE;
26682              
26683 0         0 last;
26684             }
26685 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26686             . $& . q{])},
26687             Parse::RecDescent::_tracefirst($text))
26688             if defined $::RD_TRACE;
26689 0         0 push @item, $item{__PATTERN1__}=$&;
26690              
26691              
26692              
26693 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/WEEK_ISO/i]<<},
26694             Parse::RecDescent::_tracefirst($text),
26695             q{sysfun},
26696             $tracelevel)
26697             if defined $::RD_TRACE;
26698 0         0 $_matched = 1;
26699 0         0 last;
26700             }
26701              
26702              
26703 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
26704             {
26705              
26706              
26707 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
26708 0 0       0 Parse::RecDescent::_trace(q{<>},
26709             Parse::RecDescent::_tracefirst($_[1]),
26710             q{sysfun},
26711             $tracelevel)
26712             if defined $::RD_TRACE;
26713 0         0 return undef;
26714             }
26715 0 0 0     0 if (!defined($return) && defined($score))
26716             {
26717 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
26718             q{sysfun},
26719             $tracelevel)
26720             if defined $::RD_TRACE;
26721 0         0 $return = $score_return;
26722             }
26723 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
26724 0 0       0 $return = $item[$#item] unless defined $return;
26725 0 0       0 if (defined $::RD_TRACE)
26726             {
26727 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
26728             $return . q{])}, "",
26729             q{sysfun},
26730             $tracelevel);
26731 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
26732             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
26733             Parse::RecDescent::_tracefirst($text),
26734             , q{sysfun},
26735             $tracelevel)
26736             }
26737 0         0 $_[1] = $text;
26738 0         0 return $return;
26739             }
26740              
26741             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
26742             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond
26743             {
26744 0     0   0 my $thisparser = $_[0];
26745 1     1   11 use vars q{$tracelevel};
  1         2  
  1         417  
26746 0   0     0 local $tracelevel = ($tracelevel||0)+1;
26747 0         0 $ERRORS = 0;
26748 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond"};
26749              
26750 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond]},
26751             Parse::RecDescent::_tracefirst($_[1]),
26752             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26753             $tracelevel)
26754             if defined $::RD_TRACE;
26755              
26756              
26757 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
26758              
26759 0         0 my $score;
26760             my $score_return;
26761 0         0 my $_tok;
26762 0         0 my $return = undef;
26763 0         0 my $_matched=0;
26764 0         0 my $commit=0;
26765 0         0 my @item = ();
26766 0         0 my %item = ();
26767 0   0     0 my $repeating = defined($_[2]) && $_[2];
26768 0   0     0 my $_noactions = defined($_[3]) && $_[3];
26769 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
26770 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
26771 0         0 my $text;
26772 0         0 my $lastsep="";
26773 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
26774 0         0 $expectation->at($_[1]);
26775              
26776 0         0 my $thisline;
26777 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
26778              
26779              
26780              
26781 0   0     0 while (!$_matched && !$commit)
26782             {
26783              
26784 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SELECTIVITY/i numeric_constant]},
26785             Parse::RecDescent::_tracefirst($_[1]),
26786             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26787             $tracelevel)
26788             if defined $::RD_TRACE;
26789 0         0 my $thisprod = $thisrule->{"prods"}[0];
26790 0         0 $text = $_[1];
26791 0         0 my $_savetext;
26792 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond});
26793 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond});
26794 0         0 my $repcount = 0;
26795              
26796              
26797 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SELECTIVITY/i]}, Parse::RecDescent::_tracefirst($text),
26798             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26799             $tracelevel)
26800             if defined $::RD_TRACE;
26801 0         0 $lastsep = "";
26802 0         0 $expectation->is(q{})->at($text);
26803              
26804              
26805 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SELECTIVITY)//i)
  0 0       0  
26806             {
26807              
26808 0         0 $expectation->failed();
26809 0 0       0 Parse::RecDescent::_trace(q{<>},
26810             Parse::RecDescent::_tracefirst($text))
26811             if defined $::RD_TRACE;
26812              
26813 0         0 last;
26814             }
26815 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26816             . $& . q{])},
26817             Parse::RecDescent::_tracefirst($text))
26818             if defined $::RD_TRACE;
26819 0         0 push @item, $item{__PATTERN1__}=$&;
26820              
26821              
26822 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [numeric_constant]},
26823             Parse::RecDescent::_tracefirst($text),
26824             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26825             $tracelevel)
26826             if defined $::RD_TRACE;
26827 1     1   8 if (1) { no strict qw{refs};
  1         3  
  1         416  
  0         0  
26828 0         0 $expectation->is(q{numeric_constant})->at($text);
26829 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
26830             {
26831              
26832 0 0       0 Parse::RecDescent::_trace(q{<>},
26833             Parse::RecDescent::_tracefirst($text),
26834             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26835             $tracelevel)
26836             if defined $::RD_TRACE;
26837 0         0 $expectation->failed();
26838 0         0 last;
26839             }
26840 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [numeric_constant]<< (return value: [}
26841             . $_tok . q{]},
26842              
26843             Parse::RecDescent::_tracefirst($text),
26844             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26845             $tracelevel)
26846             if defined $::RD_TRACE;
26847 0         0 $item{q{numeric_constant}} = $_tok;
26848 0         0 push @item, $_tok;
26849              
26850             }
26851              
26852              
26853 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SELECTIVITY/i numeric_constant]<<},
26854             Parse::RecDescent::_tracefirst($text),
26855             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26856             $tracelevel)
26857             if defined $::RD_TRACE;
26858 0         0 $_matched = 1;
26859 0         0 last;
26860             }
26861              
26862              
26863 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
26864             {
26865              
26866              
26867 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
26868 0 0       0 Parse::RecDescent::_trace(q{<>},
26869             Parse::RecDescent::_tracefirst($_[1]),
26870             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26871             $tracelevel)
26872             if defined $::RD_TRACE;
26873 0         0 return undef;
26874             }
26875 0 0 0     0 if (!defined($return) && defined($score))
26876             {
26877 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
26878             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26879             $tracelevel)
26880             if defined $::RD_TRACE;
26881 0         0 $return = $score_return;
26882             }
26883 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
26884 0 0       0 $return = $item[$#item] unless defined $return;
26885 0 0       0 if (defined $::RD_TRACE)
26886             {
26887 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
26888             $return . q{])}, "",
26889             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26890             $tracelevel);
26891 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
26892             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
26893             Parse::RecDescent::_tracefirst($text),
26894             , q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26895             $tracelevel)
26896             }
26897 0         0 $_[1] = $text;
26898 0         0 return $return;
26899             }
26900              
26901             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
26902             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME
26903             {
26904 0     0   0 my $thisparser = $_[0];
26905 1     1   9 use vars q{$tracelevel};
  1         3  
  1         879  
26906 0   0     0 local $tracelevel = ($tracelevel||0)+1;
26907 0         0 $ERRORS = 0;
26908 0         0 my $thisrule = $thisparser->{"rules"}{"NAME"};
26909              
26910 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [NAME]},
26911             Parse::RecDescent::_tracefirst($_[1]),
26912             q{NAME},
26913             $tracelevel)
26914             if defined $::RD_TRACE;
26915              
26916              
26917 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
26918              
26919 0         0 my $score;
26920             my $score_return;
26921 0         0 my $_tok;
26922 0         0 my $return = undef;
26923 0         0 my $_matched=0;
26924 0         0 my $commit=0;
26925 0         0 my @item = ();
26926 0         0 my %item = ();
26927 0   0     0 my $repeating = defined($_[2]) && $_[2];
26928 0   0     0 my $_noactions = defined($_[3]) && $_[3];
26929 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
26930 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
26931 0         0 my $text;
26932 0         0 my $lastsep="";
26933 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
26934 0         0 $expectation->at($_[1]);
26935              
26936 0         0 my $thisline;
26937 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
26938              
26939              
26940              
26941 0   0     0 while (!$_matched && !$commit)
26942             {
26943              
26944 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/\\w+/]},
26945             Parse::RecDescent::_tracefirst($_[1]),
26946             q{NAME},
26947             $tracelevel)
26948             if defined $::RD_TRACE;
26949 0         0 my $thisprod = $thisrule->{"prods"}[0];
26950 0         0 $text = $_[1];
26951 0         0 my $_savetext;
26952 0         0 @item = (q{NAME});
26953 0         0 %item = (__RULE__ => q{NAME});
26954 0         0 my $repcount = 0;
26955              
26956              
26957 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/\\w+/]}, Parse::RecDescent::_tracefirst($text),
26958             q{NAME},
26959             $tracelevel)
26960             if defined $::RD_TRACE;
26961 0         0 $lastsep = "";
26962 0         0 $expectation->is(q{})->at($text);
26963              
26964              
26965 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:\w+)//)
  0 0       0  
26966             {
26967              
26968 0         0 $expectation->failed();
26969 0 0       0 Parse::RecDescent::_trace(q{<>},
26970             Parse::RecDescent::_tracefirst($text))
26971             if defined $::RD_TRACE;
26972              
26973 0         0 last;
26974             }
26975 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26976             . $& . q{])},
26977             Parse::RecDescent::_tracefirst($text))
26978             if defined $::RD_TRACE;
26979 0         0 push @item, $item{__PATTERN1__}=$&;
26980              
26981              
26982              
26983 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/\\w+/]<<},
26984             Parse::RecDescent::_tracefirst($text),
26985             q{NAME},
26986             $tracelevel)
26987             if defined $::RD_TRACE;
26988 0         0 $_matched = 1;
26989 0         0 last;
26990             }
26991              
26992              
26993 0   0     0 while (!$_matched && !$commit)
26994             {
26995              
26996 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/\\w\{1,18\}/]},
26997             Parse::RecDescent::_tracefirst($_[1]),
26998             q{NAME},
26999             $tracelevel)
27000             if defined $::RD_TRACE;
27001 0         0 my $thisprod = $thisrule->{"prods"}[1];
27002 0         0 $text = $_[1];
27003 0         0 my $_savetext;
27004 0         0 @item = (q{NAME});
27005 0         0 %item = (__RULE__ => q{NAME});
27006 0         0 my $repcount = 0;
27007              
27008              
27009 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/\\w\{1,18\}/]}, Parse::RecDescent::_tracefirst($text),
27010             q{NAME},
27011             $tracelevel)
27012             if defined $::RD_TRACE;
27013 0         0 $lastsep = "";
27014 0         0 $expectation->is(q{})->at($text);
27015              
27016              
27017 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:\w{1,18})//)
  0 0       0  
27018             {
27019              
27020 0         0 $expectation->failed();
27021 0 0       0 Parse::RecDescent::_trace(q{<>},
27022             Parse::RecDescent::_tracefirst($text))
27023             if defined $::RD_TRACE;
27024              
27025 0         0 last;
27026             }
27027 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27028             . $& . q{])},
27029             Parse::RecDescent::_tracefirst($text))
27030             if defined $::RD_TRACE;
27031 0         0 push @item, $item{__PATTERN1__}=$&;
27032              
27033              
27034              
27035 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/\\w\{1,18\}/]<<},
27036             Parse::RecDescent::_tracefirst($text),
27037             q{NAME},
27038             $tracelevel)
27039             if defined $::RD_TRACE;
27040 0         0 $_matched = 1;
27041 0         0 last;
27042             }
27043              
27044              
27045 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
27046             {
27047              
27048              
27049 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
27050 0 0       0 Parse::RecDescent::_trace(q{<>},
27051             Parse::RecDescent::_tracefirst($_[1]),
27052             q{NAME},
27053             $tracelevel)
27054             if defined $::RD_TRACE;
27055 0         0 return undef;
27056             }
27057 0 0 0     0 if (!defined($return) && defined($score))
27058             {
27059 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
27060             q{NAME},
27061             $tracelevel)
27062             if defined $::RD_TRACE;
27063 0         0 $return = $score_return;
27064             }
27065 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
27066 0 0       0 $return = $item[$#item] unless defined $return;
27067 0 0       0 if (defined $::RD_TRACE)
27068             {
27069 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
27070             $return . q{])}, "",
27071             q{NAME},
27072             $tracelevel);
27073 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
27074             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
27075             Parse::RecDescent::_tracefirst($text),
27076             , q{NAME},
27077             $tracelevel)
27078             }
27079 0         0 $_[1] = $text;
27080 0         0 return $return;
27081             }
27082              
27083             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27084             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant
27085             {
27086 0     0   0 my $thisparser = $_[0];
27087 1     1   8 use vars q{$tracelevel};
  1         3  
  1         249  
27088 0   0     0 local $tracelevel = ($tracelevel||0)+1;
27089 0         0 $ERRORS = 0;
27090 0         0 my $thisrule = $thisparser->{"rules"}{"constant"};
27091              
27092 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [constant]},
27093             Parse::RecDescent::_tracefirst($_[1]),
27094             q{constant},
27095             $tracelevel)
27096             if defined $::RD_TRACE;
27097              
27098              
27099 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
27100              
27101 0         0 my $score;
27102             my $score_return;
27103 0         0 my $_tok;
27104 0         0 my $return = undef;
27105 0         0 my $_matched=0;
27106 0         0 my $commit=0;
27107 0         0 my @item = ();
27108 0         0 my %item = ();
27109 0   0     0 my $repeating = defined($_[2]) && $_[2];
27110 0   0     0 my $_noactions = defined($_[3]) && $_[3];
27111 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
27112 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
27113 0         0 my $text;
27114 0         0 my $lastsep="";
27115 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27116 0         0 $expectation->at($_[1]);
27117              
27118 0         0 my $thisline;
27119 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27120              
27121              
27122              
27123 0   0     0 while (!$_matched && !$commit)
27124             {
27125              
27126 0 0       0 Parse::RecDescent::_trace(q{Trying production: [int_const]},
27127             Parse::RecDescent::_tracefirst($_[1]),
27128             q{constant},
27129             $tracelevel)
27130             if defined $::RD_TRACE;
27131 0         0 my $thisprod = $thisrule->{"prods"}[0];
27132 0         0 $text = $_[1];
27133 0         0 my $_savetext;
27134 0         0 @item = (q{constant});
27135 0         0 %item = (__RULE__ => q{constant});
27136 0         0 my $repcount = 0;
27137              
27138              
27139 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [int_const]},
27140             Parse::RecDescent::_tracefirst($text),
27141             q{constant},
27142             $tracelevel)
27143             if defined $::RD_TRACE;
27144 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         240  
  0         0  
27145 0         0 $expectation->is(q{})->at($text);
27146 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::int_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
27147             {
27148              
27149 0 0       0 Parse::RecDescent::_trace(q{<>},
27150             Parse::RecDescent::_tracefirst($text),
27151             q{constant},
27152             $tracelevel)
27153             if defined $::RD_TRACE;
27154 0         0 $expectation->failed();
27155 0         0 last;
27156             }
27157 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [int_const]<< (return value: [}
27158             . $_tok . q{]},
27159              
27160             Parse::RecDescent::_tracefirst($text),
27161             q{constant},
27162             $tracelevel)
27163             if defined $::RD_TRACE;
27164 0         0 $item{q{int_const}} = $_tok;
27165 0         0 push @item, $_tok;
27166              
27167             }
27168              
27169              
27170 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [int_const]<<},
27171             Parse::RecDescent::_tracefirst($text),
27172             q{constant},
27173             $tracelevel)
27174             if defined $::RD_TRACE;
27175 0         0 $_matched = 1;
27176 0         0 last;
27177             }
27178              
27179              
27180 0   0     0 while (!$_matched && !$commit)
27181             {
27182              
27183 0 0       0 Parse::RecDescent::_trace(q{Trying production: [float_const]},
27184             Parse::RecDescent::_tracefirst($_[1]),
27185             q{constant},
27186             $tracelevel)
27187             if defined $::RD_TRACE;
27188 0         0 my $thisprod = $thisrule->{"prods"}[1];
27189 0         0 $text = $_[1];
27190 0         0 my $_savetext;
27191 0         0 @item = (q{constant});
27192 0         0 %item = (__RULE__ => q{constant});
27193 0         0 my $repcount = 0;
27194              
27195              
27196 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [float_const]},
27197             Parse::RecDescent::_tracefirst($text),
27198             q{constant},
27199             $tracelevel)
27200             if defined $::RD_TRACE;
27201 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         243  
  0         0  
27202 0         0 $expectation->is(q{})->at($text);
27203 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::float_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
27204             {
27205              
27206 0 0       0 Parse::RecDescent::_trace(q{<>},
27207             Parse::RecDescent::_tracefirst($text),
27208             q{constant},
27209             $tracelevel)
27210             if defined $::RD_TRACE;
27211 0         0 $expectation->failed();
27212 0         0 last;
27213             }
27214 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [float_const]<< (return value: [}
27215             . $_tok . q{]},
27216              
27217             Parse::RecDescent::_tracefirst($text),
27218             q{constant},
27219             $tracelevel)
27220             if defined $::RD_TRACE;
27221 0         0 $item{q{float_const}} = $_tok;
27222 0         0 push @item, $_tok;
27223              
27224             }
27225              
27226              
27227 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [float_const]<<},
27228             Parse::RecDescent::_tracefirst($text),
27229             q{constant},
27230             $tracelevel)
27231             if defined $::RD_TRACE;
27232 0         0 $_matched = 1;
27233 0         0 last;
27234             }
27235              
27236              
27237 0   0     0 while (!$_matched && !$commit)
27238             {
27239              
27240 0 0       0 Parse::RecDescent::_trace(q{Trying production: [dec_const]},
27241             Parse::RecDescent::_tracefirst($_[1]),
27242             q{constant},
27243             $tracelevel)
27244             if defined $::RD_TRACE;
27245 0         0 my $thisprod = $thisrule->{"prods"}[2];
27246 0         0 $text = $_[1];
27247 0         0 my $_savetext;
27248 0         0 @item = (q{constant});
27249 0         0 %item = (__RULE__ => q{constant});
27250 0         0 my $repcount = 0;
27251              
27252              
27253 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [dec_const]},
27254             Parse::RecDescent::_tracefirst($text),
27255             q{constant},
27256             $tracelevel)
27257             if defined $::RD_TRACE;
27258 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         234  
  0         0  
27259 0         0 $expectation->is(q{})->at($text);
27260 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::dec_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
27261             {
27262              
27263 0 0       0 Parse::RecDescent::_trace(q{<>},
27264             Parse::RecDescent::_tracefirst($text),
27265             q{constant},
27266             $tracelevel)
27267             if defined $::RD_TRACE;
27268 0         0 $expectation->failed();
27269 0         0 last;
27270             }
27271 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [dec_const]<< (return value: [}
27272             . $_tok . q{]},
27273              
27274             Parse::RecDescent::_tracefirst($text),
27275             q{constant},
27276             $tracelevel)
27277             if defined $::RD_TRACE;
27278 0         0 $item{q{dec_const}} = $_tok;
27279 0         0 push @item, $_tok;
27280              
27281             }
27282              
27283              
27284 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [dec_const]<<},
27285             Parse::RecDescent::_tracefirst($text),
27286             q{constant},
27287             $tracelevel)
27288             if defined $::RD_TRACE;
27289 0         0 $_matched = 1;
27290 0         0 last;
27291             }
27292              
27293              
27294 0   0     0 while (!$_matched && !$commit)
27295             {
27296              
27297 0 0       0 Parse::RecDescent::_trace(q{Trying production: [char_const]},
27298             Parse::RecDescent::_tracefirst($_[1]),
27299             q{constant},
27300             $tracelevel)
27301             if defined $::RD_TRACE;
27302 0         0 my $thisprod = $thisrule->{"prods"}[3];
27303 0         0 $text = $_[1];
27304 0         0 my $_savetext;
27305 0         0 @item = (q{constant});
27306 0         0 %item = (__RULE__ => q{constant});
27307 0         0 my $repcount = 0;
27308              
27309              
27310 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [char_const]},
27311             Parse::RecDescent::_tracefirst($text),
27312             q{constant},
27313             $tracelevel)
27314             if defined $::RD_TRACE;
27315 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         243  
  0         0  
27316 0         0 $expectation->is(q{})->at($text);
27317 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::char_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
27318             {
27319              
27320 0 0       0 Parse::RecDescent::_trace(q{<>},
27321             Parse::RecDescent::_tracefirst($text),
27322             q{constant},
27323             $tracelevel)
27324             if defined $::RD_TRACE;
27325 0         0 $expectation->failed();
27326 0         0 last;
27327             }
27328 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [char_const]<< (return value: [}
27329             . $_tok . q{]},
27330              
27331             Parse::RecDescent::_tracefirst($text),
27332             q{constant},
27333             $tracelevel)
27334             if defined $::RD_TRACE;
27335 0         0 $item{q{char_const}} = $_tok;
27336 0         0 push @item, $_tok;
27337              
27338             }
27339              
27340              
27341 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [char_const]<<},
27342             Parse::RecDescent::_tracefirst($text),
27343             q{constant},
27344             $tracelevel)
27345             if defined $::RD_TRACE;
27346 0         0 $_matched = 1;
27347 0         0 last;
27348             }
27349              
27350              
27351 0   0     0 while (!$_matched && !$commit)
27352             {
27353              
27354 0 0       0 Parse::RecDescent::_trace(q{Trying production: [hex_const]},
27355             Parse::RecDescent::_tracefirst($_[1]),
27356             q{constant},
27357             $tracelevel)
27358             if defined $::RD_TRACE;
27359 0         0 my $thisprod = $thisrule->{"prods"}[4];
27360 0         0 $text = $_[1];
27361 0         0 my $_savetext;
27362 0         0 @item = (q{constant});
27363 0         0 %item = (__RULE__ => q{constant});
27364 0         0 my $repcount = 0;
27365              
27366              
27367 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [hex_const]},
27368             Parse::RecDescent::_tracefirst($text),
27369             q{constant},
27370             $tracelevel)
27371             if defined $::RD_TRACE;
27372 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         283  
  0         0  
27373 0         0 $expectation->is(q{})->at($text);
27374 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::hex_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
27375             {
27376              
27377 0 0       0 Parse::RecDescent::_trace(q{<>},
27378             Parse::RecDescent::_tracefirst($text),
27379             q{constant},
27380             $tracelevel)
27381             if defined $::RD_TRACE;
27382 0         0 $expectation->failed();
27383 0         0 last;
27384             }
27385 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [hex_const]<< (return value: [}
27386             . $_tok . q{]},
27387              
27388             Parse::RecDescent::_tracefirst($text),
27389             q{constant},
27390             $tracelevel)
27391             if defined $::RD_TRACE;
27392 0         0 $item{q{hex_const}} = $_tok;
27393 0         0 push @item, $_tok;
27394              
27395             }
27396              
27397              
27398 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [hex_const]<<},
27399             Parse::RecDescent::_tracefirst($text),
27400             q{constant},
27401             $tracelevel)
27402             if defined $::RD_TRACE;
27403 0         0 $_matched = 1;
27404 0         0 last;
27405             }
27406              
27407              
27408 0   0     0 while (!$_matched && !$commit)
27409             {
27410              
27411 0 0       0 Parse::RecDescent::_trace(q{Trying production: [grastr_const]},
27412             Parse::RecDescent::_tracefirst($_[1]),
27413             q{constant},
27414             $tracelevel)
27415             if defined $::RD_TRACE;
27416 0         0 my $thisprod = $thisrule->{"prods"}[5];
27417 0         0 $text = $_[1];
27418 0         0 my $_savetext;
27419 0         0 @item = (q{constant});
27420 0         0 %item = (__RULE__ => q{constant});
27421 0         0 my $repcount = 0;
27422              
27423              
27424 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [grastr_const]},
27425             Parse::RecDescent::_tracefirst($text),
27426             q{constant},
27427             $tracelevel)
27428             if defined $::RD_TRACE;
27429 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         470  
  0         0  
27430 0         0 $expectation->is(q{})->at($text);
27431 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::grastr_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
27432             {
27433              
27434 0 0       0 Parse::RecDescent::_trace(q{<>},
27435             Parse::RecDescent::_tracefirst($text),
27436             q{constant},
27437             $tracelevel)
27438             if defined $::RD_TRACE;
27439 0         0 $expectation->failed();
27440 0         0 last;
27441             }
27442 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [grastr_const]<< (return value: [}
27443             . $_tok . q{]},
27444              
27445             Parse::RecDescent::_tracefirst($text),
27446             q{constant},
27447             $tracelevel)
27448             if defined $::RD_TRACE;
27449 0         0 $item{q{grastr_const}} = $_tok;
27450 0         0 push @item, $_tok;
27451              
27452             }
27453              
27454              
27455 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [grastr_const]<<},
27456             Parse::RecDescent::_tracefirst($text),
27457             q{constant},
27458             $tracelevel)
27459             if defined $::RD_TRACE;
27460 0         0 $_matched = 1;
27461 0         0 last;
27462             }
27463              
27464              
27465 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
27466             {
27467              
27468              
27469 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
27470 0 0       0 Parse::RecDescent::_trace(q{<>},
27471             Parse::RecDescent::_tracefirst($_[1]),
27472             q{constant},
27473             $tracelevel)
27474             if defined $::RD_TRACE;
27475 0         0 return undef;
27476             }
27477 0 0 0     0 if (!defined($return) && defined($score))
27478             {
27479 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
27480             q{constant},
27481             $tracelevel)
27482             if defined $::RD_TRACE;
27483 0         0 $return = $score_return;
27484             }
27485 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
27486 0 0       0 $return = $item[$#item] unless defined $return;
27487 0 0       0 if (defined $::RD_TRACE)
27488             {
27489 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
27490             $return . q{])}, "",
27491             q{constant},
27492             $tracelevel);
27493 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
27494             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
27495             Parse::RecDescent::_tracefirst($text),
27496             , q{constant},
27497             $tracelevel)
27498             }
27499 0         0 $_[1] = $text;
27500 0         0 return $return;
27501             }
27502              
27503             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27504             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_ranking_function
27505             {
27506 0     0   0 my $thisparser = $_[0];
27507 1     1   7 use vars q{$tracelevel};
  1         2  
  1         1093  
27508 0   0     0 local $tracelevel = ($tracelevel||0)+1;
27509 0         0 $ERRORS = 0;
27510 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_ranking_function"};
27511              
27512 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_ranking_function]},
27513             Parse::RecDescent::_tracefirst($_[1]),
27514             q{_alternation_1_of_production_1_of_rule_ranking_function},
27515             $tracelevel)
27516             if defined $::RD_TRACE;
27517              
27518              
27519 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
27520              
27521 0         0 my $score;
27522             my $score_return;
27523 0         0 my $_tok;
27524 0         0 my $return = undef;
27525 0         0 my $_matched=0;
27526 0         0 my $commit=0;
27527 0         0 my @item = ();
27528 0         0 my %item = ();
27529 0   0     0 my $repeating = defined($_[2]) && $_[2];
27530 0   0     0 my $_noactions = defined($_[3]) && $_[3];
27531 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
27532 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
27533 0         0 my $text;
27534 0         0 my $lastsep="";
27535 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27536 0         0 $expectation->at($_[1]);
27537              
27538 0         0 my $thisline;
27539 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27540              
27541              
27542              
27543 0   0     0 while (!$_matched && !$commit)
27544             {
27545              
27546 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/RANK/ '()']},
27547             Parse::RecDescent::_tracefirst($_[1]),
27548             q{_alternation_1_of_production_1_of_rule_ranking_function},
27549             $tracelevel)
27550             if defined $::RD_TRACE;
27551 0         0 my $thisprod = $thisrule->{"prods"}[0];
27552 0         0 $text = $_[1];
27553 0         0 my $_savetext;
27554 0         0 @item = (q{_alternation_1_of_production_1_of_rule_ranking_function});
27555 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_ranking_function});
27556 0         0 my $repcount = 0;
27557              
27558              
27559 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/RANK/]}, Parse::RecDescent::_tracefirst($text),
27560             q{_alternation_1_of_production_1_of_rule_ranking_function},
27561             $tracelevel)
27562             if defined $::RD_TRACE;
27563 0         0 $lastsep = "";
27564 0         0 $expectation->is(q{})->at($text);
27565              
27566              
27567 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:RANK)//)
  0 0       0  
27568             {
27569              
27570 0         0 $expectation->failed();
27571 0 0       0 Parse::RecDescent::_trace(q{<>},
27572             Parse::RecDescent::_tracefirst($text))
27573             if defined $::RD_TRACE;
27574              
27575 0         0 last;
27576             }
27577 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27578             . $& . q{])},
27579             Parse::RecDescent::_tracefirst($text))
27580             if defined $::RD_TRACE;
27581 0         0 push @item, $item{__PATTERN1__}=$&;
27582              
27583              
27584 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['()']},
27585             Parse::RecDescent::_tracefirst($text),
27586             q{_alternation_1_of_production_1_of_rule_ranking_function},
27587             $tracelevel)
27588             if defined $::RD_TRACE;
27589 0         0 $lastsep = "";
27590 0         0 $expectation->is(q{'()'})->at($text);
27591              
27592              
27593 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(\)//)
  0 0       0  
27594             {
27595              
27596 0         0 $expectation->failed();
27597 0 0       0 Parse::RecDescent::_trace(qq{<>},
27598             Parse::RecDescent::_tracefirst($text))
27599             if defined $::RD_TRACE;
27600 0         0 last;
27601             }
27602 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27603             . $& . q{])},
27604             Parse::RecDescent::_tracefirst($text))
27605             if defined $::RD_TRACE;
27606 0         0 push @item, $item{__STRING1__}=$&;
27607              
27608              
27609              
27610 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/RANK/ '()']<<},
27611             Parse::RecDescent::_tracefirst($text),
27612             q{_alternation_1_of_production_1_of_rule_ranking_function},
27613             $tracelevel)
27614             if defined $::RD_TRACE;
27615 0         0 $_matched = 1;
27616 0         0 last;
27617             }
27618              
27619              
27620 0   0     0 while (!$_matched && !$commit)
27621             {
27622              
27623 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DENSE_RANK|DENSERANK/i '()']},
27624             Parse::RecDescent::_tracefirst($_[1]),
27625             q{_alternation_1_of_production_1_of_rule_ranking_function},
27626             $tracelevel)
27627             if defined $::RD_TRACE;
27628 0         0 my $thisprod = $thisrule->{"prods"}[1];
27629 0         0 $text = $_[1];
27630 0         0 my $_savetext;
27631 0         0 @item = (q{_alternation_1_of_production_1_of_rule_ranking_function});
27632 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_ranking_function});
27633 0         0 my $repcount = 0;
27634              
27635              
27636 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DENSE_RANK|DENSERANK/i]}, Parse::RecDescent::_tracefirst($text),
27637             q{_alternation_1_of_production_1_of_rule_ranking_function},
27638             $tracelevel)
27639             if defined $::RD_TRACE;
27640 0         0 $lastsep = "";
27641 0         0 $expectation->is(q{})->at($text);
27642              
27643              
27644 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DENSE_RANK|DENSERANK)//i)
  0 0       0  
27645             {
27646              
27647 0         0 $expectation->failed();
27648 0 0       0 Parse::RecDescent::_trace(q{<>},
27649             Parse::RecDescent::_tracefirst($text))
27650             if defined $::RD_TRACE;
27651              
27652 0         0 last;
27653             }
27654 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27655             . $& . q{])},
27656             Parse::RecDescent::_tracefirst($text))
27657             if defined $::RD_TRACE;
27658 0         0 push @item, $item{__PATTERN1__}=$&;
27659              
27660              
27661 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['()']},
27662             Parse::RecDescent::_tracefirst($text),
27663             q{_alternation_1_of_production_1_of_rule_ranking_function},
27664             $tracelevel)
27665             if defined $::RD_TRACE;
27666 0         0 $lastsep = "";
27667 0         0 $expectation->is(q{'()'})->at($text);
27668              
27669              
27670 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(\)//)
  0 0       0  
27671             {
27672              
27673 0         0 $expectation->failed();
27674 0 0       0 Parse::RecDescent::_trace(qq{<>},
27675             Parse::RecDescent::_tracefirst($text))
27676             if defined $::RD_TRACE;
27677 0         0 last;
27678             }
27679 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27680             . $& . q{])},
27681             Parse::RecDescent::_tracefirst($text))
27682             if defined $::RD_TRACE;
27683 0         0 push @item, $item{__STRING1__}=$&;
27684              
27685              
27686              
27687 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DENSE_RANK|DENSERANK/i '()']<<},
27688             Parse::RecDescent::_tracefirst($text),
27689             q{_alternation_1_of_production_1_of_rule_ranking_function},
27690             $tracelevel)
27691             if defined $::RD_TRACE;
27692 0         0 $_matched = 1;
27693 0         0 last;
27694             }
27695              
27696              
27697 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
27698             {
27699              
27700              
27701 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
27702 0 0       0 Parse::RecDescent::_trace(q{<>},
27703             Parse::RecDescent::_tracefirst($_[1]),
27704             q{_alternation_1_of_production_1_of_rule_ranking_function},
27705             $tracelevel)
27706             if defined $::RD_TRACE;
27707 0         0 return undef;
27708             }
27709 0 0 0     0 if (!defined($return) && defined($score))
27710             {
27711 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
27712             q{_alternation_1_of_production_1_of_rule_ranking_function},
27713             $tracelevel)
27714             if defined $::RD_TRACE;
27715 0         0 $return = $score_return;
27716             }
27717 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
27718 0 0       0 $return = $item[$#item] unless defined $return;
27719 0 0       0 if (defined $::RD_TRACE)
27720             {
27721 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
27722             $return . q{])}, "",
27723             q{_alternation_1_of_production_1_of_rule_ranking_function},
27724             $tracelevel);
27725 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
27726             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
27727             Parse::RecDescent::_tracefirst($text),
27728             , q{_alternation_1_of_production_1_of_rule_ranking_function},
27729             $tracelevel)
27730             }
27731 0         0 $_[1] = $text;
27732 0         0 return $return;
27733             }
27734              
27735             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27736             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause
27737             {
27738 0     0   0 my $thisparser = $_[0];
27739 1     1   10 use vars q{$tracelevel};
  1         2  
  1         306  
27740 0   0     0 local $tracelevel = ($tracelevel||0)+1;
27741 0         0 $ERRORS = 0;
27742 0         0 my $thisrule = $thisparser->{"rules"}{"window_aggregation_group_clause"};
27743              
27744 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [window_aggregation_group_clause]},
27745             Parse::RecDescent::_tracefirst($_[1]),
27746             q{window_aggregation_group_clause},
27747             $tracelevel)
27748             if defined $::RD_TRACE;
27749              
27750              
27751 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
27752              
27753 0         0 my $score;
27754             my $score_return;
27755 0         0 my $_tok;
27756 0         0 my $return = undef;
27757 0         0 my $_matched=0;
27758 0         0 my $commit=0;
27759 0         0 my @item = ();
27760 0         0 my %item = ();
27761 0   0     0 my $repeating = defined($_[2]) && $_[2];
27762 0   0     0 my $_noactions = defined($_[3]) && $_[3];
27763 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
27764 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
27765 0         0 my $text;
27766 0         0 my $lastsep="";
27767 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27768 0         0 $expectation->at($_[1]);
27769              
27770 0         0 my $thisline;
27771 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27772              
27773              
27774              
27775 0   0     0 while (!$_matched && !$commit)
27776             {
27777              
27778 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ROWS/i, or /RANGE/i group_start, or group_between, or group_end]},
27779             Parse::RecDescent::_tracefirst($_[1]),
27780             q{window_aggregation_group_clause},
27781             $tracelevel)
27782             if defined $::RD_TRACE;
27783 0         0 my $thisprod = $thisrule->{"prods"}[0];
27784 0         0 $text = $_[1];
27785 0         0 my $_savetext;
27786 0         0 @item = (q{window_aggregation_group_clause});
27787 0         0 %item = (__RULE__ => q{window_aggregation_group_clause});
27788 0         0 my $repcount = 0;
27789              
27790              
27791 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]},
27792             Parse::RecDescent::_tracefirst($text),
27793             q{window_aggregation_group_clause},
27794             $tracelevel)
27795             if defined $::RD_TRACE;
27796 1     1   8 if (1) { no strict qw{refs};
  1         4  
  1         139  
  0         0  
27797 0         0 $expectation->is(q{})->at($text);
27798 0 0   0   0 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 })))
  0         0  
27799             {
27800              
27801 0 0       0 Parse::RecDescent::_trace(q{<>},
27802             Parse::RecDescent::_tracefirst($text),
27803             q{window_aggregation_group_clause},
27804             $tracelevel)
27805             if defined $::RD_TRACE;
27806 0         0 $expectation->failed();
27807 0         0 last;
27808             }
27809 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]<< (return value: [}
27810             . $_tok . q{]},
27811              
27812             Parse::RecDescent::_tracefirst($text),
27813             q{window_aggregation_group_clause},
27814             $tracelevel)
27815             if defined $::RD_TRACE;
27816 0         0 $item{q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}} = $_tok;
27817 0         0 push @item, $_tok;
27818              
27819             }
27820              
27821 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]},
27822             Parse::RecDescent::_tracefirst($text),
27823             q{window_aggregation_group_clause},
27824             $tracelevel)
27825             if defined $::RD_TRACE;
27826 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         390  
  0         0  
27827 0         0 $expectation->is(q{group_start, or group_between, or group_end})->at($text);
27828 0 0   0   0 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 })))
  0         0  
27829             {
27830              
27831 0 0       0 Parse::RecDescent::_trace(q{<>},
27832             Parse::RecDescent::_tracefirst($text),
27833             q{window_aggregation_group_clause},
27834             $tracelevel)
27835             if defined $::RD_TRACE;
27836 0         0 $expectation->failed();
27837 0         0 last;
27838             }
27839 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]<< (return value: [}
27840             . $_tok . q{]},
27841              
27842             Parse::RecDescent::_tracefirst($text),
27843             q{window_aggregation_group_clause},
27844             $tracelevel)
27845             if defined $::RD_TRACE;
27846 0         0 $item{q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}} = $_tok;
27847 0         0 push @item, $_tok;
27848              
27849             }
27850              
27851              
27852 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ROWS/i, or /RANGE/i group_start, or group_between, or group_end]<<},
27853             Parse::RecDescent::_tracefirst($text),
27854             q{window_aggregation_group_clause},
27855             $tracelevel)
27856             if defined $::RD_TRACE;
27857 0         0 $_matched = 1;
27858 0         0 last;
27859             }
27860              
27861              
27862 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
27863             {
27864              
27865              
27866 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
27867 0 0       0 Parse::RecDescent::_trace(q{<>},
27868             Parse::RecDescent::_tracefirst($_[1]),
27869             q{window_aggregation_group_clause},
27870             $tracelevel)
27871             if defined $::RD_TRACE;
27872 0         0 return undef;
27873             }
27874 0 0 0     0 if (!defined($return) && defined($score))
27875             {
27876 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
27877             q{window_aggregation_group_clause},
27878             $tracelevel)
27879             if defined $::RD_TRACE;
27880 0         0 $return = $score_return;
27881             }
27882 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
27883 0 0       0 $return = $item[$#item] unless defined $return;
27884 0 0       0 if (defined $::RD_TRACE)
27885             {
27886 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
27887             $return . q{])}, "",
27888             q{window_aggregation_group_clause},
27889             $tracelevel);
27890 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
27891             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
27892             Parse::RecDescent::_tracefirst($text),
27893             , q{window_aggregation_group_clause},
27894             $tracelevel)
27895             }
27896 0         0 $_[1] = $text;
27897 0         0 return $return;
27898             }
27899              
27900             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27901             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_window_aggregation_group_clause
27902             {
27903 0     0   0 my $thisparser = $_[0];
27904 1     1   9 use vars q{$tracelevel};
  1         2  
  1         273  
27905 0   0     0 local $tracelevel = ($tracelevel||0)+1;
27906 0         0 $ERRORS = 0;
27907 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_window_aggregation_group_clause"};
27908              
27909 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]},
27910             Parse::RecDescent::_tracefirst($_[1]),
27911             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27912             $tracelevel)
27913             if defined $::RD_TRACE;
27914              
27915              
27916 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
27917              
27918 0         0 my $score;
27919             my $score_return;
27920 0         0 my $_tok;
27921 0         0 my $return = undef;
27922 0         0 my $_matched=0;
27923 0         0 my $commit=0;
27924 0         0 my @item = ();
27925 0         0 my %item = ();
27926 0   0     0 my $repeating = defined($_[2]) && $_[2];
27927 0   0     0 my $_noactions = defined($_[3]) && $_[3];
27928 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
27929 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
27930 0         0 my $text;
27931 0         0 my $lastsep="";
27932 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27933 0         0 $expectation->at($_[1]);
27934              
27935 0         0 my $thisline;
27936 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27937              
27938              
27939              
27940 0   0     0 while (!$_matched && !$commit)
27941             {
27942              
27943 0 0       0 Parse::RecDescent::_trace(q{Trying production: [group_start]},
27944             Parse::RecDescent::_tracefirst($_[1]),
27945             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27946             $tracelevel)
27947             if defined $::RD_TRACE;
27948 0         0 my $thisprod = $thisrule->{"prods"}[0];
27949 0         0 $text = $_[1];
27950 0         0 my $_savetext;
27951 0         0 @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
27952 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
27953 0         0 my $repcount = 0;
27954              
27955              
27956 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [group_start]},
27957             Parse::RecDescent::_tracefirst($text),
27958             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27959             $tracelevel)
27960             if defined $::RD_TRACE;
27961 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         251  
  0         0  
27962 0         0 $expectation->is(q{})->at($text);
27963 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_start($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
27964             {
27965              
27966 0 0       0 Parse::RecDescent::_trace(q{<>},
27967             Parse::RecDescent::_tracefirst($text),
27968             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27969             $tracelevel)
27970             if defined $::RD_TRACE;
27971 0         0 $expectation->failed();
27972 0         0 last;
27973             }
27974 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [group_start]<< (return value: [}
27975             . $_tok . q{]},
27976              
27977             Parse::RecDescent::_tracefirst($text),
27978             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27979             $tracelevel)
27980             if defined $::RD_TRACE;
27981 0         0 $item{q{group_start}} = $_tok;
27982 0         0 push @item, $_tok;
27983              
27984             }
27985              
27986              
27987 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [group_start]<<},
27988             Parse::RecDescent::_tracefirst($text),
27989             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27990             $tracelevel)
27991             if defined $::RD_TRACE;
27992 0         0 $_matched = 1;
27993 0         0 last;
27994             }
27995              
27996              
27997 0   0     0 while (!$_matched && !$commit)
27998             {
27999              
28000 0 0       0 Parse::RecDescent::_trace(q{Trying production: [group_between]},
28001             Parse::RecDescent::_tracefirst($_[1]),
28002             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28003             $tracelevel)
28004             if defined $::RD_TRACE;
28005 0         0 my $thisprod = $thisrule->{"prods"}[1];
28006 0         0 $text = $_[1];
28007 0         0 my $_savetext;
28008 0         0 @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
28009 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
28010 0         0 my $repcount = 0;
28011              
28012              
28013 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [group_between]},
28014             Parse::RecDescent::_tracefirst($text),
28015             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28016             $tracelevel)
28017             if defined $::RD_TRACE;
28018 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         231  
  0         0  
28019 0         0 $expectation->is(q{})->at($text);
28020 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_between($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
28021             {
28022              
28023 0 0       0 Parse::RecDescent::_trace(q{<>},
28024             Parse::RecDescent::_tracefirst($text),
28025             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28026             $tracelevel)
28027             if defined $::RD_TRACE;
28028 0         0 $expectation->failed();
28029 0         0 last;
28030             }
28031 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [group_between]<< (return value: [}
28032             . $_tok . q{]},
28033              
28034             Parse::RecDescent::_tracefirst($text),
28035             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28036             $tracelevel)
28037             if defined $::RD_TRACE;
28038 0         0 $item{q{group_between}} = $_tok;
28039 0         0 push @item, $_tok;
28040              
28041             }
28042              
28043              
28044 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [group_between]<<},
28045             Parse::RecDescent::_tracefirst($text),
28046             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28047             $tracelevel)
28048             if defined $::RD_TRACE;
28049 0         0 $_matched = 1;
28050 0         0 last;
28051             }
28052              
28053              
28054 0   0     0 while (!$_matched && !$commit)
28055             {
28056              
28057 0 0       0 Parse::RecDescent::_trace(q{Trying production: [group_end]},
28058             Parse::RecDescent::_tracefirst($_[1]),
28059             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28060             $tracelevel)
28061             if defined $::RD_TRACE;
28062 0         0 my $thisprod = $thisrule->{"prods"}[2];
28063 0         0 $text = $_[1];
28064 0         0 my $_savetext;
28065 0         0 @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
28066 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
28067 0         0 my $repcount = 0;
28068              
28069              
28070 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [group_end]},
28071             Parse::RecDescent::_tracefirst($text),
28072             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28073             $tracelevel)
28074             if defined $::RD_TRACE;
28075 1     1   7 if (1) { no strict qw{refs};
  1         10  
  1         366  
  0         0  
28076 0         0 $expectation->is(q{})->at($text);
28077 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_end($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
28078             {
28079              
28080 0 0       0 Parse::RecDescent::_trace(q{<>},
28081             Parse::RecDescent::_tracefirst($text),
28082             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28083             $tracelevel)
28084             if defined $::RD_TRACE;
28085 0         0 $expectation->failed();
28086 0         0 last;
28087             }
28088 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [group_end]<< (return value: [}
28089             . $_tok . q{]},
28090              
28091             Parse::RecDescent::_tracefirst($text),
28092             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28093             $tracelevel)
28094             if defined $::RD_TRACE;
28095 0         0 $item{q{group_end}} = $_tok;
28096 0         0 push @item, $_tok;
28097              
28098             }
28099              
28100              
28101 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [group_end]<<},
28102             Parse::RecDescent::_tracefirst($text),
28103             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28104             $tracelevel)
28105             if defined $::RD_TRACE;
28106 0         0 $_matched = 1;
28107 0         0 last;
28108             }
28109              
28110              
28111 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
28112             {
28113              
28114              
28115 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
28116 0 0       0 Parse::RecDescent::_trace(q{<>},
28117             Parse::RecDescent::_tracefirst($_[1]),
28118             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28119             $tracelevel)
28120             if defined $::RD_TRACE;
28121 0         0 return undef;
28122             }
28123 0 0 0     0 if (!defined($return) && defined($score))
28124             {
28125 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
28126             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28127             $tracelevel)
28128             if defined $::RD_TRACE;
28129 0         0 $return = $score_return;
28130             }
28131 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
28132 0 0       0 $return = $item[$#item] unless defined $return;
28133 0 0       0 if (defined $::RD_TRACE)
28134             {
28135 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
28136             $return . q{])}, "",
28137             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28138             $tracelevel);
28139 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
28140             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
28141             Parse::RecDescent::_tracefirst($text),
28142             , q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28143             $tracelevel)
28144             }
28145 0         0 $_[1] = $text;
28146 0         0 return $return;
28147             }
28148              
28149             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28150             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::VIEW
28151             {
28152 0     0   0 my $thisparser = $_[0];
28153 1     1   8 use vars q{$tracelevel};
  1         3  
  1         651  
28154 0   0     0 local $tracelevel = ($tracelevel||0)+1;
28155 0         0 $ERRORS = 0;
28156 0         0 my $thisrule = $thisparser->{"rules"}{"VIEW"};
28157              
28158 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [VIEW]},
28159             Parse::RecDescent::_tracefirst($_[1]),
28160             q{VIEW},
28161             $tracelevel)
28162             if defined $::RD_TRACE;
28163              
28164              
28165 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
28166              
28167 0         0 my $score;
28168             my $score_return;
28169 0         0 my $_tok;
28170 0         0 my $return = undef;
28171 0         0 my $_matched=0;
28172 0         0 my $commit=0;
28173 0         0 my @item = ();
28174 0         0 my %item = ();
28175 0   0     0 my $repeating = defined($_[2]) && $_[2];
28176 0   0     0 my $_noactions = defined($_[3]) && $_[3];
28177 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
28178 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
28179 0         0 my $text;
28180 0         0 my $lastsep="";
28181 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28182 0         0 $expectation->at($_[1]);
28183              
28184 0         0 my $thisline;
28185 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28186              
28187              
28188              
28189 0   0     0 while (!$_matched && !$commit)
28190             {
28191              
28192 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/view/i]},
28193             Parse::RecDescent::_tracefirst($_[1]),
28194             q{VIEW},
28195             $tracelevel)
28196             if defined $::RD_TRACE;
28197 0         0 my $thisprod = $thisrule->{"prods"}[0];
28198 0         0 $text = $_[1];
28199 0         0 my $_savetext;
28200 0         0 @item = (q{VIEW});
28201 0         0 %item = (__RULE__ => q{VIEW});
28202 0         0 my $repcount = 0;
28203              
28204              
28205 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/view/i]}, Parse::RecDescent::_tracefirst($text),
28206             q{VIEW},
28207             $tracelevel)
28208             if defined $::RD_TRACE;
28209 0         0 $lastsep = "";
28210 0         0 $expectation->is(q{})->at($text);
28211              
28212              
28213 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:view)//i)
  0 0       0  
28214             {
28215              
28216 0         0 $expectation->failed();
28217 0 0       0 Parse::RecDescent::_trace(q{<>},
28218             Parse::RecDescent::_tracefirst($text))
28219             if defined $::RD_TRACE;
28220              
28221 0         0 last;
28222             }
28223 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28224             . $& . q{])},
28225             Parse::RecDescent::_tracefirst($text))
28226             if defined $::RD_TRACE;
28227 0         0 push @item, $item{__PATTERN1__}=$&;
28228              
28229              
28230              
28231 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/view/i]<<},
28232             Parse::RecDescent::_tracefirst($text),
28233             q{VIEW},
28234             $tracelevel)
28235             if defined $::RD_TRACE;
28236 0         0 $_matched = 1;
28237 0         0 last;
28238             }
28239              
28240              
28241 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
28242             {
28243              
28244              
28245 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
28246 0 0       0 Parse::RecDescent::_trace(q{<>},
28247             Parse::RecDescent::_tracefirst($_[1]),
28248             q{VIEW},
28249             $tracelevel)
28250             if defined $::RD_TRACE;
28251 0         0 return undef;
28252             }
28253 0 0 0     0 if (!defined($return) && defined($score))
28254             {
28255 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
28256             q{VIEW},
28257             $tracelevel)
28258             if defined $::RD_TRACE;
28259 0         0 $return = $score_return;
28260             }
28261 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
28262 0 0       0 $return = $item[$#item] unless defined $return;
28263 0 0       0 if (defined $::RD_TRACE)
28264             {
28265 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
28266             $return . q{])}, "",
28267             q{VIEW},
28268             $tracelevel);
28269 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
28270             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
28271             Parse::RecDescent::_tracefirst($text),
28272             , q{VIEW},
28273             $tracelevel)
28274             }
28275 0         0 $_[1] = $text;
28276 0         0 return $return;
28277             }
28278              
28279             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28280             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::with_expression
28281             {
28282 0     0   0 my $thisparser = $_[0];
28283 1     1   8 use vars q{$tracelevel};
  1         2  
  1         427  
28284 0   0     0 local $tracelevel = ($tracelevel||0)+1;
28285 0         0 $ERRORS = 0;
28286 0         0 my $thisrule = $thisparser->{"rules"}{"with_expression"};
28287              
28288 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [with_expression]},
28289             Parse::RecDescent::_tracefirst($_[1]),
28290             q{with_expression},
28291             $tracelevel)
28292             if defined $::RD_TRACE;
28293              
28294              
28295 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
28296              
28297 0         0 my $score;
28298             my $score_return;
28299 0         0 my $_tok;
28300 0         0 my $return = undef;
28301 0         0 my $_matched=0;
28302 0         0 my $commit=0;
28303 0         0 my @item = ();
28304 0         0 my %item = ();
28305 0   0     0 my $repeating = defined($_[2]) && $_[2];
28306 0   0     0 my $_noactions = defined($_[3]) && $_[3];
28307 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
28308 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
28309 0         0 my $text;
28310 0         0 my $lastsep="";
28311 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28312 0         0 $expectation->at($_[1]);
28313              
28314 0         0 my $thisline;
28315 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28316              
28317              
28318              
28319 0   0     0 while (!$_matched && !$commit)
28320             {
28321              
28322 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/WITH/i ]},
28323             Parse::RecDescent::_tracefirst($_[1]),
28324             q{with_expression},
28325             $tracelevel)
28326             if defined $::RD_TRACE;
28327 0         0 my $thisprod = $thisrule->{"prods"}[0];
28328 0         0 $text = $_[1];
28329 0         0 my $_savetext;
28330 0         0 @item = (q{with_expression});
28331 0         0 %item = (__RULE__ => q{with_expression});
28332 0         0 my $repcount = 0;
28333              
28334              
28335 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/WITH/i]}, Parse::RecDescent::_tracefirst($text),
28336             q{with_expression},
28337             $tracelevel)
28338             if defined $::RD_TRACE;
28339 0         0 $lastsep = "";
28340 0         0 $expectation->is(q{})->at($text);
28341              
28342              
28343 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:WITH)//i)
  0 0       0  
28344             {
28345              
28346 0         0 $expectation->failed();
28347 0 0       0 Parse::RecDescent::_trace(q{<>},
28348             Parse::RecDescent::_tracefirst($text))
28349             if defined $::RD_TRACE;
28350              
28351 0         0 last;
28352             }
28353 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28354             . $& . q{])},
28355             Parse::RecDescent::_tracefirst($text))
28356             if defined $::RD_TRACE;
28357 0         0 push @item, $item{__PATTERN1__}=$&;
28358              
28359              
28360 0 0       0 Parse::RecDescent::_trace(q{Trying operator: []},
28361             Parse::RecDescent::_tracefirst($text),
28362             q{with_expression},
28363             $tracelevel)
28364             if defined $::RD_TRACE;
28365 0         0 $expectation->is(q{})->at($text);
28366              
28367 0         0 $_tok = undef;
28368 0         0 OPLOOP: while (1)
28369             {
28370 0         0 $repcount = 0;
28371 0         0 my @item;
28372              
28373             # MATCH LEFTARG
28374              
28375 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [common_table_expression]},
28376             Parse::RecDescent::_tracefirst($text),
28377             q{with_expression},
28378             $tracelevel)
28379             if defined $::RD_TRACE;
28380 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         295  
  0         0  
28381 0         0 $expectation->is(q{common_table_expression})->at($text);
28382 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
28383             {
28384              
28385 0 0       0 Parse::RecDescent::_trace(q{<>},
28386             Parse::RecDescent::_tracefirst($text),
28387             q{with_expression},
28388             $tracelevel)
28389             if defined $::RD_TRACE;
28390 0         0 $expectation->failed();
28391 0         0 last;
28392             }
28393 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [common_table_expression]<< (return value: [}
28394             . $_tok . q{]},
28395              
28396             Parse::RecDescent::_tracefirst($text),
28397             q{with_expression},
28398             $tracelevel)
28399             if defined $::RD_TRACE;
28400 0         0 $item{q{common_table_expression}} = $_tok;
28401 0         0 push @item, $_tok;
28402              
28403             }
28404              
28405              
28406 0         0 $repcount++;
28407              
28408 0         0 my $savetext = $text;
28409 0         0 my $backtrack;
28410              
28411             # MATCH (OP RIGHTARG)(s)
28412 0         0 while ($repcount < 100000000)
28413             {
28414 0         0 $backtrack = 0;
28415              
28416 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
28417             q{with_expression},
28418             $tracelevel)
28419             if defined $::RD_TRACE;
28420 0         0 $lastsep = "";
28421 0         0 $expectation->is(q{/,/})->at($text);
28422              
28423              
28424 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//)
  0 0       0  
28425             {
28426              
28427 0         0 $expectation->failed();
28428 0 0       0 Parse::RecDescent::_trace(q{<>},
28429             Parse::RecDescent::_tracefirst($text))
28430             if defined $::RD_TRACE;
28431              
28432 0         0 last;
28433             }
28434 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28435             . $& . q{])},
28436             Parse::RecDescent::_tracefirst($text))
28437             if defined $::RD_TRACE;
28438 0         0 push @item, $item{__PATTERN2__}=$&;
28439              
28440              
28441 0         0 pop @item;
28442 0 0       0 if (defined $1) {push @item, $item{'common_table_expression(s)'}=$1; $backtrack=1;}
  0         0  
  0         0  
28443              
28444 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [common_table_expression]},
28445             Parse::RecDescent::_tracefirst($text),
28446             q{with_expression},
28447             $tracelevel)
28448             if defined $::RD_TRACE;
28449 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         605  
  0         0  
28450 0         0 $expectation->is(q{common_table_expression})->at($text);
28451 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
28452             {
28453              
28454 0 0       0 Parse::RecDescent::_trace(q{<>},
28455             Parse::RecDescent::_tracefirst($text),
28456             q{with_expression},
28457             $tracelevel)
28458             if defined $::RD_TRACE;
28459 0         0 $expectation->failed();
28460 0         0 last;
28461             }
28462 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [common_table_expression]<< (return value: [}
28463             . $_tok . q{]},
28464              
28465             Parse::RecDescent::_tracefirst($text),
28466             q{with_expression},
28467             $tracelevel)
28468             if defined $::RD_TRACE;
28469 0         0 $item{q{common_table_expression}} = $_tok;
28470 0         0 push @item, $_tok;
28471              
28472             }
28473              
28474 0         0 $savetext = $text;
28475 0         0 $repcount++;
28476             }
28477 0         0 $text = $savetext;
28478 0 0       0 pop @item if $backtrack;
28479              
28480 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
28481 0         0 $_tok = [ @item ];
28482 0         0 last;
28483             }
28484              
28485 0 0       0 unless ($repcount>=1)
28486             {
28487 0 0       0 Parse::RecDescent::_trace(q{<]>>},
28488             Parse::RecDescent::_tracefirst($text),
28489             q{with_expression},
28490             $tracelevel)
28491             if defined $::RD_TRACE;
28492 0         0 $expectation->failed();
28493 0         0 last;
28494             }
28495 0 0       0 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
28496 0 0       0 . qq{@{$_tok||[]}} . q{]},
28497             Parse::RecDescent::_tracefirst($text),
28498             q{with_expression},
28499             $tracelevel)
28500             if defined $::RD_TRACE;
28501              
28502 0   0     0 push @item, $item{'common_table_expression(s)'}=$_tok||[];
28503              
28504              
28505 0 0       0 Parse::RecDescent::_trace(q{Trying action},
28506             Parse::RecDescent::_tracefirst($text),
28507             q{with_expression},
28508             $tracelevel)
28509             if defined $::RD_TRACE;
28510              
28511              
28512 0 0       0 $_tok = ($_noactions) ? 0 : do {
28513 0         0 $return = $item{'common_table_expression'};
28514             };
28515 0 0       0 unless (defined $_tok)
28516             {
28517 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
28518             if defined $::RD_TRACE;
28519 0         0 last;
28520             }
28521 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
28522             . $_tok . q{])},
28523             Parse::RecDescent::_tracefirst($text))
28524             if defined $::RD_TRACE;
28525 0         0 push @item, $_tok;
28526 0         0 $item{__ACTION1__}=$_tok;
28527              
28528              
28529              
28530 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/WITH/i ]<<},
28531             Parse::RecDescent::_tracefirst($text),
28532             q{with_expression},
28533             $tracelevel)
28534             if defined $::RD_TRACE;
28535 0         0 $_matched = 1;
28536 0         0 last;
28537             }
28538              
28539              
28540 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
28541             {
28542              
28543              
28544 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
28545 0 0       0 Parse::RecDescent::_trace(q{<>},
28546             Parse::RecDescent::_tracefirst($_[1]),
28547             q{with_expression},
28548             $tracelevel)
28549             if defined $::RD_TRACE;
28550 0         0 return undef;
28551             }
28552 0 0 0     0 if (!defined($return) && defined($score))
28553             {
28554 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
28555             q{with_expression},
28556             $tracelevel)
28557             if defined $::RD_TRACE;
28558 0         0 $return = $score_return;
28559             }
28560 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
28561 0 0       0 $return = $item[$#item] unless defined $return;
28562 0 0       0 if (defined $::RD_TRACE)
28563             {
28564 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
28565             $return . q{])}, "",
28566             q{with_expression},
28567             $tracelevel);
28568 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
28569             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
28570             Parse::RecDescent::_tracefirst($text),
28571             , q{with_expression},
28572             $tracelevel)
28573             }
28574 0         0 $_[1] = $text;
28575 0         0 return $return;
28576             }
28577              
28578             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28579             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant
28580             {
28581 0     0   0 my $thisparser = $_[0];
28582 1     1   7 use vars q{$tracelevel};
  1         2  
  1         589  
28583 0   0     0 local $tracelevel = ($tracelevel||0)+1;
28584 0         0 $ERRORS = 0;
28585 0         0 my $thisrule = $thisparser->{"rules"}{"numeric_constant"};
28586              
28587 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [numeric_constant]},
28588             Parse::RecDescent::_tracefirst($_[1]),
28589             q{numeric_constant},
28590             $tracelevel)
28591             if defined $::RD_TRACE;
28592              
28593              
28594 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
28595              
28596 0         0 my $score;
28597             my $score_return;
28598 0         0 my $_tok;
28599 0         0 my $return = undef;
28600 0         0 my $_matched=0;
28601 0         0 my $commit=0;
28602 0         0 my @item = ();
28603 0         0 my %item = ();
28604 0   0     0 my $repeating = defined($_[2]) && $_[2];
28605 0   0     0 my $_noactions = defined($_[3]) && $_[3];
28606 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
28607 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
28608 0         0 my $text;
28609 0         0 my $lastsep="";
28610 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28611 0         0 $expectation->at($_[1]);
28612              
28613 0         0 my $thisline;
28614 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28615              
28616              
28617              
28618 0   0     0 while (!$_matched && !$commit)
28619             {
28620              
28621 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/\\d+/]},
28622             Parse::RecDescent::_tracefirst($_[1]),
28623             q{numeric_constant},
28624             $tracelevel)
28625             if defined $::RD_TRACE;
28626 0         0 my $thisprod = $thisrule->{"prods"}[0];
28627 0         0 $text = $_[1];
28628 0         0 my $_savetext;
28629 0         0 @item = (q{numeric_constant});
28630 0         0 %item = (__RULE__ => q{numeric_constant});
28631 0         0 my $repcount = 0;
28632              
28633              
28634 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/\\d+/]}, Parse::RecDescent::_tracefirst($text),
28635             q{numeric_constant},
28636             $tracelevel)
28637             if defined $::RD_TRACE;
28638 0         0 $lastsep = "";
28639 0         0 $expectation->is(q{})->at($text);
28640              
28641              
28642 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:\d+)//)
  0 0       0  
28643             {
28644              
28645 0         0 $expectation->failed();
28646 0 0       0 Parse::RecDescent::_trace(q{<>},
28647             Parse::RecDescent::_tracefirst($text))
28648             if defined $::RD_TRACE;
28649              
28650 0         0 last;
28651             }
28652 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28653             . $& . q{])},
28654             Parse::RecDescent::_tracefirst($text))
28655             if defined $::RD_TRACE;
28656 0         0 push @item, $item{__PATTERN1__}=$&;
28657              
28658              
28659              
28660 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/\\d+/]<<},
28661             Parse::RecDescent::_tracefirst($text),
28662             q{numeric_constant},
28663             $tracelevel)
28664             if defined $::RD_TRACE;
28665 0         0 $_matched = 1;
28666 0         0 last;
28667             }
28668              
28669              
28670 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
28671             {
28672              
28673              
28674 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
28675 0 0       0 Parse::RecDescent::_trace(q{<>},
28676             Parse::RecDescent::_tracefirst($_[1]),
28677             q{numeric_constant},
28678             $tracelevel)
28679             if defined $::RD_TRACE;
28680 0         0 return undef;
28681             }
28682 0 0 0     0 if (!defined($return) && defined($score))
28683             {
28684 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
28685             q{numeric_constant},
28686             $tracelevel)
28687             if defined $::RD_TRACE;
28688 0         0 $return = $score_return;
28689             }
28690 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
28691 0 0       0 $return = $item[$#item] unless defined $return;
28692 0 0       0 if (defined $::RD_TRACE)
28693             {
28694 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
28695             $return . q{])}, "",
28696             q{numeric_constant},
28697             $tracelevel);
28698 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
28699             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
28700             Parse::RecDescent::_tracefirst($text),
28701             , q{numeric_constant},
28702             $tracelevel)
28703             }
28704 0         0 $_[1] = $text;
28705 0         0 return $return;
28706             }
28707              
28708             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28709             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_table
28710             {
28711 0     0   0 my $thisparser = $_[0];
28712 1     1   8 use vars q{$tracelevel};
  1         2  
  1         515  
28713 0   0     0 local $tracelevel = ($tracelevel||0)+1;
28714 0         0 $ERRORS = 0;
28715 0         0 my $thisrule = $thisparser->{"rules"}{"old_new_table"};
28716              
28717 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [old_new_table]},
28718             Parse::RecDescent::_tracefirst($_[1]),
28719             q{old_new_table},
28720             $tracelevel)
28721             if defined $::RD_TRACE;
28722              
28723              
28724 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
28725              
28726 0         0 my $score;
28727             my $score_return;
28728 0         0 my $_tok;
28729 0         0 my $return = undef;
28730 0         0 my $_matched=0;
28731 0         0 my $commit=0;
28732 0         0 my @item = ();
28733 0         0 my %item = ();
28734 0   0     0 my $repeating = defined($_[2]) && $_[2];
28735 0   0     0 my $_noactions = defined($_[3]) && $_[3];
28736 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
28737 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
28738 0         0 my $text;
28739 0         0 my $lastsep="";
28740 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28741 0         0 $expectation->at($_[1]);
28742              
28743 0         0 my $thisline;
28744 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28745              
28746              
28747              
28748 0   0     0 while (!$_matched && !$commit)
28749             {
28750              
28751 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/OLD_TABLE/i /(AS)?/i identifier]},
28752             Parse::RecDescent::_tracefirst($_[1]),
28753             q{old_new_table},
28754             $tracelevel)
28755             if defined $::RD_TRACE;
28756 0         0 my $thisprod = $thisrule->{"prods"}[0];
28757 0         0 $text = $_[1];
28758 0         0 my $_savetext;
28759 0         0 @item = (q{old_new_table});
28760 0         0 %item = (__RULE__ => q{old_new_table});
28761 0         0 my $repcount = 0;
28762              
28763              
28764 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/OLD_TABLE/i]}, Parse::RecDescent::_tracefirst($text),
28765             q{old_new_table},
28766             $tracelevel)
28767             if defined $::RD_TRACE;
28768 0         0 $lastsep = "";
28769 0         0 $expectation->is(q{})->at($text);
28770              
28771              
28772 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:OLD_TABLE)//i)
  0 0       0  
28773             {
28774              
28775 0         0 $expectation->failed();
28776 0 0       0 Parse::RecDescent::_trace(q{<>},
28777             Parse::RecDescent::_tracefirst($text))
28778             if defined $::RD_TRACE;
28779              
28780 0         0 last;
28781             }
28782 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28783             . $& . q{])},
28784             Parse::RecDescent::_tracefirst($text))
28785             if defined $::RD_TRACE;
28786 0         0 push @item, $item{__PATTERN1__}=$&;
28787              
28788              
28789 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
28790             q{old_new_table},
28791             $tracelevel)
28792             if defined $::RD_TRACE;
28793 0         0 $lastsep = "";
28794 0         0 $expectation->is(q{/(AS)?/i})->at($text);
28795              
28796              
28797 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(AS)?)//i)
  0 0       0  
28798             {
28799              
28800 0         0 $expectation->failed();
28801 0 0       0 Parse::RecDescent::_trace(q{<>},
28802             Parse::RecDescent::_tracefirst($text))
28803             if defined $::RD_TRACE;
28804              
28805 0         0 last;
28806             }
28807 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28808             . $& . q{])},
28809             Parse::RecDescent::_tracefirst($text))
28810             if defined $::RD_TRACE;
28811 0         0 push @item, $item{__PATTERN2__}=$&;
28812              
28813              
28814 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
28815             Parse::RecDescent::_tracefirst($text),
28816             q{old_new_table},
28817             $tracelevel)
28818             if defined $::RD_TRACE;
28819 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         515  
  0         0  
28820 0         0 $expectation->is(q{identifier})->at($text);
28821 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
28822             {
28823              
28824 0 0       0 Parse::RecDescent::_trace(q{<>},
28825             Parse::RecDescent::_tracefirst($text),
28826             q{old_new_table},
28827             $tracelevel)
28828             if defined $::RD_TRACE;
28829 0         0 $expectation->failed();
28830 0         0 last;
28831             }
28832 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
28833             . $_tok . q{]},
28834              
28835             Parse::RecDescent::_tracefirst($text),
28836             q{old_new_table},
28837             $tracelevel)
28838             if defined $::RD_TRACE;
28839 0         0 $item{q{identifier}} = $_tok;
28840 0         0 push @item, $_tok;
28841              
28842             }
28843              
28844 0 0       0 Parse::RecDescent::_trace(q{Trying action},
28845             Parse::RecDescent::_tracefirst($text),
28846             q{old_new_table},
28847             $tracelevel)
28848             if defined $::RD_TRACE;
28849              
28850              
28851 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
  0         0  
28852 0 0       0 unless (defined $_tok)
28853             {
28854 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
28855             if defined $::RD_TRACE;
28856 0         0 last;
28857             }
28858 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
28859             . $_tok . q{])},
28860             Parse::RecDescent::_tracefirst($text))
28861             if defined $::RD_TRACE;
28862 0         0 push @item, $_tok;
28863 0         0 $item{__ACTION1__}=$_tok;
28864              
28865              
28866              
28867 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/OLD_TABLE/i /(AS)?/i identifier]<<},
28868             Parse::RecDescent::_tracefirst($text),
28869             q{old_new_table},
28870             $tracelevel)
28871             if defined $::RD_TRACE;
28872 0         0 $_matched = 1;
28873 0         0 last;
28874             }
28875              
28876              
28877 0   0     0 while (!$_matched && !$commit)
28878             {
28879              
28880 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NEW_TABLE/i /(AS)?/i identifier]},
28881             Parse::RecDescent::_tracefirst($_[1]),
28882             q{old_new_table},
28883             $tracelevel)
28884             if defined $::RD_TRACE;
28885 0         0 my $thisprod = $thisrule->{"prods"}[1];
28886 0         0 $text = $_[1];
28887 0         0 my $_savetext;
28888 0         0 @item = (q{old_new_table});
28889 0         0 %item = (__RULE__ => q{old_new_table});
28890 0         0 my $repcount = 0;
28891              
28892              
28893 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NEW_TABLE/i]}, Parse::RecDescent::_tracefirst($text),
28894             q{old_new_table},
28895             $tracelevel)
28896             if defined $::RD_TRACE;
28897 0         0 $lastsep = "";
28898 0         0 $expectation->is(q{})->at($text);
28899              
28900              
28901 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NEW_TABLE)//i)
  0 0       0  
28902             {
28903              
28904 0         0 $expectation->failed();
28905 0 0       0 Parse::RecDescent::_trace(q{<>},
28906             Parse::RecDescent::_tracefirst($text))
28907             if defined $::RD_TRACE;
28908              
28909 0         0 last;
28910             }
28911 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28912             . $& . q{])},
28913             Parse::RecDescent::_tracefirst($text))
28914             if defined $::RD_TRACE;
28915 0         0 push @item, $item{__PATTERN1__}=$&;
28916              
28917              
28918 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
28919             q{old_new_table},
28920             $tracelevel)
28921             if defined $::RD_TRACE;
28922 0         0 $lastsep = "";
28923 0         0 $expectation->is(q{/(AS)?/i})->at($text);
28924              
28925              
28926 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(AS)?)//i)
  0 0       0  
28927             {
28928              
28929 0         0 $expectation->failed();
28930 0 0       0 Parse::RecDescent::_trace(q{<>},
28931             Parse::RecDescent::_tracefirst($text))
28932             if defined $::RD_TRACE;
28933              
28934 0         0 last;
28935             }
28936 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28937             . $& . q{])},
28938             Parse::RecDescent::_tracefirst($text))
28939             if defined $::RD_TRACE;
28940 0         0 push @item, $item{__PATTERN2__}=$&;
28941              
28942              
28943 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
28944             Parse::RecDescent::_tracefirst($text),
28945             q{old_new_table},
28946             $tracelevel)
28947             if defined $::RD_TRACE;
28948 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         543  
  0         0  
28949 0         0 $expectation->is(q{identifier})->at($text);
28950 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
28951             {
28952              
28953 0 0       0 Parse::RecDescent::_trace(q{<>},
28954             Parse::RecDescent::_tracefirst($text),
28955             q{old_new_table},
28956             $tracelevel)
28957             if defined $::RD_TRACE;
28958 0         0 $expectation->failed();
28959 0         0 last;
28960             }
28961 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
28962             . $_tok . q{]},
28963              
28964             Parse::RecDescent::_tracefirst($text),
28965             q{old_new_table},
28966             $tracelevel)
28967             if defined $::RD_TRACE;
28968 0         0 $item{q{identifier}} = $_tok;
28969 0         0 push @item, $_tok;
28970              
28971             }
28972              
28973 0 0       0 Parse::RecDescent::_trace(q{Trying action},
28974             Parse::RecDescent::_tracefirst($text),
28975             q{old_new_table},
28976             $tracelevel)
28977             if defined $::RD_TRACE;
28978              
28979              
28980 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
  0         0  
28981 0 0       0 unless (defined $_tok)
28982             {
28983 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
28984             if defined $::RD_TRACE;
28985 0         0 last;
28986             }
28987 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
28988             . $_tok . q{])},
28989             Parse::RecDescent::_tracefirst($text))
28990             if defined $::RD_TRACE;
28991 0         0 push @item, $_tok;
28992 0         0 $item{__ACTION1__}=$_tok;
28993              
28994              
28995              
28996 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NEW_TABLE/i /(AS)?/i identifier]<<},
28997             Parse::RecDescent::_tracefirst($text),
28998             q{old_new_table},
28999             $tracelevel)
29000             if defined $::RD_TRACE;
29001 0         0 $_matched = 1;
29002 0         0 last;
29003             }
29004              
29005              
29006 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
29007             {
29008              
29009              
29010 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
29011 0 0       0 Parse::RecDescent::_trace(q{<>},
29012             Parse::RecDescent::_tracefirst($_[1]),
29013             q{old_new_table},
29014             $tracelevel)
29015             if defined $::RD_TRACE;
29016 0         0 return undef;
29017             }
29018 0 0 0     0 if (!defined($return) && defined($score))
29019             {
29020 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29021             q{old_new_table},
29022             $tracelevel)
29023             if defined $::RD_TRACE;
29024 0         0 $return = $score_return;
29025             }
29026 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
29027 0 0       0 $return = $item[$#item] unless defined $return;
29028 0 0       0 if (defined $::RD_TRACE)
29029             {
29030 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29031             $return . q{])}, "",
29032             q{old_new_table},
29033             $tracelevel);
29034 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
29035             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
29036             Parse::RecDescent::_tracefirst($text),
29037             , q{old_new_table},
29038             $tracelevel)
29039             }
29040 0         0 $_[1] = $text;
29041 0         0 return $return;
29042             }
29043              
29044             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29045             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_numbering_function
29046             {
29047 0     0   0 my $thisparser = $_[0];
29048 1     1   8 use vars q{$tracelevel};
  1         2  
  1         309  
29049 0   0     0 local $tracelevel = ($tracelevel||0)+1;
29050 0         0 $ERRORS = 0;
29051 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_numbering_function"};
29052              
29053 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_numbering_function]},
29054             Parse::RecDescent::_tracefirst($_[1]),
29055             q{_alternation_1_of_production_1_of_rule_numbering_function},
29056             $tracelevel)
29057             if defined $::RD_TRACE;
29058              
29059              
29060 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
29061              
29062 0         0 my $score;
29063             my $score_return;
29064 0         0 my $_tok;
29065 0         0 my $return = undef;
29066 0         0 my $_matched=0;
29067 0         0 my $commit=0;
29068 0         0 my @item = ();
29069 0         0 my %item = ();
29070 0   0     0 my $repeating = defined($_[2]) && $_[2];
29071 0   0     0 my $_noactions = defined($_[3]) && $_[3];
29072 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
29073 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
29074 0         0 my $text;
29075 0         0 my $lastsep="";
29076 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29077 0         0 $expectation->at($_[1]);
29078              
29079 0         0 my $thisline;
29080 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29081              
29082              
29083              
29084 0   0     0 while (!$_matched && !$commit)
29085             {
29086              
29087 0 0       0 Parse::RecDescent::_trace(q{Trying production: [window_order_clause window_aggregation_group_clause]},
29088             Parse::RecDescent::_tracefirst($_[1]),
29089             q{_alternation_1_of_production_1_of_rule_numbering_function},
29090             $tracelevel)
29091             if defined $::RD_TRACE;
29092 0         0 my $thisprod = $thisrule->{"prods"}[0];
29093 0         0 $text = $_[1];
29094 0         0 my $_savetext;
29095 0         0 @item = (q{_alternation_1_of_production_1_of_rule_numbering_function});
29096 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_numbering_function});
29097 0         0 my $repcount = 0;
29098              
29099              
29100 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [window_order_clause]},
29101             Parse::RecDescent::_tracefirst($text),
29102             q{_alternation_1_of_production_1_of_rule_numbering_function},
29103             $tracelevel)
29104             if defined $::RD_TRACE;
29105 1     1   7 if (1) { no strict qw{refs};
  1         4  
  1         449  
  0         0  
29106 0         0 $expectation->is(q{})->at($text);
29107 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
29108             {
29109              
29110 0 0       0 Parse::RecDescent::_trace(q{<>},
29111             Parse::RecDescent::_tracefirst($text),
29112             q{_alternation_1_of_production_1_of_rule_numbering_function},
29113             $tracelevel)
29114             if defined $::RD_TRACE;
29115 0         0 $expectation->failed();
29116 0         0 last;
29117             }
29118 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [window_order_clause]<< (return value: [}
29119             . $_tok . q{]},
29120              
29121             Parse::RecDescent::_tracefirst($text),
29122             q{_alternation_1_of_production_1_of_rule_numbering_function},
29123             $tracelevel)
29124             if defined $::RD_TRACE;
29125 0         0 $item{q{window_order_clause}} = $_tok;
29126 0         0 push @item, $_tok;
29127              
29128             }
29129              
29130 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [window_aggregation_group_clause]},
29131             Parse::RecDescent::_tracefirst($text),
29132             q{_alternation_1_of_production_1_of_rule_numbering_function},
29133             $tracelevel)
29134             if defined $::RD_TRACE;
29135 0         0 $expectation->is(q{window_aggregation_group_clause})->at($text);
29136              
29137 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause, 0, 1, $_noactions,$expectation,undef)))
29138             {
29139 0 0       0 Parse::RecDescent::_trace(q{<>},
29140             Parse::RecDescent::_tracefirst($text),
29141             q{_alternation_1_of_production_1_of_rule_numbering_function},
29142             $tracelevel)
29143             if defined $::RD_TRACE;
29144 0         0 last;
29145             }
29146 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [window_aggregation_group_clause]<< (}
29147             . @$_tok . q{ times)},
29148              
29149             Parse::RecDescent::_tracefirst($text),
29150             q{_alternation_1_of_production_1_of_rule_numbering_function},
29151             $tracelevel)
29152             if defined $::RD_TRACE;
29153 0         0 $item{q{window_aggregation_group_clause(?)}} = $_tok;
29154 0         0 push @item, $_tok;
29155              
29156              
29157              
29158              
29159 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [window_order_clause window_aggregation_group_clause]<<},
29160             Parse::RecDescent::_tracefirst($text),
29161             q{_alternation_1_of_production_1_of_rule_numbering_function},
29162             $tracelevel)
29163             if defined $::RD_TRACE;
29164 0         0 $_matched = 1;
29165 0         0 last;
29166             }
29167              
29168              
29169 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
29170             {
29171              
29172              
29173 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
29174 0 0       0 Parse::RecDescent::_trace(q{<>},
29175             Parse::RecDescent::_tracefirst($_[1]),
29176             q{_alternation_1_of_production_1_of_rule_numbering_function},
29177             $tracelevel)
29178             if defined $::RD_TRACE;
29179 0         0 return undef;
29180             }
29181 0 0 0     0 if (!defined($return) && defined($score))
29182             {
29183 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29184             q{_alternation_1_of_production_1_of_rule_numbering_function},
29185             $tracelevel)
29186             if defined $::RD_TRACE;
29187 0         0 $return = $score_return;
29188             }
29189 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
29190 0 0       0 $return = $item[$#item] unless defined $return;
29191 0 0       0 if (defined $::RD_TRACE)
29192             {
29193 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29194             $return . q{])}, "",
29195             q{_alternation_1_of_production_1_of_rule_numbering_function},
29196             $tracelevel);
29197 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
29198             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
29199             Parse::RecDescent::_tracefirst($text),
29200             , q{_alternation_1_of_production_1_of_rule_numbering_function},
29201             $tracelevel)
29202             }
29203 0         0 $_[1] = $text;
29204 0         0 return $return;
29205             }
29206              
29207             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29208             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause
29209             {
29210 0     0   0 my $thisparser = $_[0];
29211 1     1   9 use vars q{$tracelevel};
  1         3  
  1         293  
29212 0   0     0 local $tracelevel = ($tracelevel||0)+1;
29213 0         0 $ERRORS = 0;
29214 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause"};
29215              
29216 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]},
29217             Parse::RecDescent::_tracefirst($_[1]),
29218             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29219             $tracelevel)
29220             if defined $::RD_TRACE;
29221              
29222              
29223 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
29224              
29225 0         0 my $score;
29226             my $score_return;
29227 0         0 my $_tok;
29228 0         0 my $return = undef;
29229 0         0 my $_matched=0;
29230 0         0 my $commit=0;
29231 0         0 my @item = ();
29232 0         0 my %item = ();
29233 0   0     0 my $repeating = defined($_[2]) && $_[2];
29234 0   0     0 my $_noactions = defined($_[3]) && $_[3];
29235 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
29236 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
29237 0         0 my $text;
29238 0         0 my $lastsep="";
29239 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29240 0         0 $expectation->at($_[1]);
29241              
29242 0         0 my $thisline;
29243 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29244              
29245              
29246              
29247 0   0     0 while (!$_matched && !$commit)
29248             {
29249              
29250 0 0       0 Parse::RecDescent::_trace(q{Trying production: [result_expression]},
29251             Parse::RecDescent::_tracefirst($_[1]),
29252             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29253             $tracelevel)
29254             if defined $::RD_TRACE;
29255 0         0 my $thisprod = $thisrule->{"prods"}[0];
29256 0         0 $text = $_[1];
29257 0         0 my $_savetext;
29258 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
29259 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
29260 0         0 my $repcount = 0;
29261              
29262              
29263 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [result_expression]},
29264             Parse::RecDescent::_tracefirst($text),
29265             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29266             $tracelevel)
29267             if defined $::RD_TRACE;
29268 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         597  
  0         0  
29269 0         0 $expectation->is(q{})->at($text);
29270 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
29271             {
29272              
29273 0 0       0 Parse::RecDescent::_trace(q{<>},
29274             Parse::RecDescent::_tracefirst($text),
29275             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29276             $tracelevel)
29277             if defined $::RD_TRACE;
29278 0         0 $expectation->failed();
29279 0         0 last;
29280             }
29281 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [result_expression]<< (return value: [}
29282             . $_tok . q{]},
29283              
29284             Parse::RecDescent::_tracefirst($text),
29285             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29286             $tracelevel)
29287             if defined $::RD_TRACE;
29288 0         0 $item{q{result_expression}} = $_tok;
29289 0         0 push @item, $_tok;
29290              
29291             }
29292              
29293              
29294 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [result_expression]<<},
29295             Parse::RecDescent::_tracefirst($text),
29296             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29297             $tracelevel)
29298             if defined $::RD_TRACE;
29299 0         0 $_matched = 1;
29300 0         0 last;
29301             }
29302              
29303              
29304 0   0     0 while (!$_matched && !$commit)
29305             {
29306              
29307 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NULL/i]},
29308             Parse::RecDescent::_tracefirst($_[1]),
29309             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29310             $tracelevel)
29311             if defined $::RD_TRACE;
29312 0         0 my $thisprod = $thisrule->{"prods"}[1];
29313 0         0 $text = $_[1];
29314 0         0 my $_savetext;
29315 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
29316 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
29317 0         0 my $repcount = 0;
29318              
29319              
29320 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NULL/i]}, Parse::RecDescent::_tracefirst($text),
29321             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29322             $tracelevel)
29323             if defined $::RD_TRACE;
29324 0         0 $lastsep = "";
29325 0         0 $expectation->is(q{})->at($text);
29326              
29327              
29328 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NULL)//i)
  0 0       0  
29329             {
29330              
29331 0         0 $expectation->failed();
29332 0 0       0 Parse::RecDescent::_trace(q{<>},
29333             Parse::RecDescent::_tracefirst($text))
29334             if defined $::RD_TRACE;
29335              
29336 0         0 last;
29337             }
29338 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29339             . $& . q{])},
29340             Parse::RecDescent::_tracefirst($text))
29341             if defined $::RD_TRACE;
29342 0         0 push @item, $item{__PATTERN1__}=$&;
29343              
29344              
29345              
29346 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NULL/i]<<},
29347             Parse::RecDescent::_tracefirst($text),
29348             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29349             $tracelevel)
29350             if defined $::RD_TRACE;
29351 0         0 $_matched = 1;
29352 0         0 last;
29353             }
29354              
29355              
29356 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
29357             {
29358              
29359              
29360 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
29361 0 0       0 Parse::RecDescent::_trace(q{<>},
29362             Parse::RecDescent::_tracefirst($_[1]),
29363             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29364             $tracelevel)
29365             if defined $::RD_TRACE;
29366 0         0 return undef;
29367             }
29368 0 0 0     0 if (!defined($return) && defined($score))
29369             {
29370 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29371             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29372             $tracelevel)
29373             if defined $::RD_TRACE;
29374 0         0 $return = $score_return;
29375             }
29376 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
29377 0 0       0 $return = $item[$#item] unless defined $return;
29378 0 0       0 if (defined $::RD_TRACE)
29379             {
29380 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29381             $return . q{])}, "",
29382             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29383             $tracelevel);
29384 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
29385             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
29386             Parse::RecDescent::_tracefirst($text),
29387             , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29388             $tracelevel)
29389             }
29390 0         0 $_[1] = $text;
29391 0         0 return $return;
29392             }
29393              
29394             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29395             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr
29396             {
29397 0     0   0 my $thisparser = $_[0];
29398 1     1   7 use vars q{$tracelevel};
  1         3  
  1         509  
29399 0   0     0 local $tracelevel = ($tracelevel||0)+1;
29400 0         0 $ERRORS = 0;
29401 0         0 my $thisrule = $thisparser->{"rules"}{"old_new_corr"};
29402              
29403 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [old_new_corr]},
29404             Parse::RecDescent::_tracefirst($_[1]),
29405             q{old_new_corr},
29406             $tracelevel)
29407             if defined $::RD_TRACE;
29408              
29409              
29410 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
29411              
29412 0         0 my $score;
29413             my $score_return;
29414 0         0 my $_tok;
29415 0         0 my $return = undef;
29416 0         0 my $_matched=0;
29417 0         0 my $commit=0;
29418 0         0 my @item = ();
29419 0         0 my %item = ();
29420 0   0     0 my $repeating = defined($_[2]) && $_[2];
29421 0   0     0 my $_noactions = defined($_[3]) && $_[3];
29422 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
29423 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
29424 0         0 my $text;
29425 0         0 my $lastsep="";
29426 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29427 0         0 $expectation->at($_[1]);
29428              
29429 0         0 my $thisline;
29430 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29431              
29432              
29433              
29434 0   0     0 while (!$_matched && !$commit)
29435             {
29436              
29437 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/OLD/i /(AS)?/i correlation_name]},
29438             Parse::RecDescent::_tracefirst($_[1]),
29439             q{old_new_corr},
29440             $tracelevel)
29441             if defined $::RD_TRACE;
29442 0         0 my $thisprod = $thisrule->{"prods"}[0];
29443 0         0 $text = $_[1];
29444 0         0 my $_savetext;
29445 0         0 @item = (q{old_new_corr});
29446 0         0 %item = (__RULE__ => q{old_new_corr});
29447 0         0 my $repcount = 0;
29448              
29449              
29450 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/OLD/i]}, Parse::RecDescent::_tracefirst($text),
29451             q{old_new_corr},
29452             $tracelevel)
29453             if defined $::RD_TRACE;
29454 0         0 $lastsep = "";
29455 0         0 $expectation->is(q{})->at($text);
29456              
29457              
29458 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:OLD)//i)
  0 0       0  
29459             {
29460              
29461 0         0 $expectation->failed();
29462 0 0       0 Parse::RecDescent::_trace(q{<>},
29463             Parse::RecDescent::_tracefirst($text))
29464             if defined $::RD_TRACE;
29465              
29466 0         0 last;
29467             }
29468 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29469             . $& . q{])},
29470             Parse::RecDescent::_tracefirst($text))
29471             if defined $::RD_TRACE;
29472 0         0 push @item, $item{__PATTERN1__}=$&;
29473              
29474              
29475 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
29476             q{old_new_corr},
29477             $tracelevel)
29478             if defined $::RD_TRACE;
29479 0         0 $lastsep = "";
29480 0         0 $expectation->is(q{/(AS)?/i})->at($text);
29481              
29482              
29483 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(AS)?)//i)
  0 0       0  
29484             {
29485              
29486 0         0 $expectation->failed();
29487 0 0       0 Parse::RecDescent::_trace(q{<>},
29488             Parse::RecDescent::_tracefirst($text))
29489             if defined $::RD_TRACE;
29490              
29491 0         0 last;
29492             }
29493 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29494             . $& . q{])},
29495             Parse::RecDescent::_tracefirst($text))
29496             if defined $::RD_TRACE;
29497 0         0 push @item, $item{__PATTERN2__}=$&;
29498              
29499              
29500 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [correlation_name]},
29501             Parse::RecDescent::_tracefirst($text),
29502             q{old_new_corr},
29503             $tracelevel)
29504             if defined $::RD_TRACE;
29505 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         546  
  0         0  
29506 0         0 $expectation->is(q{correlation_name})->at($text);
29507 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
29508             {
29509              
29510 0 0       0 Parse::RecDescent::_trace(q{<>},
29511             Parse::RecDescent::_tracefirst($text),
29512             q{old_new_corr},
29513             $tracelevel)
29514             if defined $::RD_TRACE;
29515 0         0 $expectation->failed();
29516 0         0 last;
29517             }
29518 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [correlation_name]<< (return value: [}
29519             . $_tok . q{]},
29520              
29521             Parse::RecDescent::_tracefirst($text),
29522             q{old_new_corr},
29523             $tracelevel)
29524             if defined $::RD_TRACE;
29525 0         0 $item{q{correlation_name}} = $_tok;
29526 0         0 push @item, $_tok;
29527              
29528             }
29529              
29530 0 0       0 Parse::RecDescent::_trace(q{Trying action},
29531             Parse::RecDescent::_tracefirst($text),
29532             q{old_new_corr},
29533             $tracelevel)
29534             if defined $::RD_TRACE;
29535              
29536              
29537 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
  0         0  
29538 0 0       0 unless (defined $_tok)
29539             {
29540 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
29541             if defined $::RD_TRACE;
29542 0         0 last;
29543             }
29544 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
29545             . $_tok . q{])},
29546             Parse::RecDescent::_tracefirst($text))
29547             if defined $::RD_TRACE;
29548 0         0 push @item, $_tok;
29549 0         0 $item{__ACTION1__}=$_tok;
29550              
29551              
29552              
29553 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/OLD/i /(AS)?/i correlation_name]<<},
29554             Parse::RecDescent::_tracefirst($text),
29555             q{old_new_corr},
29556             $tracelevel)
29557             if defined $::RD_TRACE;
29558 0         0 $_matched = 1;
29559 0         0 last;
29560             }
29561              
29562              
29563 0   0     0 while (!$_matched && !$commit)
29564             {
29565              
29566 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NEW/i /(AS)?/i correlation_name]},
29567             Parse::RecDescent::_tracefirst($_[1]),
29568             q{old_new_corr},
29569             $tracelevel)
29570             if defined $::RD_TRACE;
29571 0         0 my $thisprod = $thisrule->{"prods"}[1];
29572 0         0 $text = $_[1];
29573 0         0 my $_savetext;
29574 0         0 @item = (q{old_new_corr});
29575 0         0 %item = (__RULE__ => q{old_new_corr});
29576 0         0 my $repcount = 0;
29577              
29578              
29579 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NEW/i]}, Parse::RecDescent::_tracefirst($text),
29580             q{old_new_corr},
29581             $tracelevel)
29582             if defined $::RD_TRACE;
29583 0         0 $lastsep = "";
29584 0         0 $expectation->is(q{})->at($text);
29585              
29586              
29587 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NEW)//i)
  0 0       0  
29588             {
29589              
29590 0         0 $expectation->failed();
29591 0 0       0 Parse::RecDescent::_trace(q{<>},
29592             Parse::RecDescent::_tracefirst($text))
29593             if defined $::RD_TRACE;
29594              
29595 0         0 last;
29596             }
29597 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29598             . $& . q{])},
29599             Parse::RecDescent::_tracefirst($text))
29600             if defined $::RD_TRACE;
29601 0         0 push @item, $item{__PATTERN1__}=$&;
29602              
29603              
29604 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
29605             q{old_new_corr},
29606             $tracelevel)
29607             if defined $::RD_TRACE;
29608 0         0 $lastsep = "";
29609 0         0 $expectation->is(q{/(AS)?/i})->at($text);
29610              
29611              
29612 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(AS)?)//i)
  0 0       0  
29613             {
29614              
29615 0         0 $expectation->failed();
29616 0 0       0 Parse::RecDescent::_trace(q{<>},
29617             Parse::RecDescent::_tracefirst($text))
29618             if defined $::RD_TRACE;
29619              
29620 0         0 last;
29621             }
29622 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29623             . $& . q{])},
29624             Parse::RecDescent::_tracefirst($text))
29625             if defined $::RD_TRACE;
29626 0         0 push @item, $item{__PATTERN2__}=$&;
29627              
29628              
29629 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [correlation_name]},
29630             Parse::RecDescent::_tracefirst($text),
29631             q{old_new_corr},
29632             $tracelevel)
29633             if defined $::RD_TRACE;
29634 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         505  
  0         0  
29635 0         0 $expectation->is(q{correlation_name})->at($text);
29636 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
29637             {
29638              
29639 0 0       0 Parse::RecDescent::_trace(q{<>},
29640             Parse::RecDescent::_tracefirst($text),
29641             q{old_new_corr},
29642             $tracelevel)
29643             if defined $::RD_TRACE;
29644 0         0 $expectation->failed();
29645 0         0 last;
29646             }
29647 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [correlation_name]<< (return value: [}
29648             . $_tok . q{]},
29649              
29650             Parse::RecDescent::_tracefirst($text),
29651             q{old_new_corr},
29652             $tracelevel)
29653             if defined $::RD_TRACE;
29654 0         0 $item{q{correlation_name}} = $_tok;
29655 0         0 push @item, $_tok;
29656              
29657             }
29658              
29659 0 0       0 Parse::RecDescent::_trace(q{Trying action},
29660             Parse::RecDescent::_tracefirst($text),
29661             q{old_new_corr},
29662             $tracelevel)
29663             if defined $::RD_TRACE;
29664              
29665              
29666 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
  0         0  
29667 0 0       0 unless (defined $_tok)
29668             {
29669 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
29670             if defined $::RD_TRACE;
29671 0         0 last;
29672             }
29673 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
29674             . $_tok . q{])},
29675             Parse::RecDescent::_tracefirst($text))
29676             if defined $::RD_TRACE;
29677 0         0 push @item, $_tok;
29678 0         0 $item{__ACTION1__}=$_tok;
29679              
29680              
29681              
29682 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NEW/i /(AS)?/i correlation_name]<<},
29683             Parse::RecDescent::_tracefirst($text),
29684             q{old_new_corr},
29685             $tracelevel)
29686             if defined $::RD_TRACE;
29687 0         0 $_matched = 1;
29688 0         0 last;
29689             }
29690              
29691              
29692 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
29693             {
29694              
29695              
29696 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
29697 0 0       0 Parse::RecDescent::_trace(q{<>},
29698             Parse::RecDescent::_tracefirst($_[1]),
29699             q{old_new_corr},
29700             $tracelevel)
29701             if defined $::RD_TRACE;
29702 0         0 return undef;
29703             }
29704 0 0 0     0 if (!defined($return) && defined($score))
29705             {
29706 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29707             q{old_new_corr},
29708             $tracelevel)
29709             if defined $::RD_TRACE;
29710 0         0 $return = $score_return;
29711             }
29712 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
29713 0 0       0 $return = $item[$#item] unless defined $return;
29714 0 0       0 if (defined $::RD_TRACE)
29715             {
29716 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29717             $return . q{])}, "",
29718             q{old_new_corr},
29719             $tracelevel);
29720 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
29721             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
29722             Parse::RecDescent::_tracefirst($text),
29723             , q{old_new_corr},
29724             $tracelevel)
29725             }
29726 0         0 $_[1] = $text;
29727 0         0 return $return;
29728             }
29729              
29730             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29731             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_42_of_rule_sysibm_function
29732             {
29733 0     0   0 my $thisparser = $_[0];
29734 1     1   8 use vars q{$tracelevel};
  1         3  
  1         851  
29735 0   0     0 local $tracelevel = ($tracelevel||0)+1;
29736 0         0 $ERRORS = 0;
29737 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_42_of_rule_sysibm_function"};
29738              
29739 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_42_of_rule_sysibm_function]},
29740             Parse::RecDescent::_tracefirst($_[1]),
29741             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29742             $tracelevel)
29743             if defined $::RD_TRACE;
29744              
29745              
29746 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
29747              
29748 0         0 my $score;
29749             my $score_return;
29750 0         0 my $_tok;
29751 0         0 my $return = undef;
29752 0         0 my $_matched=0;
29753 0         0 my $commit=0;
29754 0         0 my @item = ();
29755 0         0 my %item = ();
29756 0   0     0 my $repeating = defined($_[2]) && $_[2];
29757 0   0     0 my $_noactions = defined($_[3]) && $_[3];
29758 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
29759 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
29760 0         0 my $text;
29761 0         0 my $lastsep="";
29762 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29763 0         0 $expectation->at($_[1]);
29764              
29765 0         0 my $thisline;
29766 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29767              
29768              
29769              
29770 0   0     0 while (!$_matched && !$commit)
29771             {
29772              
29773 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LCASE/i]},
29774             Parse::RecDescent::_tracefirst($_[1]),
29775             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29776             $tracelevel)
29777             if defined $::RD_TRACE;
29778 0         0 my $thisprod = $thisrule->{"prods"}[0];
29779 0         0 $text = $_[1];
29780 0         0 my $_savetext;
29781 0         0 @item = (q{_alternation_1_of_production_42_of_rule_sysibm_function});
29782 0         0 %item = (__RULE__ => q{_alternation_1_of_production_42_of_rule_sysibm_function});
29783 0         0 my $repcount = 0;
29784              
29785              
29786 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LCASE/i]}, Parse::RecDescent::_tracefirst($text),
29787             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29788             $tracelevel)
29789             if defined $::RD_TRACE;
29790 0         0 $lastsep = "";
29791 0         0 $expectation->is(q{})->at($text);
29792              
29793              
29794 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LCASE)//i)
  0 0       0  
29795             {
29796              
29797 0         0 $expectation->failed();
29798 0 0       0 Parse::RecDescent::_trace(q{<>},
29799             Parse::RecDescent::_tracefirst($text))
29800             if defined $::RD_TRACE;
29801              
29802 0         0 last;
29803             }
29804 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29805             . $& . q{])},
29806             Parse::RecDescent::_tracefirst($text))
29807             if defined $::RD_TRACE;
29808 0         0 push @item, $item{__PATTERN1__}=$&;
29809              
29810              
29811              
29812 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LCASE/i]<<},
29813             Parse::RecDescent::_tracefirst($text),
29814             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29815             $tracelevel)
29816             if defined $::RD_TRACE;
29817 0         0 $_matched = 1;
29818 0         0 last;
29819             }
29820              
29821              
29822 0   0     0 while (!$_matched && !$commit)
29823             {
29824              
29825 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/LOWER/]},
29826             Parse::RecDescent::_tracefirst($_[1]),
29827             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29828             $tracelevel)
29829             if defined $::RD_TRACE;
29830 0         0 my $thisprod = $thisrule->{"prods"}[1];
29831 0         0 $text = $_[1];
29832 0         0 my $_savetext;
29833 0         0 @item = (q{_alternation_1_of_production_42_of_rule_sysibm_function});
29834 0         0 %item = (__RULE__ => q{_alternation_1_of_production_42_of_rule_sysibm_function});
29835 0         0 my $repcount = 0;
29836              
29837              
29838 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/LOWER/]}, Parse::RecDescent::_tracefirst($text),
29839             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29840             $tracelevel)
29841             if defined $::RD_TRACE;
29842 0         0 $lastsep = "";
29843 0         0 $expectation->is(q{})->at($text);
29844              
29845              
29846 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:LOWER)//)
  0 0       0  
29847             {
29848              
29849 0         0 $expectation->failed();
29850 0 0       0 Parse::RecDescent::_trace(q{<>},
29851             Parse::RecDescent::_tracefirst($text))
29852             if defined $::RD_TRACE;
29853              
29854 0         0 last;
29855             }
29856 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29857             . $& . q{])},
29858             Parse::RecDescent::_tracefirst($text))
29859             if defined $::RD_TRACE;
29860 0         0 push @item, $item{__PATTERN1__}=$&;
29861              
29862              
29863              
29864 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/LOWER/]<<},
29865             Parse::RecDescent::_tracefirst($text),
29866             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29867             $tracelevel)
29868             if defined $::RD_TRACE;
29869 0         0 $_matched = 1;
29870 0         0 last;
29871             }
29872              
29873              
29874 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
29875             {
29876              
29877              
29878 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
29879 0 0       0 Parse::RecDescent::_trace(q{<>},
29880             Parse::RecDescent::_tracefirst($_[1]),
29881             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29882             $tracelevel)
29883             if defined $::RD_TRACE;
29884 0         0 return undef;
29885             }
29886 0 0 0     0 if (!defined($return) && defined($score))
29887             {
29888 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29889             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29890             $tracelevel)
29891             if defined $::RD_TRACE;
29892 0         0 $return = $score_return;
29893             }
29894 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
29895 0 0       0 $return = $item[$#item] unless defined $return;
29896 0 0       0 if (defined $::RD_TRACE)
29897             {
29898 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29899             $return . q{])}, "",
29900             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29901             $tracelevel);
29902 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
29903             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
29904             Parse::RecDescent::_tracefirst($text),
29905             , q{_alternation_1_of_production_42_of_rule_sysibm_function},
29906             $tracelevel)
29907             }
29908 0         0 $_[1] = $text;
29909 0         0 return $return;
29910             }
29911              
29912             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29913             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subtype_treatment
29914             {
29915 0     0   0 my $thisparser = $_[0];
29916 1     1   9 use vars q{$tracelevel};
  1         2  
  1         500  
29917 0   0     0 local $tracelevel = ($tracelevel||0)+1;
29918 0         0 $ERRORS = 0;
29919 0         0 my $thisrule = $thisparser->{"rules"}{"subtype_treatment"};
29920              
29921 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [subtype_treatment]},
29922             Parse::RecDescent::_tracefirst($_[1]),
29923             q{subtype_treatment},
29924             $tracelevel)
29925             if defined $::RD_TRACE;
29926              
29927              
29928 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
29929              
29930 0         0 my $score;
29931             my $score_return;
29932 0         0 my $_tok;
29933 0         0 my $return = undef;
29934 0         0 my $_matched=0;
29935 0         0 my $commit=0;
29936 0         0 my @item = ();
29937 0         0 my %item = ();
29938 0   0     0 my $repeating = defined($_[2]) && $_[2];
29939 0   0     0 my $_noactions = defined($_[3]) && $_[3];
29940 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
29941 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
29942 0         0 my $text;
29943 0         0 my $lastsep="";
29944 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29945 0         0 $expectation->at($_[1]);
29946              
29947 0         0 my $thisline;
29948 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29949              
29950              
29951              
29952 0   0     0 while (!$_matched && !$commit)
29953             {
29954              
29955 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/TREAT/i '(' expression /AS/i data_type ')']},
29956             Parse::RecDescent::_tracefirst($_[1]),
29957             q{subtype_treatment},
29958             $tracelevel)
29959             if defined $::RD_TRACE;
29960 0         0 my $thisprod = $thisrule->{"prods"}[0];
29961 0         0 $text = $_[1];
29962 0         0 my $_savetext;
29963 0         0 @item = (q{subtype_treatment});
29964 0         0 %item = (__RULE__ => q{subtype_treatment});
29965 0         0 my $repcount = 0;
29966              
29967              
29968 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/TREAT/i]}, Parse::RecDescent::_tracefirst($text),
29969             q{subtype_treatment},
29970             $tracelevel)
29971             if defined $::RD_TRACE;
29972 0         0 $lastsep = "";
29973 0         0 $expectation->is(q{})->at($text);
29974              
29975              
29976 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:TREAT)//i)
  0 0       0  
29977             {
29978              
29979 0         0 $expectation->failed();
29980 0 0       0 Parse::RecDescent::_trace(q{<>},
29981             Parse::RecDescent::_tracefirst($text))
29982             if defined $::RD_TRACE;
29983              
29984 0         0 last;
29985             }
29986 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29987             . $& . q{])},
29988             Parse::RecDescent::_tracefirst($text))
29989             if defined $::RD_TRACE;
29990 0         0 push @item, $item{__PATTERN1__}=$&;
29991              
29992              
29993 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
29994             Parse::RecDescent::_tracefirst($text),
29995             q{subtype_treatment},
29996             $tracelevel)
29997             if defined $::RD_TRACE;
29998 0         0 $lastsep = "";
29999 0         0 $expectation->is(q{'('})->at($text);
30000              
30001              
30002 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
30003             {
30004              
30005 0         0 $expectation->failed();
30006 0 0       0 Parse::RecDescent::_trace(qq{<>},
30007             Parse::RecDescent::_tracefirst($text))
30008             if defined $::RD_TRACE;
30009 0         0 last;
30010             }
30011 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30012             . $& . q{])},
30013             Parse::RecDescent::_tracefirst($text))
30014             if defined $::RD_TRACE;
30015 0         0 push @item, $item{__STRING1__}=$&;
30016              
30017              
30018 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
30019             Parse::RecDescent::_tracefirst($text),
30020             q{subtype_treatment},
30021             $tracelevel)
30022             if defined $::RD_TRACE;
30023 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         268  
  0         0  
30024 0         0 $expectation->is(q{expression})->at($text);
30025 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
30026             {
30027              
30028 0 0       0 Parse::RecDescent::_trace(q{<>},
30029             Parse::RecDescent::_tracefirst($text),
30030             q{subtype_treatment},
30031             $tracelevel)
30032             if defined $::RD_TRACE;
30033 0         0 $expectation->failed();
30034 0         0 last;
30035             }
30036 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
30037             . $_tok . q{]},
30038              
30039             Parse::RecDescent::_tracefirst($text),
30040             q{subtype_treatment},
30041             $tracelevel)
30042             if defined $::RD_TRACE;
30043 0         0 $item{q{expression}} = $_tok;
30044 0         0 push @item, $_tok;
30045              
30046             }
30047              
30048 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
30049             q{subtype_treatment},
30050             $tracelevel)
30051             if defined $::RD_TRACE;
30052 0         0 $lastsep = "";
30053 0         0 $expectation->is(q{/AS/i})->at($text);
30054              
30055              
30056 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:AS)//i)
  0 0       0  
30057             {
30058              
30059 0         0 $expectation->failed();
30060 0 0       0 Parse::RecDescent::_trace(q{<>},
30061             Parse::RecDescent::_tracefirst($text))
30062             if defined $::RD_TRACE;
30063              
30064 0         0 last;
30065             }
30066 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30067             . $& . q{])},
30068             Parse::RecDescent::_tracefirst($text))
30069             if defined $::RD_TRACE;
30070 0         0 push @item, $item{__PATTERN2__}=$&;
30071              
30072              
30073 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [data_type]},
30074             Parse::RecDescent::_tracefirst($text),
30075             q{subtype_treatment},
30076             $tracelevel)
30077             if defined $::RD_TRACE;
30078 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         507  
  0         0  
30079 0         0 $expectation->is(q{data_type})->at($text);
30080 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::data_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
30081             {
30082              
30083 0 0       0 Parse::RecDescent::_trace(q{<>},
30084             Parse::RecDescent::_tracefirst($text),
30085             q{subtype_treatment},
30086             $tracelevel)
30087             if defined $::RD_TRACE;
30088 0         0 $expectation->failed();
30089 0         0 last;
30090             }
30091 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [data_type]<< (return value: [}
30092             . $_tok . q{]},
30093              
30094             Parse::RecDescent::_tracefirst($text),
30095             q{subtype_treatment},
30096             $tracelevel)
30097             if defined $::RD_TRACE;
30098 0         0 $item{q{data_type}} = $_tok;
30099 0         0 push @item, $_tok;
30100              
30101             }
30102              
30103 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
30104             Parse::RecDescent::_tracefirst($text),
30105             q{subtype_treatment},
30106             $tracelevel)
30107             if defined $::RD_TRACE;
30108 0         0 $lastsep = "";
30109 0         0 $expectation->is(q{')'})->at($text);
30110              
30111              
30112 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
30113             {
30114              
30115 0         0 $expectation->failed();
30116 0 0       0 Parse::RecDescent::_trace(qq{<>},
30117             Parse::RecDescent::_tracefirst($text))
30118             if defined $::RD_TRACE;
30119 0         0 last;
30120             }
30121 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30122             . $& . q{])},
30123             Parse::RecDescent::_tracefirst($text))
30124             if defined $::RD_TRACE;
30125 0         0 push @item, $item{__STRING2__}=$&;
30126              
30127              
30128              
30129 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/TREAT/i '(' expression /AS/i data_type ')']<<},
30130             Parse::RecDescent::_tracefirst($text),
30131             q{subtype_treatment},
30132             $tracelevel)
30133             if defined $::RD_TRACE;
30134 0         0 $_matched = 1;
30135 0         0 last;
30136             }
30137              
30138              
30139 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
30140             {
30141              
30142              
30143 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
30144 0 0       0 Parse::RecDescent::_trace(q{<>},
30145             Parse::RecDescent::_tracefirst($_[1]),
30146             q{subtype_treatment},
30147             $tracelevel)
30148             if defined $::RD_TRACE;
30149 0         0 return undef;
30150             }
30151 0 0 0     0 if (!defined($return) && defined($score))
30152             {
30153 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
30154             q{subtype_treatment},
30155             $tracelevel)
30156             if defined $::RD_TRACE;
30157 0         0 $return = $score_return;
30158             }
30159 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
30160 0 0       0 $return = $item[$#item] unless defined $return;
30161 0 0       0 if (defined $::RD_TRACE)
30162             {
30163 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
30164             $return . q{])}, "",
30165             q{subtype_treatment},
30166             $tracelevel);
30167 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
30168             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
30169             Parse::RecDescent::_tracefirst($text),
30170             , q{subtype_treatment},
30171             $tracelevel)
30172             }
30173 0         0 $_[1] = $text;
30174 0         0 return $return;
30175             }
30176              
30177             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
30178             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression
30179             {
30180 0     0   0 my $thisparser = $_[0];
30181 1     1   7 use vars q{$tracelevel};
  1         4  
  1         339  
30182 0   0     0 local $tracelevel = ($tracelevel||0)+1;
30183 0         0 $ERRORS = 0;
30184 0         0 my $thisrule = $thisparser->{"rules"}{"expression"};
30185              
30186 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [expression]},
30187             Parse::RecDescent::_tracefirst($_[1]),
30188             q{expression},
30189             $tracelevel)
30190             if defined $::RD_TRACE;
30191              
30192              
30193 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
30194              
30195 0         0 my $score;
30196             my $score_return;
30197 0         0 my $_tok;
30198 0         0 my $return = undef;
30199 0         0 my $_matched=0;
30200 0         0 my $commit=0;
30201 0         0 my @item = ();
30202 0         0 my %item = ();
30203 0   0     0 my $repeating = defined($_[2]) && $_[2];
30204 0   0     0 my $_noactions = defined($_[3]) && $_[3];
30205 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
30206 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
30207 0         0 my $text;
30208 0         0 my $lastsep="";
30209 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
30210 0         0 $expectation->at($_[1]);
30211              
30212 0         0 my $thisline;
30213 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
30214              
30215              
30216              
30217 0   0     0 while (!$_matched && !$commit)
30218             {
30219              
30220 0 0       0 Parse::RecDescent::_trace(q{Trying production: []},
30221             Parse::RecDescent::_tracefirst($_[1]),
30222             q{expression},
30223             $tracelevel)
30224             if defined $::RD_TRACE;
30225 0         0 my $thisprod = $thisrule->{"prods"}[0];
30226 0         0 $text = $_[1];
30227 0         0 my $_savetext;
30228 0         0 @item = (q{expression});
30229 0         0 %item = (__RULE__ => q{expression});
30230 0         0 my $repcount = 0;
30231              
30232              
30233 0 0       0 Parse::RecDescent::_trace(q{Trying operator: []},
30234             Parse::RecDescent::_tracefirst($text),
30235             q{expression},
30236             $tracelevel)
30237             if defined $::RD_TRACE;
30238 0         0 $expectation->is(q{})->at($text);
30239              
30240 0         0 $_tok = undef;
30241 0         0 OPLOOP: while (1)
30242             {
30243 0         0 $repcount = 0;
30244 0         0 my @item;
30245              
30246             # MATCH LEFTARG
30247              
30248 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_expression]},
30249             Parse::RecDescent::_tracefirst($text),
30250             q{expression},
30251             $tracelevel)
30252             if defined $::RD_TRACE;
30253 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         305  
  0         0  
30254 0         0 $expectation->is(q{'+', or '-'})->at($text);
30255 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
30256             {
30257              
30258 0 0       0 Parse::RecDescent::_trace(q{<>},
30259             Parse::RecDescent::_tracefirst($text),
30260             q{expression},
30261             $tracelevel)
30262             if defined $::RD_TRACE;
30263 0         0 $expectation->failed();
30264 0         0 last;
30265             }
30266 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_expression]<< (return value: [}
30267             . $_tok . q{]},
30268              
30269             Parse::RecDescent::_tracefirst($text),
30270             q{expression},
30271             $tracelevel)
30272             if defined $::RD_TRACE;
30273 0         0 $item{q{_alternation_1_of_production_1_of_rule_expression}} = $_tok;
30274 0         0 push @item, $_tok;
30275              
30276             }
30277              
30278              
30279 0         0 $repcount++;
30280              
30281 0         0 my $savetext = $text;
30282 0         0 my $backtrack;
30283              
30284             # MATCH (OP RIGHTARG)(s)
30285 0         0 while ($repcount < 100000000)
30286             {
30287 0         0 $backtrack = 0;
30288              
30289 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/operator/]}, Parse::RecDescent::_tracefirst($text),
30290             q{expression},
30291             $tracelevel)
30292             if defined $::RD_TRACE;
30293 0         0 $lastsep = "";
30294 0         0 $expectation->is(q{/operator/})->at($text);
30295              
30296              
30297 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:operator)//)
  0 0       0  
30298             {
30299              
30300 0         0 $expectation->failed();
30301 0 0       0 Parse::RecDescent::_trace(q{<>},
30302             Parse::RecDescent::_tracefirst($text))
30303             if defined $::RD_TRACE;
30304              
30305 0         0 last;
30306             }
30307 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30308             . $& . q{])},
30309             Parse::RecDescent::_tracefirst($text))
30310             if defined $::RD_TRACE;
30311 0         0 push @item, $item{__PATTERN1__}=$&;
30312              
30313              
30314 0         0 pop @item;
30315 0 0       0 if (defined $1) {push @item, $item{'_alternation_1_of_production_1_of_rule_expression(s)'}=$1; $backtrack=1;}
  0         0  
  0         0  
30316              
30317 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_expression]},
30318             Parse::RecDescent::_tracefirst($text),
30319             q{expression},
30320             $tracelevel)
30321             if defined $::RD_TRACE;
30322 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         482  
  0         0  
30323 0         0 $expectation->is(q{'+', or '-'})->at($text);
30324 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
30325             {
30326              
30327 0 0       0 Parse::RecDescent::_trace(q{<>},
30328             Parse::RecDescent::_tracefirst($text),
30329             q{expression},
30330             $tracelevel)
30331             if defined $::RD_TRACE;
30332 0         0 $expectation->failed();
30333 0         0 last;
30334             }
30335 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_expression]<< (return value: [}
30336             . $_tok . q{]},
30337              
30338             Parse::RecDescent::_tracefirst($text),
30339             q{expression},
30340             $tracelevel)
30341             if defined $::RD_TRACE;
30342 0         0 $item{q{_alternation_1_of_production_1_of_rule_expression}} = $_tok;
30343 0         0 push @item, $_tok;
30344              
30345             }
30346              
30347 0         0 $savetext = $text;
30348 0         0 $repcount++;
30349             }
30350 0         0 $text = $savetext;
30351 0 0       0 pop @item if $backtrack;
30352              
30353 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
30354 0         0 $_tok = [ @item ];
30355 0         0 last;
30356             }
30357              
30358 0 0       0 unless ($repcount>=1)
30359             {
30360 0 0       0 Parse::RecDescent::_trace(q{<]>>},
30361             Parse::RecDescent::_tracefirst($text),
30362             q{expression},
30363             $tracelevel)
30364             if defined $::RD_TRACE;
30365 0         0 $expectation->failed();
30366 0         0 last;
30367             }
30368 0 0       0 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
30369 0 0       0 . qq{@{$_tok||[]}} . q{]},
30370             Parse::RecDescent::_tracefirst($text),
30371             q{expression},
30372             $tracelevel)
30373             if defined $::RD_TRACE;
30374              
30375 0   0     0 push @item, $item{'_alternation_1_of_production_1_of_rule_expression(s)'}=$_tok||[];
30376              
30377              
30378              
30379 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: []<<},
30380             Parse::RecDescent::_tracefirst($text),
30381             q{expression},
30382             $tracelevel)
30383             if defined $::RD_TRACE;
30384 0         0 $_matched = 1;
30385 0         0 last;
30386             }
30387              
30388              
30389 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
30390             {
30391              
30392              
30393 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
30394 0 0       0 Parse::RecDescent::_trace(q{<>},
30395             Parse::RecDescent::_tracefirst($_[1]),
30396             q{expression},
30397             $tracelevel)
30398             if defined $::RD_TRACE;
30399 0         0 return undef;
30400             }
30401 0 0 0     0 if (!defined($return) && defined($score))
30402             {
30403 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
30404             q{expression},
30405             $tracelevel)
30406             if defined $::RD_TRACE;
30407 0         0 $return = $score_return;
30408             }
30409 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
30410 0 0       0 $return = $item[$#item] unless defined $return;
30411 0 0       0 if (defined $::RD_TRACE)
30412             {
30413 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
30414             $return . q{])}, "",
30415             q{expression},
30416             $tracelevel);
30417 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
30418             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
30419             Parse::RecDescent::_tracefirst($text),
30420             , q{expression},
30421             $tracelevel)
30422             }
30423 0         0 $_[1] = $text;
30424 0         0 return $return;
30425             }
30426              
30427             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
30428             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression
30429             {
30430 0     0   0 my $thisparser = $_[0];
30431 1     1   7 use vars q{$tracelevel};
  1         570  
  1         254  
30432 0   0     0 local $tracelevel = ($tracelevel||0)+1;
30433 0         0 $ERRORS = 0;
30434 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression"};
30435              
30436 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
30437             Parse::RecDescent::_tracefirst($_[1]),
30438             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30439             $tracelevel)
30440             if defined $::RD_TRACE;
30441              
30442              
30443 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
30444              
30445 0         0 my $score;
30446             my $score_return;
30447 0         0 my $_tok;
30448 0         0 my $return = undef;
30449 0         0 my $_matched=0;
30450 0         0 my $commit=0;
30451 0         0 my @item = ();
30452 0         0 my %item = ();
30453 0   0     0 my $repeating = defined($_[2]) && $_[2];
30454 0   0     0 my $_noactions = defined($_[3]) && $_[3];
30455 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
30456 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
30457 0         0 my $text;
30458 0         0 my $lastsep="";
30459 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
30460 0         0 $expectation->at($_[1]);
30461              
30462 0         0 my $thisline;
30463 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
30464              
30465              
30466              
30467 0   0     0 while (!$_matched && !$commit)
30468             {
30469              
30470 0 0       0 Parse::RecDescent::_trace(q{Trying production: [function]},
30471             Parse::RecDescent::_tracefirst($_[1]),
30472             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30473             $tracelevel)
30474             if defined $::RD_TRACE;
30475 0         0 my $thisprod = $thisrule->{"prods"}[0];
30476 0         0 $text = $_[1];
30477 0         0 my $_savetext;
30478 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30479 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30480 0         0 my $repcount = 0;
30481              
30482              
30483 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [function]},
30484             Parse::RecDescent::_tracefirst($text),
30485             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30486             $tracelevel)
30487             if defined $::RD_TRACE;
30488 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         345  
  0         0  
30489 0         0 $expectation->is(q{})->at($text);
30490 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
30491             {
30492              
30493 0 0       0 Parse::RecDescent::_trace(q{<>},
30494             Parse::RecDescent::_tracefirst($text),
30495             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30496             $tracelevel)
30497             if defined $::RD_TRACE;
30498 0         0 $expectation->failed();
30499 0         0 last;
30500             }
30501 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [function]<< (return value: [}
30502             . $_tok . q{]},
30503              
30504             Parse::RecDescent::_tracefirst($text),
30505             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30506             $tracelevel)
30507             if defined $::RD_TRACE;
30508 0         0 $item{q{function}} = $_tok;
30509 0         0 push @item, $_tok;
30510              
30511             }
30512              
30513              
30514 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [function]<<},
30515             Parse::RecDescent::_tracefirst($text),
30516             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30517             $tracelevel)
30518             if defined $::RD_TRACE;
30519 0         0 $_matched = 1;
30520 0         0 last;
30521             }
30522              
30523              
30524 0   0     0 while (!$_matched && !$commit)
30525             {
30526              
30527 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
30528             Parse::RecDescent::_tracefirst($_[1]),
30529             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30530             $tracelevel)
30531             if defined $::RD_TRACE;
30532 0         0 my $thisprod = $thisrule->{"prods"}[1];
30533 0         0 $text = $_[1];
30534 0         0 my $_savetext;
30535 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30536 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30537 0         0 my $repcount = 0;
30538              
30539              
30540 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
30541             Parse::RecDescent::_tracefirst($text),
30542             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30543             $tracelevel)
30544             if defined $::RD_TRACE;
30545 0         0 $lastsep = "";
30546 0         0 $expectation->is(q{})->at($text);
30547              
30548              
30549 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
30550             {
30551              
30552 0         0 $expectation->failed();
30553 0 0       0 Parse::RecDescent::_trace(qq{<>},
30554             Parse::RecDescent::_tracefirst($text))
30555             if defined $::RD_TRACE;
30556 0         0 last;
30557             }
30558 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30559             . $& . q{])},
30560             Parse::RecDescent::_tracefirst($text))
30561             if defined $::RD_TRACE;
30562 0         0 push @item, $item{__STRING1__}=$&;
30563              
30564              
30565 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
30566             Parse::RecDescent::_tracefirst($text),
30567             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30568             $tracelevel)
30569             if defined $::RD_TRACE;
30570 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         382  
  0         0  
30571 0         0 $expectation->is(q{expression})->at($text);
30572 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
30573             {
30574              
30575 0 0       0 Parse::RecDescent::_trace(q{<>},
30576             Parse::RecDescent::_tracefirst($text),
30577             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30578             $tracelevel)
30579             if defined $::RD_TRACE;
30580 0         0 $expectation->failed();
30581 0         0 last;
30582             }
30583 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
30584             . $_tok . q{]},
30585              
30586             Parse::RecDescent::_tracefirst($text),
30587             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30588             $tracelevel)
30589             if defined $::RD_TRACE;
30590 0         0 $item{q{expression}} = $_tok;
30591 0         0 push @item, $_tok;
30592              
30593             }
30594              
30595 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
30596             Parse::RecDescent::_tracefirst($text),
30597             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30598             $tracelevel)
30599             if defined $::RD_TRACE;
30600 0         0 $lastsep = "";
30601 0         0 $expectation->is(q{')'})->at($text);
30602              
30603              
30604 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
30605             {
30606              
30607 0         0 $expectation->failed();
30608 0 0       0 Parse::RecDescent::_trace(qq{<>},
30609             Parse::RecDescent::_tracefirst($text))
30610             if defined $::RD_TRACE;
30611 0         0 last;
30612             }
30613 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30614             . $& . q{])},
30615             Parse::RecDescent::_tracefirst($text))
30616             if defined $::RD_TRACE;
30617 0         0 push @item, $item{__STRING2__}=$&;
30618              
30619              
30620              
30621 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['(' expression ')']<<},
30622             Parse::RecDescent::_tracefirst($text),
30623             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30624             $tracelevel)
30625             if defined $::RD_TRACE;
30626 0         0 $_matched = 1;
30627 0         0 last;
30628             }
30629              
30630              
30631 0   0     0 while (!$_matched && !$commit)
30632             {
30633              
30634 0 0       0 Parse::RecDescent::_trace(q{Trying production: [constant]},
30635             Parse::RecDescent::_tracefirst($_[1]),
30636             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30637             $tracelevel)
30638             if defined $::RD_TRACE;
30639 0         0 my $thisprod = $thisrule->{"prods"}[2];
30640 0         0 $text = $_[1];
30641 0         0 my $_savetext;
30642 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30643 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30644 0         0 my $repcount = 0;
30645              
30646              
30647 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [constant]},
30648             Parse::RecDescent::_tracefirst($text),
30649             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30650             $tracelevel)
30651             if defined $::RD_TRACE;
30652 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         296  
  0         0  
30653 0         0 $expectation->is(q{})->at($text);
30654 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
30655             {
30656              
30657 0 0       0 Parse::RecDescent::_trace(q{<>},
30658             Parse::RecDescent::_tracefirst($text),
30659             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30660             $tracelevel)
30661             if defined $::RD_TRACE;
30662 0         0 $expectation->failed();
30663 0         0 last;
30664             }
30665 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [constant]<< (return value: [}
30666             . $_tok . q{]},
30667              
30668             Parse::RecDescent::_tracefirst($text),
30669             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30670             $tracelevel)
30671             if defined $::RD_TRACE;
30672 0         0 $item{q{constant}} = $_tok;
30673 0         0 push @item, $_tok;
30674              
30675             }
30676              
30677              
30678 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [constant]<<},
30679             Parse::RecDescent::_tracefirst($text),
30680             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30681             $tracelevel)
30682             if defined $::RD_TRACE;
30683 0         0 $_matched = 1;
30684 0         0 last;
30685             }
30686              
30687              
30688 0   0     0 while (!$_matched && !$commit)
30689             {
30690              
30691 0 0       0 Parse::RecDescent::_trace(q{Trying production: [column_name]},
30692             Parse::RecDescent::_tracefirst($_[1]),
30693             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30694             $tracelevel)
30695             if defined $::RD_TRACE;
30696 0         0 my $thisprod = $thisrule->{"prods"}[3];
30697 0         0 $text = $_[1];
30698 0         0 my $_savetext;
30699 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30700 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30701 0         0 my $repcount = 0;
30702              
30703              
30704 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
30705             Parse::RecDescent::_tracefirst($text),
30706             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30707             $tracelevel)
30708             if defined $::RD_TRACE;
30709 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         247  
  0         0  
30710 0         0 $expectation->is(q{})->at($text);
30711 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
30712             {
30713              
30714 0 0       0 Parse::RecDescent::_trace(q{<>},
30715             Parse::RecDescent::_tracefirst($text),
30716             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30717             $tracelevel)
30718             if defined $::RD_TRACE;
30719 0         0 $expectation->failed();
30720 0         0 last;
30721             }
30722 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
30723             . $_tok . q{]},
30724              
30725             Parse::RecDescent::_tracefirst($text),
30726             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30727             $tracelevel)
30728             if defined $::RD_TRACE;
30729 0         0 $item{q{column_name}} = $_tok;
30730 0         0 push @item, $_tok;
30731              
30732             }
30733              
30734              
30735 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [column_name]<<},
30736             Parse::RecDescent::_tracefirst($text),
30737             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30738             $tracelevel)
30739             if defined $::RD_TRACE;
30740 0         0 $_matched = 1;
30741 0         0 last;
30742             }
30743              
30744              
30745 0   0     0 while (!$_matched && !$commit)
30746             {
30747              
30748 0 0       0 Parse::RecDescent::_trace(q{Trying production: [host_variable]},
30749             Parse::RecDescent::_tracefirst($_[1]),
30750             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30751             $tracelevel)
30752             if defined $::RD_TRACE;
30753 0         0 my $thisprod = $thisrule->{"prods"}[4];
30754 0         0 $text = $_[1];
30755 0         0 my $_savetext;
30756 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30757 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30758 0         0 my $repcount = 0;
30759              
30760              
30761 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [host_variable]},
30762             Parse::RecDescent::_tracefirst($text),
30763             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30764             $tracelevel)
30765             if defined $::RD_TRACE;
30766 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         255  
  0         0  
30767 0         0 $expectation->is(q{})->at($text);
30768 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::host_variable($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
30769             {
30770              
30771 0 0       0 Parse::RecDescent::_trace(q{<>},
30772             Parse::RecDescent::_tracefirst($text),
30773             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30774             $tracelevel)
30775             if defined $::RD_TRACE;
30776 0         0 $expectation->failed();
30777 0         0 last;
30778             }
30779 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [host_variable]<< (return value: [}
30780             . $_tok . q{]},
30781              
30782             Parse::RecDescent::_tracefirst($text),
30783             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30784             $tracelevel)
30785             if defined $::RD_TRACE;
30786 0         0 $item{q{host_variable}} = $_tok;
30787 0         0 push @item, $_tok;
30788              
30789             }
30790              
30791              
30792 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [host_variable]<<},
30793             Parse::RecDescent::_tracefirst($text),
30794             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30795             $tracelevel)
30796             if defined $::RD_TRACE;
30797 0         0 $_matched = 1;
30798 0         0 last;
30799             }
30800              
30801              
30802 0   0     0 while (!$_matched && !$commit)
30803             {
30804              
30805 0 0       0 Parse::RecDescent::_trace(q{Trying production: [special_register]},
30806             Parse::RecDescent::_tracefirst($_[1]),
30807             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30808             $tracelevel)
30809             if defined $::RD_TRACE;
30810 0         0 my $thisprod = $thisrule->{"prods"}[5];
30811 0         0 $text = $_[1];
30812 0         0 my $_savetext;
30813 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30814 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30815 0         0 my $repcount = 0;
30816              
30817              
30818 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [special_register]},
30819             Parse::RecDescent::_tracefirst($text),
30820             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30821             $tracelevel)
30822             if defined $::RD_TRACE;
30823 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         352  
  0         0  
30824 0         0 $expectation->is(q{})->at($text);
30825 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::special_register($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
30826             {
30827              
30828 0 0       0 Parse::RecDescent::_trace(q{<>},
30829             Parse::RecDescent::_tracefirst($text),
30830             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30831             $tracelevel)
30832             if defined $::RD_TRACE;
30833 0         0 $expectation->failed();
30834 0         0 last;
30835             }
30836 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [special_register]<< (return value: [}
30837             . $_tok . q{]},
30838              
30839             Parse::RecDescent::_tracefirst($text),
30840             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30841             $tracelevel)
30842             if defined $::RD_TRACE;
30843 0         0 $item{q{special_register}} = $_tok;
30844 0         0 push @item, $_tok;
30845              
30846             }
30847              
30848              
30849 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [special_register]<<},
30850             Parse::RecDescent::_tracefirst($text),
30851             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30852             $tracelevel)
30853             if defined $::RD_TRACE;
30854 0         0 $_matched = 1;
30855 0         0 last;
30856             }
30857              
30858              
30859 0   0     0 while (!$_matched && !$commit)
30860             {
30861              
30862 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['(' scalar_fullselect ')']},
30863             Parse::RecDescent::_tracefirst($_[1]),
30864             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30865             $tracelevel)
30866             if defined $::RD_TRACE;
30867 0         0 my $thisprod = $thisrule->{"prods"}[6];
30868 0         0 $text = $_[1];
30869 0         0 my $_savetext;
30870 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30871 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30872 0         0 my $repcount = 0;
30873              
30874              
30875 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
30876             Parse::RecDescent::_tracefirst($text),
30877             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30878             $tracelevel)
30879             if defined $::RD_TRACE;
30880 0         0 $lastsep = "";
30881 0         0 $expectation->is(q{})->at($text);
30882              
30883              
30884 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
30885             {
30886              
30887 0         0 $expectation->failed();
30888 0 0       0 Parse::RecDescent::_trace(qq{<>},
30889             Parse::RecDescent::_tracefirst($text))
30890             if defined $::RD_TRACE;
30891 0         0 last;
30892             }
30893 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30894             . $& . q{])},
30895             Parse::RecDescent::_tracefirst($text))
30896             if defined $::RD_TRACE;
30897 0         0 push @item, $item{__STRING1__}=$&;
30898              
30899              
30900 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [scalar_fullselect]},
30901             Parse::RecDescent::_tracefirst($text),
30902             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30903             $tracelevel)
30904             if defined $::RD_TRACE;
30905 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         419  
  0         0  
30906 0         0 $expectation->is(q{scalar_fullselect})->at($text);
30907 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scalar_fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
30908             {
30909              
30910 0 0       0 Parse::RecDescent::_trace(q{<>},
30911             Parse::RecDescent::_tracefirst($text),
30912             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30913             $tracelevel)
30914             if defined $::RD_TRACE;
30915 0         0 $expectation->failed();
30916 0         0 last;
30917             }
30918 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [scalar_fullselect]<< (return value: [}
30919             . $_tok . q{]},
30920              
30921             Parse::RecDescent::_tracefirst($text),
30922             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30923             $tracelevel)
30924             if defined $::RD_TRACE;
30925 0         0 $item{q{scalar_fullselect}} = $_tok;
30926 0         0 push @item, $_tok;
30927              
30928             }
30929              
30930 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
30931             Parse::RecDescent::_tracefirst($text),
30932             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30933             $tracelevel)
30934             if defined $::RD_TRACE;
30935 0         0 $lastsep = "";
30936 0         0 $expectation->is(q{')'})->at($text);
30937              
30938              
30939 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
30940             {
30941              
30942 0         0 $expectation->failed();
30943 0 0       0 Parse::RecDescent::_trace(qq{<>},
30944             Parse::RecDescent::_tracefirst($text))
30945             if defined $::RD_TRACE;
30946 0         0 last;
30947             }
30948 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30949             . $& . q{])},
30950             Parse::RecDescent::_tracefirst($text))
30951             if defined $::RD_TRACE;
30952 0         0 push @item, $item{__STRING2__}=$&;
30953              
30954              
30955              
30956 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['(' scalar_fullselect ')']<<},
30957             Parse::RecDescent::_tracefirst($text),
30958             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30959             $tracelevel)
30960             if defined $::RD_TRACE;
30961 0         0 $_matched = 1;
30962 0         0 last;
30963             }
30964              
30965              
30966 0   0     0 while (!$_matched && !$commit)
30967             {
30968              
30969 0 0       0 Parse::RecDescent::_trace(q{Trying production: [labeled_duration]},
30970             Parse::RecDescent::_tracefirst($_[1]),
30971             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30972             $tracelevel)
30973             if defined $::RD_TRACE;
30974 0         0 my $thisprod = $thisrule->{"prods"}[7];
30975 0         0 $text = $_[1];
30976 0         0 my $_savetext;
30977 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30978 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30979 0         0 my $repcount = 0;
30980              
30981              
30982 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [labeled_duration]},
30983             Parse::RecDescent::_tracefirst($text),
30984             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30985             $tracelevel)
30986             if defined $::RD_TRACE;
30987 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         231  
  0         0  
30988 0         0 $expectation->is(q{})->at($text);
30989 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::labeled_duration($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
30990             {
30991              
30992 0 0       0 Parse::RecDescent::_trace(q{<>},
30993             Parse::RecDescent::_tracefirst($text),
30994             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30995             $tracelevel)
30996             if defined $::RD_TRACE;
30997 0         0 $expectation->failed();
30998 0         0 last;
30999             }
31000 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [labeled_duration]<< (return value: [}
31001             . $_tok . q{]},
31002              
31003             Parse::RecDescent::_tracefirst($text),
31004             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31005             $tracelevel)
31006             if defined $::RD_TRACE;
31007 0         0 $item{q{labeled_duration}} = $_tok;
31008 0         0 push @item, $_tok;
31009              
31010             }
31011              
31012              
31013 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [labeled_duration]<<},
31014             Parse::RecDescent::_tracefirst($text),
31015             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31016             $tracelevel)
31017             if defined $::RD_TRACE;
31018 0         0 $_matched = 1;
31019 0         0 last;
31020             }
31021              
31022              
31023 0   0     0 while (!$_matched && !$commit)
31024             {
31025              
31026 0 0       0 Parse::RecDescent::_trace(q{Trying production: [case_expression]},
31027             Parse::RecDescent::_tracefirst($_[1]),
31028             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31029             $tracelevel)
31030             if defined $::RD_TRACE;
31031 0         0 my $thisprod = $thisrule->{"prods"}[8];
31032 0         0 $text = $_[1];
31033 0         0 my $_savetext;
31034 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31035 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31036 0         0 my $repcount = 0;
31037              
31038              
31039 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [case_expression]},
31040             Parse::RecDescent::_tracefirst($text),
31041             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31042             $tracelevel)
31043             if defined $::RD_TRACE;
31044 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         250  
  0         0  
31045 0         0 $expectation->is(q{})->at($text);
31046 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::case_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
31047             {
31048              
31049 0 0       0 Parse::RecDescent::_trace(q{<>},
31050             Parse::RecDescent::_tracefirst($text),
31051             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31052             $tracelevel)
31053             if defined $::RD_TRACE;
31054 0         0 $expectation->failed();
31055 0         0 last;
31056             }
31057 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [case_expression]<< (return value: [}
31058             . $_tok . q{]},
31059              
31060             Parse::RecDescent::_tracefirst($text),
31061             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31062             $tracelevel)
31063             if defined $::RD_TRACE;
31064 0         0 $item{q{case_expression}} = $_tok;
31065 0         0 push @item, $_tok;
31066              
31067             }
31068              
31069              
31070 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [case_expression]<<},
31071             Parse::RecDescent::_tracefirst($text),
31072             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31073             $tracelevel)
31074             if defined $::RD_TRACE;
31075 0         0 $_matched = 1;
31076 0         0 last;
31077             }
31078              
31079              
31080 0   0     0 while (!$_matched && !$commit)
31081             {
31082              
31083 0 0       0 Parse::RecDescent::_trace(q{Trying production: [cast_specification]},
31084             Parse::RecDescent::_tracefirst($_[1]),
31085             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31086             $tracelevel)
31087             if defined $::RD_TRACE;
31088 0         0 my $thisprod = $thisrule->{"prods"}[9];
31089 0         0 $text = $_[1];
31090 0         0 my $_savetext;
31091 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31092 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31093 0         0 my $repcount = 0;
31094              
31095              
31096 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [cast_specification]},
31097             Parse::RecDescent::_tracefirst($text),
31098             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31099             $tracelevel)
31100             if defined $::RD_TRACE;
31101 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         269  
  0         0  
31102 0         0 $expectation->is(q{})->at($text);
31103 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cast_specification($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
31104             {
31105              
31106 0 0       0 Parse::RecDescent::_trace(q{<>},
31107             Parse::RecDescent::_tracefirst($text),
31108             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31109             $tracelevel)
31110             if defined $::RD_TRACE;
31111 0         0 $expectation->failed();
31112 0         0 last;
31113             }
31114 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [cast_specification]<< (return value: [}
31115             . $_tok . q{]},
31116              
31117             Parse::RecDescent::_tracefirst($text),
31118             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31119             $tracelevel)
31120             if defined $::RD_TRACE;
31121 0         0 $item{q{cast_specification}} = $_tok;
31122 0         0 push @item, $_tok;
31123              
31124             }
31125              
31126              
31127 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [cast_specification]<<},
31128             Parse::RecDescent::_tracefirst($text),
31129             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31130             $tracelevel)
31131             if defined $::RD_TRACE;
31132 0         0 $_matched = 1;
31133 0         0 last;
31134             }
31135              
31136              
31137 0   0     0 while (!$_matched && !$commit)
31138             {
31139              
31140 0 0       0 Parse::RecDescent::_trace(q{Trying production: [OLAP_function]},
31141             Parse::RecDescent::_tracefirst($_[1]),
31142             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31143             $tracelevel)
31144             if defined $::RD_TRACE;
31145 0         0 my $thisprod = $thisrule->{"prods"}[10];
31146 0         0 $text = $_[1];
31147 0         0 my $_savetext;
31148 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31149 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31150 0         0 my $repcount = 0;
31151              
31152              
31153 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [OLAP_function]},
31154             Parse::RecDescent::_tracefirst($text),
31155             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31156             $tracelevel)
31157             if defined $::RD_TRACE;
31158 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         270  
  0         0  
31159 0         0 $expectation->is(q{})->at($text);
31160 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OLAP_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
31161             {
31162              
31163 0 0       0 Parse::RecDescent::_trace(q{<>},
31164             Parse::RecDescent::_tracefirst($text),
31165             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31166             $tracelevel)
31167             if defined $::RD_TRACE;
31168 0         0 $expectation->failed();
31169 0         0 last;
31170             }
31171 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [OLAP_function]<< (return value: [}
31172             . $_tok . q{]},
31173              
31174             Parse::RecDescent::_tracefirst($text),
31175             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31176             $tracelevel)
31177             if defined $::RD_TRACE;
31178 0         0 $item{q{OLAP_function}} = $_tok;
31179 0         0 push @item, $_tok;
31180              
31181             }
31182              
31183              
31184 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [OLAP_function]<<},
31185             Parse::RecDescent::_tracefirst($text),
31186             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31187             $tracelevel)
31188             if defined $::RD_TRACE;
31189 0         0 $_matched = 1;
31190 0         0 last;
31191             }
31192              
31193              
31194 0   0     0 while (!$_matched && !$commit)
31195             {
31196              
31197 0 0       0 Parse::RecDescent::_trace(q{Trying production: [method_invocation]},
31198             Parse::RecDescent::_tracefirst($_[1]),
31199             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31200             $tracelevel)
31201             if defined $::RD_TRACE;
31202 0         0 my $thisprod = $thisrule->{"prods"}[11];
31203 0         0 $text = $_[1];
31204 0         0 my $_savetext;
31205 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31206 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31207 0         0 my $repcount = 0;
31208              
31209              
31210 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [method_invocation]},
31211             Parse::RecDescent::_tracefirst($text),
31212             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31213             $tracelevel)
31214             if defined $::RD_TRACE;
31215 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         258  
  0         0  
31216 0         0 $expectation->is(q{})->at($text);
31217 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_invocation($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
31218             {
31219              
31220 0 0       0 Parse::RecDescent::_trace(q{<>},
31221             Parse::RecDescent::_tracefirst($text),
31222             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31223             $tracelevel)
31224             if defined $::RD_TRACE;
31225 0         0 $expectation->failed();
31226 0         0 last;
31227             }
31228 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [method_invocation]<< (return value: [}
31229             . $_tok . q{]},
31230              
31231             Parse::RecDescent::_tracefirst($text),
31232             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31233             $tracelevel)
31234             if defined $::RD_TRACE;
31235 0         0 $item{q{method_invocation}} = $_tok;
31236 0         0 push @item, $_tok;
31237              
31238             }
31239              
31240              
31241 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [method_invocation]<<},
31242             Parse::RecDescent::_tracefirst($text),
31243             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31244             $tracelevel)
31245             if defined $::RD_TRACE;
31246 0         0 $_matched = 1;
31247 0         0 last;
31248             }
31249              
31250              
31251 0   0     0 while (!$_matched && !$commit)
31252             {
31253              
31254 0 0       0 Parse::RecDescent::_trace(q{Trying production: [subtype_treatment]},
31255             Parse::RecDescent::_tracefirst($_[1]),
31256             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31257             $tracelevel)
31258             if defined $::RD_TRACE;
31259 0         0 my $thisprod = $thisrule->{"prods"}[12];
31260 0         0 $text = $_[1];
31261 0         0 my $_savetext;
31262 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31263 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31264 0         0 my $repcount = 0;
31265              
31266              
31267 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [subtype_treatment]},
31268             Parse::RecDescent::_tracefirst($text),
31269             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31270             $tracelevel)
31271             if defined $::RD_TRACE;
31272 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         261  
  0         0  
31273 0         0 $expectation->is(q{})->at($text);
31274 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subtype_treatment($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
31275             {
31276              
31277 0 0       0 Parse::RecDescent::_trace(q{<>},
31278             Parse::RecDescent::_tracefirst($text),
31279             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31280             $tracelevel)
31281             if defined $::RD_TRACE;
31282 0         0 $expectation->failed();
31283 0         0 last;
31284             }
31285 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [subtype_treatment]<< (return value: [}
31286             . $_tok . q{]},
31287              
31288             Parse::RecDescent::_tracefirst($text),
31289             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31290             $tracelevel)
31291             if defined $::RD_TRACE;
31292 0         0 $item{q{subtype_treatment}} = $_tok;
31293 0         0 push @item, $_tok;
31294              
31295             }
31296              
31297              
31298 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [subtype_treatment]<<},
31299             Parse::RecDescent::_tracefirst($text),
31300             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31301             $tracelevel)
31302             if defined $::RD_TRACE;
31303 0         0 $_matched = 1;
31304 0         0 last;
31305             }
31306              
31307              
31308 0   0     0 while (!$_matched && !$commit)
31309             {
31310              
31311 0 0       0 Parse::RecDescent::_trace(q{Trying production: [sequence_reference]},
31312             Parse::RecDescent::_tracefirst($_[1]),
31313             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31314             $tracelevel)
31315             if defined $::RD_TRACE;
31316 0         0 my $thisprod = $thisrule->{"prods"}[13];
31317 0         0 $text = $_[1];
31318 0         0 my $_savetext;
31319 0         0 @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31320 0         0 %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31321 0         0 my $repcount = 0;
31322              
31323              
31324 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [sequence_reference]},
31325             Parse::RecDescent::_tracefirst($text),
31326             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31327             $tracelevel)
31328             if defined $::RD_TRACE;
31329 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         668  
  0         0  
31330 0         0 $expectation->is(q{})->at($text);
31331 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_reference($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
31332             {
31333              
31334 0 0       0 Parse::RecDescent::_trace(q{<>},
31335             Parse::RecDescent::_tracefirst($text),
31336             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31337             $tracelevel)
31338             if defined $::RD_TRACE;
31339 0         0 $expectation->failed();
31340 0         0 last;
31341             }
31342 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [sequence_reference]<< (return value: [}
31343             . $_tok . q{]},
31344              
31345             Parse::RecDescent::_tracefirst($text),
31346             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31347             $tracelevel)
31348             if defined $::RD_TRACE;
31349 0         0 $item{q{sequence_reference}} = $_tok;
31350 0         0 push @item, $_tok;
31351              
31352             }
31353              
31354              
31355 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [sequence_reference]<<},
31356             Parse::RecDescent::_tracefirst($text),
31357             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31358             $tracelevel)
31359             if defined $::RD_TRACE;
31360 0         0 $_matched = 1;
31361 0         0 last;
31362             }
31363              
31364              
31365 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
31366             {
31367              
31368              
31369 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
31370 0 0       0 Parse::RecDescent::_trace(q{<>},
31371             Parse::RecDescent::_tracefirst($_[1]),
31372             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31373             $tracelevel)
31374             if defined $::RD_TRACE;
31375 0         0 return undef;
31376             }
31377 0 0 0     0 if (!defined($return) && defined($score))
31378             {
31379 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
31380             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31381             $tracelevel)
31382             if defined $::RD_TRACE;
31383 0         0 $return = $score_return;
31384             }
31385 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
31386 0 0       0 $return = $item[$#item] unless defined $return;
31387 0 0       0 if (defined $::RD_TRACE)
31388             {
31389 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
31390             $return . q{])}, "",
31391             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31392             $tracelevel);
31393 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
31394             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
31395             Parse::RecDescent::_tracefirst($text),
31396             , q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31397             $tracelevel)
31398             }
31399 0         0 $_[1] = $text;
31400 0         0 return $return;
31401             }
31402              
31403             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31404             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::startrule
31405             {
31406 1     1   126 my $thisparser = $_[0];
31407 1     1   9 use vars q{$tracelevel};
  1         2  
  1         393  
31408 1   50     8 local $tracelevel = ($tracelevel||0)+1;
31409 1         3 $ERRORS = 0;
31410 1         3 my $thisrule = $thisparser->{"rules"}{"startrule"};
31411              
31412 1 50       4 Parse::RecDescent::_trace(q{Trying rule: [startrule]},
31413             Parse::RecDescent::_tracefirst($_[1]),
31414             q{startrule},
31415             $tracelevel)
31416             if defined $::RD_TRACE;
31417              
31418              
31419 1         3 my $err_at = @{$thisparser->{errors}};
  1         3  
31420              
31421 1         12 my $score;
31422             my $score_return;
31423 1         0 my $_tok;
31424 1         3 my $return = undef;
31425 1         2 my $_matched=0;
31426 1         2 my $commit=0;
31427 1         3 my @item = ();
31428 1         2 my %item = ();
31429 1   33     5 my $repeating = defined($_[2]) && $_[2];
31430 1   33     4 my $_noactions = defined($_[3]) && $_[3];
31431 1 50       4 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  1         2  
  1         5  
31432 1 50       10 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
31433 1         2 my $text;
31434 1         2 my $lastsep="";
31435 1         5 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31436 1         63 $expectation->at($_[1]);
31437              
31438 1         5 my $thisline;
31439 1         9 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31440              
31441              
31442              
31443 1   33     15 while (!$_matched && !$commit)
31444             {
31445              
31446 1 50       16 Parse::RecDescent::_trace(q{Trying production: [statement eofile]},
31447             Parse::RecDescent::_tracefirst($_[1]),
31448             q{startrule},
31449             $tracelevel)
31450             if defined $::RD_TRACE;
31451 1         4 my $thisprod = $thisrule->{"prods"}[0];
31452 1         2 $text = $_[1];
31453 1         1 my $_savetext;
31454 1         3 @item = (q{startrule});
31455 1         4 %item = (__RULE__ => q{startrule});
31456 1         2 my $repcount = 0;
31457              
31458              
31459 1 50       8 Parse::RecDescent::_trace(q{Trying repeated subrule: [statement]},
31460             Parse::RecDescent::_tracefirst($text),
31461             q{startrule},
31462             $tracelevel)
31463             if defined $::RD_TRACE;
31464 1         5 $expectation->is(q{})->at($text);
31465              
31466 1 50       13 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::statement, 1, 100000000, $_noactions,$expectation,undef)))
31467             {
31468 1 50       14 Parse::RecDescent::_trace(q{<>},
31469             Parse::RecDescent::_tracefirst($text),
31470             q{startrule},
31471             $tracelevel)
31472             if defined $::RD_TRACE;
31473 1         2 last;
31474             }
31475 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [statement]<< (}
31476             . @$_tok . q{ times)},
31477              
31478             Parse::RecDescent::_tracefirst($text),
31479             q{startrule},
31480             $tracelevel)
31481             if defined $::RD_TRACE;
31482 0         0 $item{q{statement(s)}} = $_tok;
31483 0         0 push @item, $_tok;
31484              
31485              
31486              
31487 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [eofile]},
31488             Parse::RecDescent::_tracefirst($text),
31489             q{startrule},
31490             $tracelevel)
31491             if defined $::RD_TRACE;
31492 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         453  
  0         0  
31493 0         0 $expectation->is(q{eofile})->at($text);
31494 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::eofile($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
31495             {
31496              
31497 0 0       0 Parse::RecDescent::_trace(q{<>},
31498             Parse::RecDescent::_tracefirst($text),
31499             q{startrule},
31500             $tracelevel)
31501             if defined $::RD_TRACE;
31502 0         0 $expectation->failed();
31503 0         0 last;
31504             }
31505 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [eofile]<< (return value: [}
31506             . $_tok . q{]},
31507              
31508             Parse::RecDescent::_tracefirst($text),
31509             q{startrule},
31510             $tracelevel)
31511             if defined $::RD_TRACE;
31512 0         0 $item{q{eofile}} = $_tok;
31513 0         0 push @item, $_tok;
31514              
31515             }
31516              
31517 0 0       0 Parse::RecDescent::_trace(q{Trying action},
31518             Parse::RecDescent::_tracefirst($text),
31519             q{startrule},
31520             $tracelevel)
31521             if defined $::RD_TRACE;
31522              
31523              
31524 0 0       0 $_tok = ($_noactions) ? 0 : do {
31525 0         0 $return = {
31526             tables => \%tables,
31527             views => \@views,
31528             triggers => \@triggers,
31529             }
31530             };
31531 0 0       0 unless (defined $_tok)
31532             {
31533 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
31534             if defined $::RD_TRACE;
31535 0         0 last;
31536             }
31537 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
31538             . $_tok . q{])},
31539             Parse::RecDescent::_tracefirst($text))
31540             if defined $::RD_TRACE;
31541 0         0 push @item, $_tok;
31542 0         0 $item{__ACTION1__}=$_tok;
31543              
31544              
31545              
31546 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [statement eofile]<<},
31547             Parse::RecDescent::_tracefirst($text),
31548             q{startrule},
31549             $tracelevel)
31550             if defined $::RD_TRACE;
31551 0         0 $_matched = 1;
31552 0         0 last;
31553             }
31554              
31555              
31556 1 50 33     11 unless ( $_matched || defined($return) || defined($score) )
      33        
31557             {
31558              
31559              
31560 1         2 $_[1] = $text; # NOT SURE THIS IS NEEDED
31561 1 50       4 Parse::RecDescent::_trace(q{<>},
31562             Parse::RecDescent::_tracefirst($_[1]),
31563             q{startrule},
31564             $tracelevel)
31565             if defined $::RD_TRACE;
31566 1         6 return undef;
31567             }
31568 0 0 0     0 if (!defined($return) && defined($score))
31569             {
31570 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
31571             q{startrule},
31572             $tracelevel)
31573             if defined $::RD_TRACE;
31574 0         0 $return = $score_return;
31575             }
31576 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
31577 0 0       0 $return = $item[$#item] unless defined $return;
31578 0 0       0 if (defined $::RD_TRACE)
31579             {
31580 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
31581             $return . q{])}, "",
31582             q{startrule},
31583             $tracelevel);
31584 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
31585             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
31586             Parse::RecDescent::_tracefirst($text),
31587             , q{startrule},
31588             $tracelevel)
31589             }
31590 0         0 $_[1] = $text;
31591 0         0 return $return;
31592             }
31593              
31594             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31595             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cast_specification
31596             {
31597 0     0   0 my $thisparser = $_[0];
31598 1     1   7 use vars q{$tracelevel};
  1         3  
  1         289  
31599 0   0     0 local $tracelevel = ($tracelevel||0)+1;
31600 0         0 $ERRORS = 0;
31601 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_cast_specification"};
31602              
31603 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_cast_specification]},
31604             Parse::RecDescent::_tracefirst($_[1]),
31605             q{_alternation_1_of_production_1_of_rule_cast_specification},
31606             $tracelevel)
31607             if defined $::RD_TRACE;
31608              
31609              
31610 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
31611              
31612 0         0 my $score;
31613             my $score_return;
31614 0         0 my $_tok;
31615 0         0 my $return = undef;
31616 0         0 my $_matched=0;
31617 0         0 my $commit=0;
31618 0         0 my @item = ();
31619 0         0 my %item = ();
31620 0   0     0 my $repeating = defined($_[2]) && $_[2];
31621 0   0     0 my $_noactions = defined($_[3]) && $_[3];
31622 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
31623 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
31624 0         0 my $text;
31625 0         0 my $lastsep="";
31626 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31627 0         0 $expectation->at($_[1]);
31628              
31629 0         0 my $thisline;
31630 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31631              
31632              
31633              
31634 0   0     0 while (!$_matched && !$commit)
31635             {
31636              
31637 0 0       0 Parse::RecDescent::_trace(q{Trying production: [expression]},
31638             Parse::RecDescent::_tracefirst($_[1]),
31639             q{_alternation_1_of_production_1_of_rule_cast_specification},
31640             $tracelevel)
31641             if defined $::RD_TRACE;
31642 0         0 my $thisprod = $thisrule->{"prods"}[0];
31643 0         0 $text = $_[1];
31644 0         0 my $_savetext;
31645 0         0 @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
31646 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
31647 0         0 my $repcount = 0;
31648              
31649              
31650 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expression]},
31651             Parse::RecDescent::_tracefirst($text),
31652             q{_alternation_1_of_production_1_of_rule_cast_specification},
31653             $tracelevel)
31654             if defined $::RD_TRACE;
31655 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         548  
  0         0  
31656 0         0 $expectation->is(q{})->at($text);
31657 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
31658             {
31659              
31660 0 0       0 Parse::RecDescent::_trace(q{<>},
31661             Parse::RecDescent::_tracefirst($text),
31662             q{_alternation_1_of_production_1_of_rule_cast_specification},
31663             $tracelevel)
31664             if defined $::RD_TRACE;
31665 0         0 $expectation->failed();
31666 0         0 last;
31667             }
31668 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
31669             . $_tok . q{]},
31670              
31671             Parse::RecDescent::_tracefirst($text),
31672             q{_alternation_1_of_production_1_of_rule_cast_specification},
31673             $tracelevel)
31674             if defined $::RD_TRACE;
31675 0         0 $item{q{expression}} = $_tok;
31676 0         0 push @item, $_tok;
31677              
31678             }
31679              
31680              
31681 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
31682             Parse::RecDescent::_tracefirst($text),
31683             q{_alternation_1_of_production_1_of_rule_cast_specification},
31684             $tracelevel)
31685             if defined $::RD_TRACE;
31686 0         0 $_matched = 1;
31687 0         0 last;
31688             }
31689              
31690              
31691 0   0     0 while (!$_matched && !$commit)
31692             {
31693              
31694 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NULL/i]},
31695             Parse::RecDescent::_tracefirst($_[1]),
31696             q{_alternation_1_of_production_1_of_rule_cast_specification},
31697             $tracelevel)
31698             if defined $::RD_TRACE;
31699 0         0 my $thisprod = $thisrule->{"prods"}[1];
31700 0         0 $text = $_[1];
31701 0         0 my $_savetext;
31702 0         0 @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
31703 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
31704 0         0 my $repcount = 0;
31705              
31706              
31707 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NULL/i]}, Parse::RecDescent::_tracefirst($text),
31708             q{_alternation_1_of_production_1_of_rule_cast_specification},
31709             $tracelevel)
31710             if defined $::RD_TRACE;
31711 0         0 $lastsep = "";
31712 0         0 $expectation->is(q{})->at($text);
31713              
31714              
31715 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NULL)//i)
  0 0       0  
31716             {
31717              
31718 0         0 $expectation->failed();
31719 0 0       0 Parse::RecDescent::_trace(q{<>},
31720             Parse::RecDescent::_tracefirst($text))
31721             if defined $::RD_TRACE;
31722              
31723 0         0 last;
31724             }
31725 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
31726             . $& . q{])},
31727             Parse::RecDescent::_tracefirst($text))
31728             if defined $::RD_TRACE;
31729 0         0 push @item, $item{__PATTERN1__}=$&;
31730              
31731              
31732              
31733 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NULL/i]<<},
31734             Parse::RecDescent::_tracefirst($text),
31735             q{_alternation_1_of_production_1_of_rule_cast_specification},
31736             $tracelevel)
31737             if defined $::RD_TRACE;
31738 0         0 $_matched = 1;
31739 0         0 last;
31740             }
31741              
31742              
31743 0   0     0 while (!$_matched && !$commit)
31744             {
31745              
31746 0 0       0 Parse::RecDescent::_trace(q{Trying production: [parameter_marker]},
31747             Parse::RecDescent::_tracefirst($_[1]),
31748             q{_alternation_1_of_production_1_of_rule_cast_specification},
31749             $tracelevel)
31750             if defined $::RD_TRACE;
31751 0         0 my $thisprod = $thisrule->{"prods"}[2];
31752 0         0 $text = $_[1];
31753 0         0 my $_savetext;
31754 0         0 @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
31755 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
31756 0         0 my $repcount = 0;
31757              
31758              
31759 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [parameter_marker]},
31760             Parse::RecDescent::_tracefirst($text),
31761             q{_alternation_1_of_production_1_of_rule_cast_specification},
31762             $tracelevel)
31763             if defined $::RD_TRACE;
31764 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         380  
  0         0  
31765 0         0 $expectation->is(q{})->at($text);
31766 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::parameter_marker($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
31767             {
31768              
31769 0 0       0 Parse::RecDescent::_trace(q{<>},
31770             Parse::RecDescent::_tracefirst($text),
31771             q{_alternation_1_of_production_1_of_rule_cast_specification},
31772             $tracelevel)
31773             if defined $::RD_TRACE;
31774 0         0 $expectation->failed();
31775 0         0 last;
31776             }
31777 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [parameter_marker]<< (return value: [}
31778             . $_tok . q{]},
31779              
31780             Parse::RecDescent::_tracefirst($text),
31781             q{_alternation_1_of_production_1_of_rule_cast_specification},
31782             $tracelevel)
31783             if defined $::RD_TRACE;
31784 0         0 $item{q{parameter_marker}} = $_tok;
31785 0         0 push @item, $_tok;
31786              
31787             }
31788              
31789              
31790 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [parameter_marker]<<},
31791             Parse::RecDescent::_tracefirst($text),
31792             q{_alternation_1_of_production_1_of_rule_cast_specification},
31793             $tracelevel)
31794             if defined $::RD_TRACE;
31795 0         0 $_matched = 1;
31796 0         0 last;
31797             }
31798              
31799              
31800 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
31801             {
31802              
31803              
31804 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
31805 0 0       0 Parse::RecDescent::_trace(q{<>},
31806             Parse::RecDescent::_tracefirst($_[1]),
31807             q{_alternation_1_of_production_1_of_rule_cast_specification},
31808             $tracelevel)
31809             if defined $::RD_TRACE;
31810 0         0 return undef;
31811             }
31812 0 0 0     0 if (!defined($return) && defined($score))
31813             {
31814 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
31815             q{_alternation_1_of_production_1_of_rule_cast_specification},
31816             $tracelevel)
31817             if defined $::RD_TRACE;
31818 0         0 $return = $score_return;
31819             }
31820 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
31821 0 0       0 $return = $item[$#item] unless defined $return;
31822 0 0       0 if (defined $::RD_TRACE)
31823             {
31824 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
31825             $return . q{])}, "",
31826             q{_alternation_1_of_production_1_of_rule_cast_specification},
31827             $tracelevel);
31828 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
31829             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
31830             Parse::RecDescent::_tracefirst($text),
31831             , q{_alternation_1_of_production_1_of_rule_cast_specification},
31832             $tracelevel)
31833             }
31834 0         0 $_[1] = $text;
31835 0         0 return $return;
31836             }
31837              
31838             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31839             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::before
31840             {
31841 0     0   0 my $thisparser = $_[0];
31842 1     1   8 use vars q{$tracelevel};
  1         3  
  1         599  
31843 0   0     0 local $tracelevel = ($tracelevel||0)+1;
31844 0         0 $ERRORS = 0;
31845 0         0 my $thisrule = $thisparser->{"rules"}{"before"};
31846              
31847 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [before]},
31848             Parse::RecDescent::_tracefirst($_[1]),
31849             q{before},
31850             $tracelevel)
31851             if defined $::RD_TRACE;
31852              
31853              
31854 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
31855              
31856 0         0 my $score;
31857             my $score_return;
31858 0         0 my $_tok;
31859 0         0 my $return = undef;
31860 0         0 my $_matched=0;
31861 0         0 my $commit=0;
31862 0         0 my @item = ();
31863 0         0 my %item = ();
31864 0   0     0 my $repeating = defined($_[2]) && $_[2];
31865 0   0     0 my $_noactions = defined($_[3]) && $_[3];
31866 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
31867 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
31868 0         0 my $text;
31869 0         0 my $lastsep="";
31870 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31871 0         0 $expectation->at($_[1]);
31872              
31873 0         0 my $thisline;
31874 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31875              
31876              
31877              
31878 0   0     0 while (!$_matched && !$commit)
31879             {
31880              
31881 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NO CASCADE BEFORE/i]},
31882             Parse::RecDescent::_tracefirst($_[1]),
31883             q{before},
31884             $tracelevel)
31885             if defined $::RD_TRACE;
31886 0         0 my $thisprod = $thisrule->{"prods"}[0];
31887 0         0 $text = $_[1];
31888 0         0 my $_savetext;
31889 0         0 @item = (q{before});
31890 0         0 %item = (__RULE__ => q{before});
31891 0         0 my $repcount = 0;
31892              
31893              
31894 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NO CASCADE BEFORE/i]}, Parse::RecDescent::_tracefirst($text),
31895             q{before},
31896             $tracelevel)
31897             if defined $::RD_TRACE;
31898 0         0 $lastsep = "";
31899 0         0 $expectation->is(q{})->at($text);
31900              
31901              
31902 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NO CASCADE BEFORE)//i)
  0 0       0  
31903             {
31904              
31905 0         0 $expectation->failed();
31906 0 0       0 Parse::RecDescent::_trace(q{<>},
31907             Parse::RecDescent::_tracefirst($text))
31908             if defined $::RD_TRACE;
31909              
31910 0         0 last;
31911             }
31912 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
31913             . $& . q{])},
31914             Parse::RecDescent::_tracefirst($text))
31915             if defined $::RD_TRACE;
31916 0         0 push @item, $item{__PATTERN1__}=$&;
31917              
31918              
31919              
31920 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NO CASCADE BEFORE/i]<<},
31921             Parse::RecDescent::_tracefirst($text),
31922             q{before},
31923             $tracelevel)
31924             if defined $::RD_TRACE;
31925 0         0 $_matched = 1;
31926 0         0 last;
31927             }
31928              
31929              
31930 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
31931             {
31932              
31933              
31934 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
31935 0 0       0 Parse::RecDescent::_trace(q{<>},
31936             Parse::RecDescent::_tracefirst($_[1]),
31937             q{before},
31938             $tracelevel)
31939             if defined $::RD_TRACE;
31940 0         0 return undef;
31941             }
31942 0 0 0     0 if (!defined($return) && defined($score))
31943             {
31944 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
31945             q{before},
31946             $tracelevel)
31947             if defined $::RD_TRACE;
31948 0         0 $return = $score_return;
31949             }
31950 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
31951 0 0       0 $return = $item[$#item] unless defined $return;
31952 0 0       0 if (defined $::RD_TRACE)
31953             {
31954 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
31955             $return . q{])}, "",
31956             q{before},
31957             $tracelevel);
31958 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
31959             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
31960             Parse::RecDescent::_tracefirst($text),
31961             , q{before},
31962             $tracelevel)
31963             }
31964 0         0 $_[1] = $text;
31965 0         0 return $return;
31966             }
31967              
31968             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31969             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_83_of_rule_sysibm_function
31970             {
31971 0     0   0 my $thisparser = $_[0];
31972 1     1   8 use vars q{$tracelevel};
  1         3  
  1         775  
31973 0   0     0 local $tracelevel = ($tracelevel||0)+1;
31974 0         0 $ERRORS = 0;
31975 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_83_of_rule_sysibm_function"};
31976              
31977 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_83_of_rule_sysibm_function]},
31978             Parse::RecDescent::_tracefirst($_[1]),
31979             q{_alternation_1_of_production_83_of_rule_sysibm_function},
31980             $tracelevel)
31981             if defined $::RD_TRACE;
31982              
31983              
31984 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
31985              
31986 0         0 my $score;
31987             my $score_return;
31988 0         0 my $_tok;
31989 0         0 my $return = undef;
31990 0         0 my $_matched=0;
31991 0         0 my $commit=0;
31992 0         0 my @item = ();
31993 0         0 my %item = ();
31994 0   0     0 my $repeating = defined($_[2]) && $_[2];
31995 0   0     0 my $_noactions = defined($_[3]) && $_[3];
31996 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
31997 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
31998 0         0 my $text;
31999 0         0 my $lastsep="";
32000 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32001 0         0 $expectation->at($_[1]);
32002              
32003 0         0 my $thisline;
32004 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32005              
32006              
32007              
32008 0   0     0 while (!$_matched && !$commit)
32009             {
32010              
32011 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/UCASE/i]},
32012             Parse::RecDescent::_tracefirst($_[1]),
32013             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32014             $tracelevel)
32015             if defined $::RD_TRACE;
32016 0         0 my $thisprod = $thisrule->{"prods"}[0];
32017 0         0 $text = $_[1];
32018 0         0 my $_savetext;
32019 0         0 @item = (q{_alternation_1_of_production_83_of_rule_sysibm_function});
32020 0         0 %item = (__RULE__ => q{_alternation_1_of_production_83_of_rule_sysibm_function});
32021 0         0 my $repcount = 0;
32022              
32023              
32024 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/UCASE/i]}, Parse::RecDescent::_tracefirst($text),
32025             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32026             $tracelevel)
32027             if defined $::RD_TRACE;
32028 0         0 $lastsep = "";
32029 0         0 $expectation->is(q{})->at($text);
32030              
32031              
32032 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:UCASE)//i)
  0 0       0  
32033             {
32034              
32035 0         0 $expectation->failed();
32036 0 0       0 Parse::RecDescent::_trace(q{<>},
32037             Parse::RecDescent::_tracefirst($text))
32038             if defined $::RD_TRACE;
32039              
32040 0         0 last;
32041             }
32042 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32043             . $& . q{])},
32044             Parse::RecDescent::_tracefirst($text))
32045             if defined $::RD_TRACE;
32046 0         0 push @item, $item{__PATTERN1__}=$&;
32047              
32048              
32049              
32050 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/UCASE/i]<<},
32051             Parse::RecDescent::_tracefirst($text),
32052             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32053             $tracelevel)
32054             if defined $::RD_TRACE;
32055 0         0 $_matched = 1;
32056 0         0 last;
32057             }
32058              
32059              
32060 0   0     0 while (!$_matched && !$commit)
32061             {
32062              
32063 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/UPPER/i]},
32064             Parse::RecDescent::_tracefirst($_[1]),
32065             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32066             $tracelevel)
32067             if defined $::RD_TRACE;
32068 0         0 my $thisprod = $thisrule->{"prods"}[1];
32069 0         0 $text = $_[1];
32070 0         0 my $_savetext;
32071 0         0 @item = (q{_alternation_1_of_production_83_of_rule_sysibm_function});
32072 0         0 %item = (__RULE__ => q{_alternation_1_of_production_83_of_rule_sysibm_function});
32073 0         0 my $repcount = 0;
32074              
32075              
32076 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/UPPER/i]}, Parse::RecDescent::_tracefirst($text),
32077             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32078             $tracelevel)
32079             if defined $::RD_TRACE;
32080 0         0 $lastsep = "";
32081 0         0 $expectation->is(q{})->at($text);
32082              
32083              
32084 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:UPPER)//i)
  0 0       0  
32085             {
32086              
32087 0         0 $expectation->failed();
32088 0 0       0 Parse::RecDescent::_trace(q{<>},
32089             Parse::RecDescent::_tracefirst($text))
32090             if defined $::RD_TRACE;
32091              
32092 0         0 last;
32093             }
32094 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32095             . $& . q{])},
32096             Parse::RecDescent::_tracefirst($text))
32097             if defined $::RD_TRACE;
32098 0         0 push @item, $item{__PATTERN1__}=$&;
32099              
32100              
32101              
32102 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/UPPER/i]<<},
32103             Parse::RecDescent::_tracefirst($text),
32104             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32105             $tracelevel)
32106             if defined $::RD_TRACE;
32107 0         0 $_matched = 1;
32108 0         0 last;
32109             }
32110              
32111              
32112 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
32113             {
32114              
32115              
32116 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
32117 0 0       0 Parse::RecDescent::_trace(q{<>},
32118             Parse::RecDescent::_tracefirst($_[1]),
32119             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32120             $tracelevel)
32121             if defined $::RD_TRACE;
32122 0         0 return undef;
32123             }
32124 0 0 0     0 if (!defined($return) && defined($score))
32125             {
32126 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32127             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32128             $tracelevel)
32129             if defined $::RD_TRACE;
32130 0         0 $return = $score_return;
32131             }
32132 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
32133 0 0       0 $return = $item[$#item] unless defined $return;
32134 0 0       0 if (defined $::RD_TRACE)
32135             {
32136 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32137             $return . q{])}, "",
32138             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32139             $tracelevel);
32140 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
32141             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
32142             Parse::RecDescent::_tracefirst($text),
32143             , q{_alternation_1_of_production_83_of_rule_sysibm_function},
32144             $tracelevel)
32145             }
32146 0         0 $_[1] = $text;
32147 0         0 return $return;
32148             }
32149              
32150             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32151             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ranking_function
32152             {
32153 0     0   0 my $thisparser = $_[0];
32154 1     1   8 use vars q{$tracelevel};
  1         4  
  1         295  
32155 0   0     0 local $tracelevel = ($tracelevel||0)+1;
32156 0         0 $ERRORS = 0;
32157 0         0 my $thisrule = $thisparser->{"rules"}{"ranking_function"};
32158              
32159 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [ranking_function]},
32160             Parse::RecDescent::_tracefirst($_[1]),
32161             q{ranking_function},
32162             $tracelevel)
32163             if defined $::RD_TRACE;
32164              
32165              
32166 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
32167              
32168 0         0 my $score;
32169             my $score_return;
32170 0         0 my $_tok;
32171 0         0 my $return = undef;
32172 0         0 my $_matched=0;
32173 0         0 my $commit=0;
32174 0         0 my @item = ();
32175 0         0 my %item = ();
32176 0   0     0 my $repeating = defined($_[2]) && $_[2];
32177 0   0     0 my $_noactions = defined($_[3]) && $_[3];
32178 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
32179 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
32180 0         0 my $text;
32181 0         0 my $lastsep="";
32182 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32183 0         0 $expectation->at($_[1]);
32184              
32185 0         0 my $thisline;
32186 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32187              
32188              
32189              
32190 0   0     0 while (!$_matched && !$commit)
32191             {
32192              
32193 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/RANK/, or /DENSE_RANK|DENSERANK/i /OVER/i '(' window_partition_clause window_order_clause ')']},
32194             Parse::RecDescent::_tracefirst($_[1]),
32195             q{ranking_function},
32196             $tracelevel)
32197             if defined $::RD_TRACE;
32198 0         0 my $thisprod = $thisrule->{"prods"}[0];
32199 0         0 $text = $_[1];
32200 0         0 my $_savetext;
32201 0         0 @item = (q{ranking_function});
32202 0         0 %item = (__RULE__ => q{ranking_function});
32203 0         0 my $repcount = 0;
32204              
32205              
32206 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_ranking_function]},
32207             Parse::RecDescent::_tracefirst($text),
32208             q{ranking_function},
32209             $tracelevel)
32210             if defined $::RD_TRACE;
32211 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         518  
  0         0  
32212 0         0 $expectation->is(q{})->at($text);
32213 0 0   0   0 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 })))
  0         0  
32214             {
32215              
32216 0 0       0 Parse::RecDescent::_trace(q{<>},
32217             Parse::RecDescent::_tracefirst($text),
32218             q{ranking_function},
32219             $tracelevel)
32220             if defined $::RD_TRACE;
32221 0         0 $expectation->failed();
32222 0         0 last;
32223             }
32224 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_ranking_function]<< (return value: [}
32225             . $_tok . q{]},
32226              
32227             Parse::RecDescent::_tracefirst($text),
32228             q{ranking_function},
32229             $tracelevel)
32230             if defined $::RD_TRACE;
32231 0         0 $item{q{_alternation_1_of_production_1_of_rule_ranking_function}} = $_tok;
32232 0         0 push @item, $_tok;
32233              
32234             }
32235              
32236 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/OVER/i]}, Parse::RecDescent::_tracefirst($text),
32237             q{ranking_function},
32238             $tracelevel)
32239             if defined $::RD_TRACE;
32240 0         0 $lastsep = "";
32241 0         0 $expectation->is(q{/OVER/i})->at($text);
32242              
32243              
32244 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:OVER)//i)
  0 0       0  
32245             {
32246              
32247 0         0 $expectation->failed();
32248 0 0       0 Parse::RecDescent::_trace(q{<>},
32249             Parse::RecDescent::_tracefirst($text))
32250             if defined $::RD_TRACE;
32251              
32252 0         0 last;
32253             }
32254 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32255             . $& . q{])},
32256             Parse::RecDescent::_tracefirst($text))
32257             if defined $::RD_TRACE;
32258 0         0 push @item, $item{__PATTERN1__}=$&;
32259              
32260              
32261 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
32262             Parse::RecDescent::_tracefirst($text),
32263             q{ranking_function},
32264             $tracelevel)
32265             if defined $::RD_TRACE;
32266 0         0 $lastsep = "";
32267 0         0 $expectation->is(q{'('})->at($text);
32268              
32269              
32270 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
32271             {
32272              
32273 0         0 $expectation->failed();
32274 0 0       0 Parse::RecDescent::_trace(qq{<>},
32275             Parse::RecDescent::_tracefirst($text))
32276             if defined $::RD_TRACE;
32277 0         0 last;
32278             }
32279 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32280             . $& . q{])},
32281             Parse::RecDescent::_tracefirst($text))
32282             if defined $::RD_TRACE;
32283 0         0 push @item, $item{__STRING1__}=$&;
32284              
32285              
32286 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [window_partition_clause]},
32287             Parse::RecDescent::_tracefirst($text),
32288             q{ranking_function},
32289             $tracelevel)
32290             if defined $::RD_TRACE;
32291 0         0 $expectation->is(q{window_partition_clause})->at($text);
32292              
32293 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause, 0, 1, $_noactions,$expectation,undef)))
32294             {
32295 0 0       0 Parse::RecDescent::_trace(q{<>},
32296             Parse::RecDescent::_tracefirst($text),
32297             q{ranking_function},
32298             $tracelevel)
32299             if defined $::RD_TRACE;
32300 0         0 last;
32301             }
32302 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [window_partition_clause]<< (}
32303             . @$_tok . q{ times)},
32304              
32305             Parse::RecDescent::_tracefirst($text),
32306             q{ranking_function},
32307             $tracelevel)
32308             if defined $::RD_TRACE;
32309 0         0 $item{q{window_partition_clause(?)}} = $_tok;
32310 0         0 push @item, $_tok;
32311              
32312              
32313              
32314 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [window_order_clause]},
32315             Parse::RecDescent::_tracefirst($text),
32316             q{ranking_function},
32317             $tracelevel)
32318             if defined $::RD_TRACE;
32319 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         514  
  0         0  
32320 0         0 $expectation->is(q{window_order_clause})->at($text);
32321 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
32322             {
32323              
32324 0 0       0 Parse::RecDescent::_trace(q{<>},
32325             Parse::RecDescent::_tracefirst($text),
32326             q{ranking_function},
32327             $tracelevel)
32328             if defined $::RD_TRACE;
32329 0         0 $expectation->failed();
32330 0         0 last;
32331             }
32332 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [window_order_clause]<< (return value: [}
32333             . $_tok . q{]},
32334              
32335             Parse::RecDescent::_tracefirst($text),
32336             q{ranking_function},
32337             $tracelevel)
32338             if defined $::RD_TRACE;
32339 0         0 $item{q{window_order_clause}} = $_tok;
32340 0         0 push @item, $_tok;
32341              
32342             }
32343              
32344 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
32345             Parse::RecDescent::_tracefirst($text),
32346             q{ranking_function},
32347             $tracelevel)
32348             if defined $::RD_TRACE;
32349 0         0 $lastsep = "";
32350 0         0 $expectation->is(q{')'})->at($text);
32351              
32352              
32353 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
32354             {
32355              
32356 0         0 $expectation->failed();
32357 0 0       0 Parse::RecDescent::_trace(qq{<>},
32358             Parse::RecDescent::_tracefirst($text))
32359             if defined $::RD_TRACE;
32360 0         0 last;
32361             }
32362 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32363             . $& . q{])},
32364             Parse::RecDescent::_tracefirst($text))
32365             if defined $::RD_TRACE;
32366 0         0 push @item, $item{__STRING2__}=$&;
32367              
32368              
32369              
32370 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/RANK/, or /DENSE_RANK|DENSERANK/i /OVER/i '(' window_partition_clause window_order_clause ')']<<},
32371             Parse::RecDescent::_tracefirst($text),
32372             q{ranking_function},
32373             $tracelevel)
32374             if defined $::RD_TRACE;
32375 0         0 $_matched = 1;
32376 0         0 last;
32377             }
32378              
32379              
32380 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
32381             {
32382              
32383              
32384 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
32385 0 0       0 Parse::RecDescent::_trace(q{<>},
32386             Parse::RecDescent::_tracefirst($_[1]),
32387             q{ranking_function},
32388             $tracelevel)
32389             if defined $::RD_TRACE;
32390 0         0 return undef;
32391             }
32392 0 0 0     0 if (!defined($return) && defined($score))
32393             {
32394 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32395             q{ranking_function},
32396             $tracelevel)
32397             if defined $::RD_TRACE;
32398 0         0 $return = $score_return;
32399             }
32400 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
32401 0 0       0 $return = $item[$#item] unless defined $return;
32402 0 0       0 if (defined $::RD_TRACE)
32403             {
32404 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32405             $return . q{])}, "",
32406             q{ranking_function},
32407             $tracelevel);
32408 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
32409             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
32410             Parse::RecDescent::_tracefirst($text),
32411             , q{ranking_function},
32412             $tracelevel)
32413             }
32414 0         0 $_[1] = $text;
32415 0         0 return $return;
32416             }
32417              
32418             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32419             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition
32420             {
32421 0     0   0 my $thisparser = $_[0];
32422 1     1   8 use vars q{$tracelevel};
  1         2  
  1         383  
32423 0   0     0 local $tracelevel = ($tracelevel||0)+1;
32424 0         0 $ERRORS = 0;
32425 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition"};
32426              
32427 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition]},
32428             Parse::RecDescent::_tracefirst($_[1]),
32429             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32430             $tracelevel)
32431             if defined $::RD_TRACE;
32432              
32433              
32434 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
32435              
32436 0         0 my $score;
32437             my $score_return;
32438 0         0 my $_tok;
32439 0         0 my $return = undef;
32440 0         0 my $_matched=0;
32441 0         0 my $commit=0;
32442 0         0 my @item = ();
32443 0         0 my %item = ();
32444 0   0     0 my $repeating = defined($_[2]) && $_[2];
32445 0   0     0 my $_noactions = defined($_[3]) && $_[3];
32446 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
32447 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
32448 0         0 my $text;
32449 0         0 my $lastsep="";
32450 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32451 0         0 $expectation->at($_[1]);
32452              
32453 0         0 my $thisline;
32454 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32455              
32456              
32457              
32458 0   0     0 while (!$_matched && !$commit)
32459             {
32460              
32461 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/SELECTIVITY/i numeric_constant]},
32462             Parse::RecDescent::_tracefirst($_[1]),
32463             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32464             $tracelevel)
32465             if defined $::RD_TRACE;
32466 0         0 my $thisprod = $thisrule->{"prods"}[0];
32467 0         0 $text = $_[1];
32468 0         0 my $_savetext;
32469 0         0 @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition});
32470 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition});
32471 0         0 my $repcount = 0;
32472              
32473              
32474 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/SELECTIVITY/i]}, Parse::RecDescent::_tracefirst($text),
32475             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32476             $tracelevel)
32477             if defined $::RD_TRACE;
32478 0         0 $lastsep = "";
32479 0         0 $expectation->is(q{})->at($text);
32480              
32481              
32482 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:SELECTIVITY)//i)
  0 0       0  
32483             {
32484              
32485 0         0 $expectation->failed();
32486 0 0       0 Parse::RecDescent::_trace(q{<>},
32487             Parse::RecDescent::_tracefirst($text))
32488             if defined $::RD_TRACE;
32489              
32490 0         0 last;
32491             }
32492 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32493             . $& . q{])},
32494             Parse::RecDescent::_tracefirst($text))
32495             if defined $::RD_TRACE;
32496 0         0 push @item, $item{__PATTERN1__}=$&;
32497              
32498              
32499 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [numeric_constant]},
32500             Parse::RecDescent::_tracefirst($text),
32501             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32502             $tracelevel)
32503             if defined $::RD_TRACE;
32504 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         388  
  0         0  
32505 0         0 $expectation->is(q{numeric_constant})->at($text);
32506 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
32507             {
32508              
32509 0 0       0 Parse::RecDescent::_trace(q{<>},
32510             Parse::RecDescent::_tracefirst($text),
32511             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32512             $tracelevel)
32513             if defined $::RD_TRACE;
32514 0         0 $expectation->failed();
32515 0         0 last;
32516             }
32517 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [numeric_constant]<< (return value: [}
32518             . $_tok . q{]},
32519              
32520             Parse::RecDescent::_tracefirst($text),
32521             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32522             $tracelevel)
32523             if defined $::RD_TRACE;
32524 0         0 $item{q{numeric_constant}} = $_tok;
32525 0         0 push @item, $_tok;
32526              
32527             }
32528              
32529              
32530 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/SELECTIVITY/i numeric_constant]<<},
32531             Parse::RecDescent::_tracefirst($text),
32532             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32533             $tracelevel)
32534             if defined $::RD_TRACE;
32535 0         0 $_matched = 1;
32536 0         0 last;
32537             }
32538              
32539              
32540 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
32541             {
32542              
32543              
32544 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
32545 0 0       0 Parse::RecDescent::_trace(q{<>},
32546             Parse::RecDescent::_tracefirst($_[1]),
32547             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32548             $tracelevel)
32549             if defined $::RD_TRACE;
32550 0         0 return undef;
32551             }
32552 0 0 0     0 if (!defined($return) && defined($score))
32553             {
32554 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32555             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32556             $tracelevel)
32557             if defined $::RD_TRACE;
32558 0         0 $return = $score_return;
32559             }
32560 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
32561 0 0       0 $return = $item[$#item] unless defined $return;
32562 0 0       0 if (defined $::RD_TRACE)
32563             {
32564 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32565             $return . q{])}, "",
32566             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32567             $tracelevel);
32568 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
32569             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
32570             Parse::RecDescent::_tracefirst($text),
32571             , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32572             $tracelevel)
32573             }
32574 0         0 $_[1] = $text;
32575 0         0 return $return;
32576             }
32577              
32578             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32579             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysibm_function
32580             {
32581 0     0   0 my $thisparser = $_[0];
32582 1     1   8 use vars q{$tracelevel};
  1         2  
  1         786  
32583 0   0     0 local $tracelevel = ($tracelevel||0)+1;
32584 0         0 $ERRORS = 0;
32585 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_sysibm_function"};
32586              
32587 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_sysibm_function]},
32588             Parse::RecDescent::_tracefirst($_[1]),
32589             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32590             $tracelevel)
32591             if defined $::RD_TRACE;
32592              
32593              
32594 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
32595              
32596 0         0 my $score;
32597             my $score_return;
32598 0         0 my $_tok;
32599 0         0 my $return = undef;
32600 0         0 my $_matched=0;
32601 0         0 my $commit=0;
32602 0         0 my @item = ();
32603 0         0 my %item = ();
32604 0   0     0 my $repeating = defined($_[2]) && $_[2];
32605 0   0     0 my $_noactions = defined($_[3]) && $_[3];
32606 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
32607 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
32608 0         0 my $text;
32609 0         0 my $lastsep="";
32610 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32611 0         0 $expectation->at($_[1]);
32612              
32613 0         0 my $thisline;
32614 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32615              
32616              
32617              
32618 0   0     0 while (!$_matched && !$commit)
32619             {
32620              
32621 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ABS/i]},
32622             Parse::RecDescent::_tracefirst($_[1]),
32623             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32624             $tracelevel)
32625             if defined $::RD_TRACE;
32626 0         0 my $thisprod = $thisrule->{"prods"}[0];
32627 0         0 $text = $_[1];
32628 0         0 my $_savetext;
32629 0         0 @item = (q{_alternation_1_of_production_1_of_rule_sysibm_function});
32630 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysibm_function});
32631 0         0 my $repcount = 0;
32632              
32633              
32634 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ABS/i]}, Parse::RecDescent::_tracefirst($text),
32635             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32636             $tracelevel)
32637             if defined $::RD_TRACE;
32638 0         0 $lastsep = "";
32639 0         0 $expectation->is(q{})->at($text);
32640              
32641              
32642 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ABS)//i)
  0 0       0  
32643             {
32644              
32645 0         0 $expectation->failed();
32646 0 0       0 Parse::RecDescent::_trace(q{<>},
32647             Parse::RecDescent::_tracefirst($text))
32648             if defined $::RD_TRACE;
32649              
32650 0         0 last;
32651             }
32652 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32653             . $& . q{])},
32654             Parse::RecDescent::_tracefirst($text))
32655             if defined $::RD_TRACE;
32656 0         0 push @item, $item{__PATTERN1__}=$&;
32657              
32658              
32659              
32660 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i]<<},
32661             Parse::RecDescent::_tracefirst($text),
32662             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32663             $tracelevel)
32664             if defined $::RD_TRACE;
32665 0         0 $_matched = 1;
32666 0         0 last;
32667             }
32668              
32669              
32670 0   0     0 while (!$_matched && !$commit)
32671             {
32672              
32673 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ABSVAL/i]},
32674             Parse::RecDescent::_tracefirst($_[1]),
32675             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32676             $tracelevel)
32677             if defined $::RD_TRACE;
32678 0         0 my $thisprod = $thisrule->{"prods"}[1];
32679 0         0 $text = $_[1];
32680 0         0 my $_savetext;
32681 0         0 @item = (q{_alternation_1_of_production_1_of_rule_sysibm_function});
32682 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysibm_function});
32683 0         0 my $repcount = 0;
32684              
32685              
32686 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ABSVAL/i]}, Parse::RecDescent::_tracefirst($text),
32687             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32688             $tracelevel)
32689             if defined $::RD_TRACE;
32690 0         0 $lastsep = "";
32691 0         0 $expectation->is(q{})->at($text);
32692              
32693              
32694 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ABSVAL)//i)
  0 0       0  
32695             {
32696              
32697 0         0 $expectation->failed();
32698 0 0       0 Parse::RecDescent::_trace(q{<>},
32699             Parse::RecDescent::_tracefirst($text))
32700             if defined $::RD_TRACE;
32701              
32702 0         0 last;
32703             }
32704 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32705             . $& . q{])},
32706             Parse::RecDescent::_tracefirst($text))
32707             if defined $::RD_TRACE;
32708 0         0 push @item, $item{__PATTERN1__}=$&;
32709              
32710              
32711              
32712 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ABSVAL/i]<<},
32713             Parse::RecDescent::_tracefirst($text),
32714             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32715             $tracelevel)
32716             if defined $::RD_TRACE;
32717 0         0 $_matched = 1;
32718 0         0 last;
32719             }
32720              
32721              
32722 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
32723             {
32724              
32725              
32726 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
32727 0 0       0 Parse::RecDescent::_trace(q{<>},
32728             Parse::RecDescent::_tracefirst($_[1]),
32729             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32730             $tracelevel)
32731             if defined $::RD_TRACE;
32732 0         0 return undef;
32733             }
32734 0 0 0     0 if (!defined($return) && defined($score))
32735             {
32736 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32737             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32738             $tracelevel)
32739             if defined $::RD_TRACE;
32740 0         0 $return = $score_return;
32741             }
32742 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
32743 0 0       0 $return = $item[$#item] unless defined $return;
32744 0 0       0 if (defined $::RD_TRACE)
32745             {
32746 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32747             $return . q{])}, "",
32748             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32749             $tracelevel);
32750 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
32751             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
32752             Parse::RecDescent::_tracefirst($text),
32753             , q{_alternation_1_of_production_1_of_rule_sysibm_function},
32754             $tracelevel)
32755             }
32756 0         0 $_[1] = $text;
32757 0         0 return $return;
32758             }
32759              
32760             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32761             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_b
32762             {
32763 0     0   0 my $thisparser = $_[0];
32764 1     1   7 use vars q{$tracelevel};
  1         9  
  1         776  
32765 0   0     0 local $tracelevel = ($tracelevel||0)+1;
32766 0         0 $ERRORS = 0;
32767 0         0 my $thisrule = $thisparser->{"rules"}{"reference_b"};
32768              
32769 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [reference_b]},
32770             Parse::RecDescent::_tracefirst($_[1]),
32771             q{reference_b},
32772             $tracelevel)
32773             if defined $::RD_TRACE;
32774              
32775              
32776 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
32777              
32778 0         0 my $score;
32779             my $score_return;
32780 0         0 my $_tok;
32781 0         0 my $return = undef;
32782 0         0 my $_matched=0;
32783 0         0 my $commit=0;
32784 0         0 my @item = ();
32785 0         0 my %item = ();
32786 0   0     0 my $repeating = defined($_[2]) && $_[2];
32787 0   0     0 my $_noactions = defined($_[3]) && $_[3];
32788 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
32789 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
32790 0         0 my $text;
32791 0         0 my $lastsep="";
32792 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32793 0         0 $expectation->at($_[1]);
32794              
32795 0         0 my $thisline;
32796 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32797              
32798              
32799              
32800 0   0     0 while (!$_matched && !$commit)
32801             {
32802              
32803 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REFERENCING/i old_new_corr]},
32804             Parse::RecDescent::_tracefirst($_[1]),
32805             q{reference_b},
32806             $tracelevel)
32807             if defined $::RD_TRACE;
32808 0         0 my $thisprod = $thisrule->{"prods"}[0];
32809 0         0 $text = $_[1];
32810 0         0 my $_savetext;
32811 0         0 @item = (q{reference_b});
32812 0         0 %item = (__RULE__ => q{reference_b});
32813 0         0 my $repcount = 0;
32814              
32815              
32816 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REFERENCING/i]}, Parse::RecDescent::_tracefirst($text),
32817             q{reference_b},
32818             $tracelevel)
32819             if defined $::RD_TRACE;
32820 0         0 $lastsep = "";
32821 0         0 $expectation->is(q{})->at($text);
32822              
32823              
32824 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REFERENCING)//i)
  0 0       0  
32825             {
32826              
32827 0         0 $expectation->failed();
32828 0 0       0 Parse::RecDescent::_trace(q{<>},
32829             Parse::RecDescent::_tracefirst($text))
32830             if defined $::RD_TRACE;
32831              
32832 0         0 last;
32833             }
32834 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32835             . $& . q{])},
32836             Parse::RecDescent::_tracefirst($text))
32837             if defined $::RD_TRACE;
32838 0         0 push @item, $item{__PATTERN1__}=$&;
32839              
32840              
32841 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [old_new_corr]},
32842             Parse::RecDescent::_tracefirst($text),
32843             q{reference_b},
32844             $tracelevel)
32845             if defined $::RD_TRACE;
32846 0         0 $expectation->is(q{old_new_corr})->at($text);
32847              
32848 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr, 0, 2, $_noactions,$expectation,undef)))
32849             {
32850 0 0       0 Parse::RecDescent::_trace(q{<>},
32851             Parse::RecDescent::_tracefirst($text),
32852             q{reference_b},
32853             $tracelevel)
32854             if defined $::RD_TRACE;
32855 0         0 last;
32856             }
32857 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [old_new_corr]<< (}
32858             . @$_tok . q{ times)},
32859              
32860             Parse::RecDescent::_tracefirst($text),
32861             q{reference_b},
32862             $tracelevel)
32863             if defined $::RD_TRACE;
32864 0         0 $item{q{old_new_corr(0..2)}} = $_tok;
32865 0         0 push @item, $_tok;
32866              
32867              
32868              
32869 0 0       0 Parse::RecDescent::_trace(q{Trying action},
32870             Parse::RecDescent::_tracefirst($text),
32871             q{reference_b},
32872             $tracelevel)
32873             if defined $::RD_TRACE;
32874              
32875              
32876 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = join(' ', $item[1], join(' ', @{$item[2]}) ) };
  0         0  
  0         0  
32877 0 0       0 unless (defined $_tok)
32878             {
32879 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
32880             if defined $::RD_TRACE;
32881 0         0 last;
32882             }
32883 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
32884             . $_tok . q{])},
32885             Parse::RecDescent::_tracefirst($text))
32886             if defined $::RD_TRACE;
32887 0         0 push @item, $_tok;
32888 0         0 $item{__ACTION1__}=$_tok;
32889              
32890              
32891              
32892 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REFERENCING/i old_new_corr]<<},
32893             Parse::RecDescent::_tracefirst($text),
32894             q{reference_b},
32895             $tracelevel)
32896             if defined $::RD_TRACE;
32897 0         0 $_matched = 1;
32898 0         0 last;
32899             }
32900              
32901              
32902 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
32903             {
32904              
32905              
32906 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
32907 0 0       0 Parse::RecDescent::_trace(q{<>},
32908             Parse::RecDescent::_tracefirst($_[1]),
32909             q{reference_b},
32910             $tracelevel)
32911             if defined $::RD_TRACE;
32912 0         0 return undef;
32913             }
32914 0 0 0     0 if (!defined($return) && defined($score))
32915             {
32916 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32917             q{reference_b},
32918             $tracelevel)
32919             if defined $::RD_TRACE;
32920 0         0 $return = $score_return;
32921             }
32922 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
32923 0 0       0 $return = $item[$#item] unless defined $return;
32924 0 0       0 if (defined $::RD_TRACE)
32925             {
32926 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32927             $return . q{])}, "",
32928             q{reference_b},
32929             $tracelevel);
32930 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
32931             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
32932             Parse::RecDescent::_tracefirst($text),
32933             , q{reference_b},
32934             $tracelevel)
32935             }
32936 0         0 $_[1] = $text;
32937 0         0 return $return;
32938             }
32939              
32940             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32941             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_simple_when_clause
32942             {
32943 0     0   0 my $thisparser = $_[0];
32944 1     1   8 use vars q{$tracelevel};
  1         3  
  1         379  
32945 0   0     0 local $tracelevel = ($tracelevel||0)+1;
32946 0         0 $ERRORS = 0;
32947 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_simple_when_clause"};
32948              
32949 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_simple_when_clause]},
32950             Parse::RecDescent::_tracefirst($_[1]),
32951             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
32952             $tracelevel)
32953             if defined $::RD_TRACE;
32954              
32955              
32956 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
32957              
32958 0         0 my $score;
32959             my $score_return;
32960 0         0 my $_tok;
32961 0         0 my $return = undef;
32962 0         0 my $_matched=0;
32963 0         0 my $commit=0;
32964 0         0 my @item = ();
32965 0         0 my %item = ();
32966 0   0     0 my $repeating = defined($_[2]) && $_[2];
32967 0   0     0 my $_noactions = defined($_[3]) && $_[3];
32968 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
32969 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
32970 0         0 my $text;
32971 0         0 my $lastsep="";
32972 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32973 0         0 $expectation->at($_[1]);
32974              
32975 0         0 my $thisline;
32976 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32977              
32978              
32979              
32980 0   0     0 while (!$_matched && !$commit)
32981             {
32982              
32983 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]},
32984             Parse::RecDescent::_tracefirst($_[1]),
32985             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
32986             $tracelevel)
32987             if defined $::RD_TRACE;
32988 0         0 my $thisprod = $thisrule->{"prods"}[0];
32989 0         0 $text = $_[1];
32990 0         0 my $_savetext;
32991 0         0 @item = (q{_alternation_1_of_production_1_of_rule_simple_when_clause});
32992 0         0 %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_simple_when_clause});
32993 0         0 my $repcount = 0;
32994              
32995              
32996 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/WHEN/i]}, Parse::RecDescent::_tracefirst($text),
32997             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
32998             $tracelevel)
32999             if defined $::RD_TRACE;
33000 0         0 $lastsep = "";
33001 0         0 $expectation->is(q{})->at($text);
33002              
33003              
33004 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:WHEN)//i)
  0 0       0  
33005             {
33006              
33007 0         0 $expectation->failed();
33008 0 0       0 Parse::RecDescent::_trace(q{<>},
33009             Parse::RecDescent::_tracefirst($text))
33010             if defined $::RD_TRACE;
33011              
33012 0         0 last;
33013             }
33014 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33015             . $& . q{])},
33016             Parse::RecDescent::_tracefirst($text))
33017             if defined $::RD_TRACE;
33018 0         0 push @item, $item{__PATTERN1__}=$&;
33019              
33020              
33021 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
33022             Parse::RecDescent::_tracefirst($text),
33023             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33024             $tracelevel)
33025             if defined $::RD_TRACE;
33026 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         294  
  0         0  
33027 0         0 $expectation->is(q{search_condition})->at($text);
33028 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
33029             {
33030              
33031 0 0       0 Parse::RecDescent::_trace(q{<>},
33032             Parse::RecDescent::_tracefirst($text),
33033             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33034             $tracelevel)
33035             if defined $::RD_TRACE;
33036 0         0 $expectation->failed();
33037 0         0 last;
33038             }
33039 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
33040             . $_tok . q{]},
33041              
33042             Parse::RecDescent::_tracefirst($text),
33043             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33044             $tracelevel)
33045             if defined $::RD_TRACE;
33046 0         0 $item{q{search_condition}} = $_tok;
33047 0         0 push @item, $_tok;
33048              
33049             }
33050              
33051 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/THEN/i]}, Parse::RecDescent::_tracefirst($text),
33052             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33053             $tracelevel)
33054             if defined $::RD_TRACE;
33055 0         0 $lastsep = "";
33056 0         0 $expectation->is(q{/THEN/i})->at($text);
33057              
33058              
33059 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:THEN)//i)
  0 0       0  
33060             {
33061              
33062 0         0 $expectation->failed();
33063 0 0       0 Parse::RecDescent::_trace(q{<>},
33064             Parse::RecDescent::_tracefirst($text))
33065             if defined $::RD_TRACE;
33066              
33067 0         0 last;
33068             }
33069 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33070             . $& . q{])},
33071             Parse::RecDescent::_tracefirst($text))
33072             if defined $::RD_TRACE;
33073 0         0 push @item, $item{__PATTERN2__}=$&;
33074              
33075              
33076 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]},
33077             Parse::RecDescent::_tracefirst($text),
33078             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33079             $tracelevel)
33080             if defined $::RD_TRACE;
33081 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         402  
  0         0  
33082 0         0 $expectation->is(q{result_expression, or /NULL/i})->at($text);
33083 0 0   0   0 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 })))
  0         0  
33084             {
33085              
33086 0 0       0 Parse::RecDescent::_trace(q{<>},
33087             Parse::RecDescent::_tracefirst($text),
33088             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33089             $tracelevel)
33090             if defined $::RD_TRACE;
33091 0         0 $expectation->failed();
33092 0         0 last;
33093             }
33094 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]<< (return value: [}
33095             . $_tok . q{]},
33096              
33097             Parse::RecDescent::_tracefirst($text),
33098             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33099             $tracelevel)
33100             if defined $::RD_TRACE;
33101 0         0 $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause}} = $_tok;
33102 0         0 push @item, $_tok;
33103              
33104             }
33105              
33106              
33107 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]<<},
33108             Parse::RecDescent::_tracefirst($text),
33109             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33110             $tracelevel)
33111             if defined $::RD_TRACE;
33112 0         0 $_matched = 1;
33113 0         0 last;
33114             }
33115              
33116              
33117 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
33118             {
33119              
33120              
33121 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
33122 0 0       0 Parse::RecDescent::_trace(q{<>},
33123             Parse::RecDescent::_tracefirst($_[1]),
33124             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33125             $tracelevel)
33126             if defined $::RD_TRACE;
33127 0         0 return undef;
33128             }
33129 0 0 0     0 if (!defined($return) && defined($score))
33130             {
33131 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33132             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33133             $tracelevel)
33134             if defined $::RD_TRACE;
33135 0         0 $return = $score_return;
33136             }
33137 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
33138 0 0       0 $return = $item[$#item] unless defined $return;
33139 0 0       0 if (defined $::RD_TRACE)
33140             {
33141 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33142             $return . q{])}, "",
33143             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33144             $tracelevel);
33145 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
33146             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
33147             Parse::RecDescent::_tracefirst($text),
33148             , q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33149             $tracelevel)
33150             }
33151 0         0 $_[1] = $text;
33152 0         0 return $return;
33153             }
33154              
33155             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33156             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_9_of_rule_sysibm_function
33157             {
33158 0     0   0 my $thisparser = $_[0];
33159 1     1   9 use vars q{$tracelevel};
  1         3  
  1         795  
33160 0   0     0 local $tracelevel = ($tracelevel||0)+1;
33161 0         0 $ERRORS = 0;
33162 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_9_of_rule_sysibm_function"};
33163              
33164 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_9_of_rule_sysibm_function]},
33165             Parse::RecDescent::_tracefirst($_[1]),
33166             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33167             $tracelevel)
33168             if defined $::RD_TRACE;
33169              
33170              
33171 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
33172              
33173 0         0 my $score;
33174             my $score_return;
33175 0         0 my $_tok;
33176 0         0 my $return = undef;
33177 0         0 my $_matched=0;
33178 0         0 my $commit=0;
33179 0         0 my @item = ();
33180 0         0 my %item = ();
33181 0   0     0 my $repeating = defined($_[2]) && $_[2];
33182 0   0     0 my $_noactions = defined($_[3]) && $_[3];
33183 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
33184 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
33185 0         0 my $text;
33186 0         0 my $lastsep="";
33187 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33188 0         0 $expectation->at($_[1]);
33189              
33190 0         0 my $thisline;
33191 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33192              
33193              
33194              
33195 0   0     0 while (!$_matched && !$commit)
33196             {
33197              
33198 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CORRELATION/i]},
33199             Parse::RecDescent::_tracefirst($_[1]),
33200             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33201             $tracelevel)
33202             if defined $::RD_TRACE;
33203 0         0 my $thisprod = $thisrule->{"prods"}[0];
33204 0         0 $text = $_[1];
33205 0         0 my $_savetext;
33206 0         0 @item = (q{_alternation_1_of_production_9_of_rule_sysibm_function});
33207 0         0 %item = (__RULE__ => q{_alternation_1_of_production_9_of_rule_sysibm_function});
33208 0         0 my $repcount = 0;
33209              
33210              
33211 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CORRELATION/i]}, Parse::RecDescent::_tracefirst($text),
33212             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33213             $tracelevel)
33214             if defined $::RD_TRACE;
33215 0         0 $lastsep = "";
33216 0         0 $expectation->is(q{})->at($text);
33217              
33218              
33219 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CORRELATION)//i)
  0 0       0  
33220             {
33221              
33222 0         0 $expectation->failed();
33223 0 0       0 Parse::RecDescent::_trace(q{<>},
33224             Parse::RecDescent::_tracefirst($text))
33225             if defined $::RD_TRACE;
33226              
33227 0         0 last;
33228             }
33229 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33230             . $& . q{])},
33231             Parse::RecDescent::_tracefirst($text))
33232             if defined $::RD_TRACE;
33233 0         0 push @item, $item{__PATTERN1__}=$&;
33234              
33235              
33236              
33237 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CORRELATION/i]<<},
33238             Parse::RecDescent::_tracefirst($text),
33239             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33240             $tracelevel)
33241             if defined $::RD_TRACE;
33242 0         0 $_matched = 1;
33243 0         0 last;
33244             }
33245              
33246              
33247 0   0     0 while (!$_matched && !$commit)
33248             {
33249              
33250 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CORR/]},
33251             Parse::RecDescent::_tracefirst($_[1]),
33252             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33253             $tracelevel)
33254             if defined $::RD_TRACE;
33255 0         0 my $thisprod = $thisrule->{"prods"}[1];
33256 0         0 $text = $_[1];
33257 0         0 my $_savetext;
33258 0         0 @item = (q{_alternation_1_of_production_9_of_rule_sysibm_function});
33259 0         0 %item = (__RULE__ => q{_alternation_1_of_production_9_of_rule_sysibm_function});
33260 0         0 my $repcount = 0;
33261              
33262              
33263 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CORR/]}, Parse::RecDescent::_tracefirst($text),
33264             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33265             $tracelevel)
33266             if defined $::RD_TRACE;
33267 0         0 $lastsep = "";
33268 0         0 $expectation->is(q{})->at($text);
33269              
33270              
33271 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CORR)//)
  0 0       0  
33272             {
33273              
33274 0         0 $expectation->failed();
33275 0 0       0 Parse::RecDescent::_trace(q{<>},
33276             Parse::RecDescent::_tracefirst($text))
33277             if defined $::RD_TRACE;
33278              
33279 0         0 last;
33280             }
33281 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33282             . $& . q{])},
33283             Parse::RecDescent::_tracefirst($text))
33284             if defined $::RD_TRACE;
33285 0         0 push @item, $item{__PATTERN1__}=$&;
33286              
33287              
33288              
33289 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CORR/]<<},
33290             Parse::RecDescent::_tracefirst($text),
33291             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33292             $tracelevel)
33293             if defined $::RD_TRACE;
33294 0         0 $_matched = 1;
33295 0         0 last;
33296             }
33297              
33298              
33299 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
33300             {
33301              
33302              
33303 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
33304 0 0       0 Parse::RecDescent::_trace(q{<>},
33305             Parse::RecDescent::_tracefirst($_[1]),
33306             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33307             $tracelevel)
33308             if defined $::RD_TRACE;
33309 0         0 return undef;
33310             }
33311 0 0 0     0 if (!defined($return) && defined($score))
33312             {
33313 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33314             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33315             $tracelevel)
33316             if defined $::RD_TRACE;
33317 0         0 $return = $score_return;
33318             }
33319 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
33320 0 0       0 $return = $item[$#item] unless defined $return;
33321 0 0       0 if (defined $::RD_TRACE)
33322             {
33323 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33324             $return . q{])}, "",
33325             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33326             $tracelevel);
33327 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
33328             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
33329             Parse::RecDescent::_tracefirst($text),
33330             , q{_alternation_1_of_production_9_of_rule_sysibm_function},
33331             $tracelevel)
33332             }
33333 0         0 $_[1] = $text;
33334 0         0 return $return;
33335             }
33336              
33337             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33338             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_7_of_rule_sysfun
33339             {
33340 0     0   0 my $thisparser = $_[0];
33341 1     1   7 use vars q{$tracelevel};
  1         2  
  1         815  
33342 0   0     0 local $tracelevel = ($tracelevel||0)+1;
33343 0         0 $ERRORS = 0;
33344 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_7_of_rule_sysfun"};
33345              
33346 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_7_of_rule_sysfun]},
33347             Parse::RecDescent::_tracefirst($_[1]),
33348             q{_alternation_1_of_production_7_of_rule_sysfun},
33349             $tracelevel)
33350             if defined $::RD_TRACE;
33351              
33352              
33353 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
33354              
33355 0         0 my $score;
33356             my $score_return;
33357 0         0 my $_tok;
33358 0         0 my $return = undef;
33359 0         0 my $_matched=0;
33360 0         0 my $commit=0;
33361 0         0 my @item = ();
33362 0         0 my %item = ();
33363 0   0     0 my $repeating = defined($_[2]) && $_[2];
33364 0   0     0 my $_noactions = defined($_[3]) && $_[3];
33365 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
33366 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
33367 0         0 my $text;
33368 0         0 my $lastsep="";
33369 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33370 0         0 $expectation->at($_[1]);
33371              
33372 0         0 my $thisline;
33373 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33374              
33375              
33376              
33377 0   0     0 while (!$_matched && !$commit)
33378             {
33379              
33380 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CEIL/i]},
33381             Parse::RecDescent::_tracefirst($_[1]),
33382             q{_alternation_1_of_production_7_of_rule_sysfun},
33383             $tracelevel)
33384             if defined $::RD_TRACE;
33385 0         0 my $thisprod = $thisrule->{"prods"}[0];
33386 0         0 $text = $_[1];
33387 0         0 my $_savetext;
33388 0         0 @item = (q{_alternation_1_of_production_7_of_rule_sysfun});
33389 0         0 %item = (__RULE__ => q{_alternation_1_of_production_7_of_rule_sysfun});
33390 0         0 my $repcount = 0;
33391              
33392              
33393 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CEIL/i]}, Parse::RecDescent::_tracefirst($text),
33394             q{_alternation_1_of_production_7_of_rule_sysfun},
33395             $tracelevel)
33396             if defined $::RD_TRACE;
33397 0         0 $lastsep = "";
33398 0         0 $expectation->is(q{})->at($text);
33399              
33400              
33401 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CEIL)//i)
  0 0       0  
33402             {
33403              
33404 0         0 $expectation->failed();
33405 0 0       0 Parse::RecDescent::_trace(q{<>},
33406             Parse::RecDescent::_tracefirst($text))
33407             if defined $::RD_TRACE;
33408              
33409 0         0 last;
33410             }
33411 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33412             . $& . q{])},
33413             Parse::RecDescent::_tracefirst($text))
33414             if defined $::RD_TRACE;
33415 0         0 push @item, $item{__PATTERN1__}=$&;
33416              
33417              
33418              
33419 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CEIL/i]<<},
33420             Parse::RecDescent::_tracefirst($text),
33421             q{_alternation_1_of_production_7_of_rule_sysfun},
33422             $tracelevel)
33423             if defined $::RD_TRACE;
33424 0         0 $_matched = 1;
33425 0         0 last;
33426             }
33427              
33428              
33429 0   0     0 while (!$_matched && !$commit)
33430             {
33431              
33432 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CEILING/i]},
33433             Parse::RecDescent::_tracefirst($_[1]),
33434             q{_alternation_1_of_production_7_of_rule_sysfun},
33435             $tracelevel)
33436             if defined $::RD_TRACE;
33437 0         0 my $thisprod = $thisrule->{"prods"}[1];
33438 0         0 $text = $_[1];
33439 0         0 my $_savetext;
33440 0         0 @item = (q{_alternation_1_of_production_7_of_rule_sysfun});
33441 0         0 %item = (__RULE__ => q{_alternation_1_of_production_7_of_rule_sysfun});
33442 0         0 my $repcount = 0;
33443              
33444              
33445 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CEILING/i]}, Parse::RecDescent::_tracefirst($text),
33446             q{_alternation_1_of_production_7_of_rule_sysfun},
33447             $tracelevel)
33448             if defined $::RD_TRACE;
33449 0         0 $lastsep = "";
33450 0         0 $expectation->is(q{})->at($text);
33451              
33452              
33453 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CEILING)//i)
  0 0       0  
33454             {
33455              
33456 0         0 $expectation->failed();
33457 0 0       0 Parse::RecDescent::_trace(q{<>},
33458             Parse::RecDescent::_tracefirst($text))
33459             if defined $::RD_TRACE;
33460              
33461 0         0 last;
33462             }
33463 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33464             . $& . q{])},
33465             Parse::RecDescent::_tracefirst($text))
33466             if defined $::RD_TRACE;
33467 0         0 push @item, $item{__PATTERN1__}=$&;
33468              
33469              
33470              
33471 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CEILING/i]<<},
33472             Parse::RecDescent::_tracefirst($text),
33473             q{_alternation_1_of_production_7_of_rule_sysfun},
33474             $tracelevel)
33475             if defined $::RD_TRACE;
33476 0         0 $_matched = 1;
33477 0         0 last;
33478             }
33479              
33480              
33481 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
33482             {
33483              
33484              
33485 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
33486 0 0       0 Parse::RecDescent::_trace(q{<>},
33487             Parse::RecDescent::_tracefirst($_[1]),
33488             q{_alternation_1_of_production_7_of_rule_sysfun},
33489             $tracelevel)
33490             if defined $::RD_TRACE;
33491 0         0 return undef;
33492             }
33493 0 0 0     0 if (!defined($return) && defined($score))
33494             {
33495 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33496             q{_alternation_1_of_production_7_of_rule_sysfun},
33497             $tracelevel)
33498             if defined $::RD_TRACE;
33499 0         0 $return = $score_return;
33500             }
33501 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
33502 0 0       0 $return = $item[$#item] unless defined $return;
33503 0 0       0 if (defined $::RD_TRACE)
33504             {
33505 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33506             $return . q{])}, "",
33507             q{_alternation_1_of_production_7_of_rule_sysfun},
33508             $tracelevel);
33509 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
33510             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
33511             Parse::RecDescent::_tracefirst($text),
33512             , q{_alternation_1_of_production_7_of_rule_sysfun},
33513             $tracelevel)
33514             }
33515 0         0 $_[1] = $text;
33516 0         0 return $return;
33517             }
33518              
33519             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33520             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::prevval_expression
33521             {
33522 0     0   0 my $thisparser = $_[0];
33523 1     1   8 use vars q{$tracelevel};
  1         3  
  1         370  
33524 0   0     0 local $tracelevel = ($tracelevel||0)+1;
33525 0         0 $ERRORS = 0;
33526 0         0 my $thisrule = $thisparser->{"rules"}{"prevval_expression"};
33527              
33528 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [prevval_expression]},
33529             Parse::RecDescent::_tracefirst($_[1]),
33530             q{prevval_expression},
33531             $tracelevel)
33532             if defined $::RD_TRACE;
33533              
33534              
33535 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
33536              
33537 0         0 my $score;
33538             my $score_return;
33539 0         0 my $_tok;
33540 0         0 my $return = undef;
33541 0         0 my $_matched=0;
33542 0         0 my $commit=0;
33543 0         0 my @item = ();
33544 0         0 my %item = ();
33545 0   0     0 my $repeating = defined($_[2]) && $_[2];
33546 0   0     0 my $_noactions = defined($_[3]) && $_[3];
33547 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
33548 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
33549 0         0 my $text;
33550 0         0 my $lastsep="";
33551 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33552 0         0 $expectation->at($_[1]);
33553              
33554 0         0 my $thisline;
33555 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33556              
33557              
33558              
33559 0   0     0 while (!$_matched && !$commit)
33560             {
33561              
33562 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/PREVVAL\\s+FOR/i sequence_name]},
33563             Parse::RecDescent::_tracefirst($_[1]),
33564             q{prevval_expression},
33565             $tracelevel)
33566             if defined $::RD_TRACE;
33567 0         0 my $thisprod = $thisrule->{"prods"}[0];
33568 0         0 $text = $_[1];
33569 0         0 my $_savetext;
33570 0         0 @item = (q{prevval_expression});
33571 0         0 %item = (__RULE__ => q{prevval_expression});
33572 0         0 my $repcount = 0;
33573              
33574              
33575 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/PREVVAL\\s+FOR/i]}, Parse::RecDescent::_tracefirst($text),
33576             q{prevval_expression},
33577             $tracelevel)
33578             if defined $::RD_TRACE;
33579 0         0 $lastsep = "";
33580 0         0 $expectation->is(q{})->at($text);
33581              
33582              
33583 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:PREVVAL\s+FOR)//i)
  0 0       0  
33584             {
33585              
33586 0         0 $expectation->failed();
33587 0 0       0 Parse::RecDescent::_trace(q{<>},
33588             Parse::RecDescent::_tracefirst($text))
33589             if defined $::RD_TRACE;
33590              
33591 0         0 last;
33592             }
33593 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33594             . $& . q{])},
33595             Parse::RecDescent::_tracefirst($text))
33596             if defined $::RD_TRACE;
33597 0         0 push @item, $item{__PATTERN1__}=$&;
33598              
33599              
33600 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [sequence_name]},
33601             Parse::RecDescent::_tracefirst($text),
33602             q{prevval_expression},
33603             $tracelevel)
33604             if defined $::RD_TRACE;
33605 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         385  
  0         0  
33606 0         0 $expectation->is(q{sequence_name})->at($text);
33607 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
33608             {
33609              
33610 0 0       0 Parse::RecDescent::_trace(q{<>},
33611             Parse::RecDescent::_tracefirst($text),
33612             q{prevval_expression},
33613             $tracelevel)
33614             if defined $::RD_TRACE;
33615 0         0 $expectation->failed();
33616 0         0 last;
33617             }
33618 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [sequence_name]<< (return value: [}
33619             . $_tok . q{]},
33620              
33621             Parse::RecDescent::_tracefirst($text),
33622             q{prevval_expression},
33623             $tracelevel)
33624             if defined $::RD_TRACE;
33625 0         0 $item{q{sequence_name}} = $_tok;
33626 0         0 push @item, $_tok;
33627              
33628             }
33629              
33630              
33631 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/PREVVAL\\s+FOR/i sequence_name]<<},
33632             Parse::RecDescent::_tracefirst($text),
33633             q{prevval_expression},
33634             $tracelevel)
33635             if defined $::RD_TRACE;
33636 0         0 $_matched = 1;
33637 0         0 last;
33638             }
33639              
33640              
33641 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
33642             {
33643              
33644              
33645 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
33646 0 0       0 Parse::RecDescent::_trace(q{<>},
33647             Parse::RecDescent::_tracefirst($_[1]),
33648             q{prevval_expression},
33649             $tracelevel)
33650             if defined $::RD_TRACE;
33651 0         0 return undef;
33652             }
33653 0 0 0     0 if (!defined($return) && defined($score))
33654             {
33655 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33656             q{prevval_expression},
33657             $tracelevel)
33658             if defined $::RD_TRACE;
33659 0         0 $return = $score_return;
33660             }
33661 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
33662 0 0       0 $return = $item[$#item] unless defined $return;
33663 0 0       0 if (defined $::RD_TRACE)
33664             {
33665 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33666             $return . q{])}, "",
33667             q{prevval_expression},
33668             $tracelevel);
33669 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
33670             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
33671             Parse::RecDescent::_tracefirst($text),
33672             , q{prevval_expression},
33673             $tracelevel)
33674             }
33675 0         0 $_[1] = $text;
33676 0         0 return $return;
33677             }
33678              
33679             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33680             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::where_clause
33681             {
33682 0     0   0 my $thisparser = $_[0];
33683 1     1   8 use vars q{$tracelevel};
  1         2  
  1         287  
33684 0   0     0 local $tracelevel = ($tracelevel||0)+1;
33685 0         0 $ERRORS = 0;
33686 0         0 my $thisrule = $thisparser->{"rules"}{"where_clause"};
33687              
33688 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [where_clause]},
33689             Parse::RecDescent::_tracefirst($_[1]),
33690             q{where_clause},
33691             $tracelevel)
33692             if defined $::RD_TRACE;
33693              
33694              
33695 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
33696              
33697 0         0 my $score;
33698             my $score_return;
33699 0         0 my $_tok;
33700 0         0 my $return = undef;
33701 0         0 my $_matched=0;
33702 0         0 my $commit=0;
33703 0         0 my @item = ();
33704 0         0 my %item = ();
33705 0   0     0 my $repeating = defined($_[2]) && $_[2];
33706 0   0     0 my $_noactions = defined($_[3]) && $_[3];
33707 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
33708 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
33709 0         0 my $text;
33710 0         0 my $lastsep="";
33711 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33712 0         0 $expectation->at($_[1]);
33713              
33714 0         0 my $thisline;
33715 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33716              
33717              
33718              
33719 0   0     0 while (!$_matched && !$commit)
33720             {
33721              
33722 0 0       0 Parse::RecDescent::_trace(q{Trying production: [WHERE search_condition]},
33723             Parse::RecDescent::_tracefirst($_[1]),
33724             q{where_clause},
33725             $tracelevel)
33726             if defined $::RD_TRACE;
33727 0         0 my $thisprod = $thisrule->{"prods"}[0];
33728 0         0 $text = $_[1];
33729 0         0 my $_savetext;
33730 0         0 @item = (q{where_clause});
33731 0         0 %item = (__RULE__ => q{where_clause});
33732 0         0 my $repcount = 0;
33733              
33734              
33735 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [WHERE]},
33736             Parse::RecDescent::_tracefirst($text),
33737             q{where_clause},
33738             $tracelevel)
33739             if defined $::RD_TRACE;
33740 1     1   6 if (1) { no strict qw{refs};
  1         2  
  1         143  
  0         0  
33741 0         0 $expectation->is(q{})->at($text);
33742 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::WHERE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
33743             {
33744              
33745 0 0       0 Parse::RecDescent::_trace(q{<>},
33746             Parse::RecDescent::_tracefirst($text),
33747             q{where_clause},
33748             $tracelevel)
33749             if defined $::RD_TRACE;
33750 0         0 $expectation->failed();
33751 0         0 last;
33752             }
33753 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [WHERE]<< (return value: [}
33754             . $_tok . q{]},
33755              
33756             Parse::RecDescent::_tracefirst($text),
33757             q{where_clause},
33758             $tracelevel)
33759             if defined $::RD_TRACE;
33760 0         0 $item{q{WHERE}} = $_tok;
33761 0         0 push @item, $_tok;
33762              
33763             }
33764              
33765 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
33766             Parse::RecDescent::_tracefirst($text),
33767             q{where_clause},
33768             $tracelevel)
33769             if defined $::RD_TRACE;
33770 1     1   6 if (1) { no strict qw{refs};
  1         3  
  1         371  
  0         0  
33771 0         0 $expectation->is(q{search_condition})->at($text);
33772 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
33773             {
33774              
33775 0 0       0 Parse::RecDescent::_trace(q{<>},
33776             Parse::RecDescent::_tracefirst($text),
33777             q{where_clause},
33778             $tracelevel)
33779             if defined $::RD_TRACE;
33780 0         0 $expectation->failed();
33781 0         0 last;
33782             }
33783 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
33784             . $_tok . q{]},
33785              
33786             Parse::RecDescent::_tracefirst($text),
33787             q{where_clause},
33788             $tracelevel)
33789             if defined $::RD_TRACE;
33790 0         0 $item{q{search_condition}} = $_tok;
33791 0         0 push @item, $_tok;
33792              
33793             }
33794              
33795              
33796 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [WHERE search_condition]<<},
33797             Parse::RecDescent::_tracefirst($text),
33798             q{where_clause},
33799             $tracelevel)
33800             if defined $::RD_TRACE;
33801 0         0 $_matched = 1;
33802 0         0 last;
33803             }
33804              
33805              
33806 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
33807             {
33808              
33809              
33810 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
33811 0 0       0 Parse::RecDescent::_trace(q{<>},
33812             Parse::RecDescent::_tracefirst($_[1]),
33813             q{where_clause},
33814             $tracelevel)
33815             if defined $::RD_TRACE;
33816 0         0 return undef;
33817             }
33818 0 0 0     0 if (!defined($return) && defined($score))
33819             {
33820 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33821             q{where_clause},
33822             $tracelevel)
33823             if defined $::RD_TRACE;
33824 0         0 $return = $score_return;
33825             }
33826 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
33827 0 0       0 $return = $item[$#item] unless defined $return;
33828 0 0       0 if (defined $::RD_TRACE)
33829             {
33830 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33831             $return . q{])}, "",
33832             q{where_clause},
33833             $tracelevel);
33834 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
33835             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
33836             Parse::RecDescent::_tracefirst($text),
33837             , q{where_clause},
33838             $tracelevel)
33839             }
33840 0         0 $_[1] = $text;
33841 0         0 return $return;
33842             }
33843              
33844             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33845             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_start
33846             {
33847 0     0   0 my $thisparser = $_[0];
33848 1     1   7 use vars q{$tracelevel};
  1         2  
  1         588  
33849 0   0     0 local $tracelevel = ($tracelevel||0)+1;
33850 0         0 $ERRORS = 0;
33851 0         0 my $thisrule = $thisparser->{"rules"}{"group_start"};
33852              
33853 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [group_start]},
33854             Parse::RecDescent::_tracefirst($_[1]),
33855             q{group_start},
33856             $tracelevel)
33857             if defined $::RD_TRACE;
33858              
33859              
33860 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
33861              
33862 0         0 my $score;
33863             my $score_return;
33864 0         0 my $_tok;
33865 0         0 my $return = undef;
33866 0         0 my $_matched=0;
33867 0         0 my $commit=0;
33868 0         0 my @item = ();
33869 0         0 my %item = ();
33870 0   0     0 my $repeating = defined($_[2]) && $_[2];
33871 0   0     0 my $_noactions = defined($_[3]) && $_[3];
33872 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
33873 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
33874 0         0 my $text;
33875 0         0 my $lastsep="";
33876 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33877 0         0 $expectation->at($_[1]);
33878              
33879 0         0 my $thisline;
33880 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33881              
33882              
33883              
33884 0   0     0 while (!$_matched && !$commit)
33885             {
33886              
33887 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
33888             Parse::RecDescent::_tracefirst($_[1]),
33889             q{group_start},
33890             $tracelevel)
33891             if defined $::RD_TRACE;
33892 0         0 my $thisprod = $thisrule->{"prods"}[0];
33893 0         0 $text = $_[1];
33894 0         0 my $_savetext;
33895 0         0 @item = (q{group_start});
33896 0         0 %item = (__RULE__ => q{group_start});
33897 0         0 my $repcount = 0;
33898              
33899              
33900 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
33901             q{group_start},
33902             $tracelevel)
33903             if defined $::RD_TRACE;
33904 0         0 $lastsep = "";
33905 0         0 $expectation->is(q{})->at($text);
33906              
33907              
33908 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i)
  0 0       0  
33909             {
33910              
33911 0         0 $expectation->failed();
33912 0 0       0 Parse::RecDescent::_trace(q{<>},
33913             Parse::RecDescent::_tracefirst($text))
33914             if defined $::RD_TRACE;
33915              
33916 0         0 last;
33917             }
33918 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33919             . $& . q{])},
33920             Parse::RecDescent::_tracefirst($text))
33921             if defined $::RD_TRACE;
33922 0         0 push @item, $item{__PATTERN1__}=$&;
33923              
33924              
33925              
33926 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
33927             Parse::RecDescent::_tracefirst($text),
33928             q{group_start},
33929             $tracelevel)
33930             if defined $::RD_TRACE;
33931 0         0 $_matched = 1;
33932 0         0 last;
33933             }
33934              
33935              
33936 0   0     0 while (!$_matched && !$commit)
33937             {
33938              
33939 0 0       0 Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /PRECEDING/i]},
33940             Parse::RecDescent::_tracefirst($_[1]),
33941             q{group_start},
33942             $tracelevel)
33943             if defined $::RD_TRACE;
33944 0         0 my $thisprod = $thisrule->{"prods"}[1];
33945 0         0 $text = $_[1];
33946 0         0 my $_savetext;
33947 0         0 @item = (q{group_start});
33948 0         0 %item = (__RULE__ => q{group_start});
33949 0         0 my $repcount = 0;
33950              
33951              
33952 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
33953             Parse::RecDescent::_tracefirst($text),
33954             q{group_start},
33955             $tracelevel)
33956             if defined $::RD_TRACE;
33957 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         702  
  0         0  
33958 0         0 $expectation->is(q{})->at($text);
33959 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
33960             {
33961              
33962 0 0       0 Parse::RecDescent::_trace(q{<>},
33963             Parse::RecDescent::_tracefirst($text),
33964             q{group_start},
33965             $tracelevel)
33966             if defined $::RD_TRACE;
33967 0         0 $expectation->failed();
33968 0         0 last;
33969             }
33970 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
33971             . $_tok . q{]},
33972              
33973             Parse::RecDescent::_tracefirst($text),
33974             q{group_start},
33975             $tracelevel)
33976             if defined $::RD_TRACE;
33977 0         0 $item{q{unsigned_constant}} = $_tok;
33978 0         0 push @item, $_tok;
33979              
33980             }
33981              
33982 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
33983             q{group_start},
33984             $tracelevel)
33985             if defined $::RD_TRACE;
33986 0         0 $lastsep = "";
33987 0         0 $expectation->is(q{/PRECEDING/i})->at($text);
33988              
33989              
33990 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:PRECEDING)//i)
  0 0       0  
33991             {
33992              
33993 0         0 $expectation->failed();
33994 0 0       0 Parse::RecDescent::_trace(q{<>},
33995             Parse::RecDescent::_tracefirst($text))
33996             if defined $::RD_TRACE;
33997              
33998 0         0 last;
33999             }
34000 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34001             . $& . q{])},
34002             Parse::RecDescent::_tracefirst($text))
34003             if defined $::RD_TRACE;
34004 0         0 push @item, $item{__PATTERN1__}=$&;
34005              
34006              
34007              
34008 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /PRECEDING/i]<<},
34009             Parse::RecDescent::_tracefirst($text),
34010             q{group_start},
34011             $tracelevel)
34012             if defined $::RD_TRACE;
34013 0         0 $_matched = 1;
34014 0         0 last;
34015             }
34016              
34017              
34018 0   0     0 while (!$_matched && !$commit)
34019             {
34020              
34021 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/CURRENT\\s+ROW/i]},
34022             Parse::RecDescent::_tracefirst($_[1]),
34023             q{group_start},
34024             $tracelevel)
34025             if defined $::RD_TRACE;
34026 0         0 my $thisprod = $thisrule->{"prods"}[2];
34027 0         0 $text = $_[1];
34028 0         0 my $_savetext;
34029 0         0 @item = (q{group_start});
34030 0         0 %item = (__RULE__ => q{group_start});
34031 0         0 my $repcount = 0;
34032              
34033              
34034 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/CURRENT\\s+ROW/i]}, Parse::RecDescent::_tracefirst($text),
34035             q{group_start},
34036             $tracelevel)
34037             if defined $::RD_TRACE;
34038 0         0 $lastsep = "";
34039 0         0 $expectation->is(q{})->at($text);
34040              
34041              
34042 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:CURRENT\s+ROW)//i)
  0 0       0  
34043             {
34044              
34045 0         0 $expectation->failed();
34046 0 0       0 Parse::RecDescent::_trace(q{<>},
34047             Parse::RecDescent::_tracefirst($text))
34048             if defined $::RD_TRACE;
34049              
34050 0         0 last;
34051             }
34052 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34053             . $& . q{])},
34054             Parse::RecDescent::_tracefirst($text))
34055             if defined $::RD_TRACE;
34056 0         0 push @item, $item{__PATTERN1__}=$&;
34057              
34058              
34059              
34060 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/CURRENT\\s+ROW/i]<<},
34061             Parse::RecDescent::_tracefirst($text),
34062             q{group_start},
34063             $tracelevel)
34064             if defined $::RD_TRACE;
34065 0         0 $_matched = 1;
34066 0         0 last;
34067             }
34068              
34069              
34070 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
34071             {
34072              
34073              
34074 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
34075 0 0       0 Parse::RecDescent::_trace(q{<>},
34076             Parse::RecDescent::_tracefirst($_[1]),
34077             q{group_start},
34078             $tracelevel)
34079             if defined $::RD_TRACE;
34080 0         0 return undef;
34081             }
34082 0 0 0     0 if (!defined($return) && defined($score))
34083             {
34084 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34085             q{group_start},
34086             $tracelevel)
34087             if defined $::RD_TRACE;
34088 0         0 $return = $score_return;
34089             }
34090 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
34091 0 0       0 $return = $item[$#item] unless defined $return;
34092 0 0       0 if (defined $::RD_TRACE)
34093             {
34094 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34095             $return . q{])}, "",
34096             q{group_start},
34097             $tracelevel);
34098 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
34099             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
34100             Parse::RecDescent::_tracefirst($text),
34101             , q{group_start},
34102             $tracelevel)
34103             }
34104 0         0 $_[1] = $text;
34105 0         0 return $return;
34106             }
34107              
34108             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34109             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name
34110             {
34111 0     0   0 my $thisparser = $_[0];
34112 1     1   7 use vars q{$tracelevel};
  1         3  
  1         267  
34113 0   0     0 local $tracelevel = ($tracelevel||0)+1;
34114 0         0 $ERRORS = 0;
34115 0         0 my $thisrule = $thisparser->{"rules"}{"correlation_name"};
34116              
34117 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [correlation_name]},
34118             Parse::RecDescent::_tracefirst($_[1]),
34119             q{correlation_name},
34120             $tracelevel)
34121             if defined $::RD_TRACE;
34122              
34123              
34124 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
34125              
34126 0         0 my $score;
34127             my $score_return;
34128 0         0 my $_tok;
34129 0         0 my $return = undef;
34130 0         0 my $_matched=0;
34131 0         0 my $commit=0;
34132 0         0 my @item = ();
34133 0         0 my %item = ();
34134 0   0     0 my $repeating = defined($_[2]) && $_[2];
34135 0   0     0 my $_noactions = defined($_[3]) && $_[3];
34136 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
34137 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
34138 0         0 my $text;
34139 0         0 my $lastsep="";
34140 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34141 0         0 $expectation->at($_[1]);
34142              
34143 0         0 my $thisline;
34144 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34145              
34146              
34147              
34148 0   0     0 while (!$_matched && !$commit)
34149             {
34150              
34151 0 0       0 Parse::RecDescent::_trace(q{Trying production: [NAME]},
34152             Parse::RecDescent::_tracefirst($_[1]),
34153             q{correlation_name},
34154             $tracelevel)
34155             if defined $::RD_TRACE;
34156 0         0 my $thisprod = $thisrule->{"prods"}[0];
34157 0         0 $text = $_[1];
34158 0         0 my $_savetext;
34159 0         0 @item = (q{correlation_name});
34160 0         0 %item = (__RULE__ => q{correlation_name});
34161 0         0 my $repcount = 0;
34162              
34163              
34164 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
34165             Parse::RecDescent::_tracefirst($text),
34166             q{correlation_name},
34167             $tracelevel)
34168             if defined $::RD_TRACE;
34169 1     1   8 if (1) { no strict qw{refs};
  1         4  
  1         384  
  0         0  
34170 0         0 $expectation->is(q{})->at($text);
34171 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
34172             {
34173              
34174 0 0       0 Parse::RecDescent::_trace(q{<>},
34175             Parse::RecDescent::_tracefirst($text),
34176             q{correlation_name},
34177             $tracelevel)
34178             if defined $::RD_TRACE;
34179 0         0 $expectation->failed();
34180 0         0 last;
34181             }
34182 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
34183             . $_tok . q{]},
34184              
34185             Parse::RecDescent::_tracefirst($text),
34186             q{correlation_name},
34187             $tracelevel)
34188             if defined $::RD_TRACE;
34189 0         0 $item{q{NAME}} = $_tok;
34190 0         0 push @item, $_tok;
34191              
34192             }
34193              
34194              
34195 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
34196             Parse::RecDescent::_tracefirst($text),
34197             q{correlation_name},
34198             $tracelevel)
34199             if defined $::RD_TRACE;
34200 0         0 $_matched = 1;
34201 0         0 last;
34202             }
34203              
34204              
34205 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
34206             {
34207              
34208              
34209 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
34210 0 0       0 Parse::RecDescent::_trace(q{<>},
34211             Parse::RecDescent::_tracefirst($_[1]),
34212             q{correlation_name},
34213             $tracelevel)
34214             if defined $::RD_TRACE;
34215 0         0 return undef;
34216             }
34217 0 0 0     0 if (!defined($return) && defined($score))
34218             {
34219 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34220             q{correlation_name},
34221             $tracelevel)
34222             if defined $::RD_TRACE;
34223 0         0 $return = $score_return;
34224             }
34225 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
34226 0 0       0 $return = $item[$#item] unless defined $return;
34227 0 0       0 if (defined $::RD_TRACE)
34228             {
34229 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34230             $return . q{])}, "",
34231             q{correlation_name},
34232             $tracelevel);
34233 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
34234             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
34235             Parse::RecDescent::_tracefirst($text),
34236             , q{correlation_name},
34237             $tracelevel)
34238             }
34239 0         0 $_[1] = $text;
34240 0         0 return $return;
34241             }
34242              
34243             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34244             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement
34245             {
34246 0     0   0 my $thisparser = $_[0];
34247 1     1   7 use vars q{$tracelevel};
  1         2  
  1         798  
34248 0   0     0 local $tracelevel = ($tracelevel||0)+1;
34249 0         0 $ERRORS = 0;
34250 0         0 my $thisrule = $thisparser->{"rules"}{"SQL_procedure_statement"};
34251              
34252 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [SQL_procedure_statement]},
34253             Parse::RecDescent::_tracefirst($_[1]),
34254             q{SQL_procedure_statement},
34255             $tracelevel)
34256             if defined $::RD_TRACE;
34257              
34258              
34259 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
34260              
34261 0         0 my $score;
34262             my $score_return;
34263 0         0 my $_tok;
34264 0         0 my $return = undef;
34265 0         0 my $_matched=0;
34266 0         0 my $commit=0;
34267 0         0 my @item = ();
34268 0         0 my %item = ();
34269 0   0     0 my $repeating = defined($_[2]) && $_[2];
34270 0   0     0 my $_noactions = defined($_[3]) && $_[3];
34271 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
34272 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
34273 0         0 my $text;
34274 0         0 my $lastsep="";
34275 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34276 0         0 $expectation->at($_[1]);
34277              
34278 0         0 my $thisline;
34279 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34280              
34281              
34282              
34283 0   0     0 while (!$_matched && !$commit)
34284             {
34285              
34286 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/[^;]*/ /(;|\\z)/]},
34287             Parse::RecDescent::_tracefirst($_[1]),
34288             q{SQL_procedure_statement},
34289             $tracelevel)
34290             if defined $::RD_TRACE;
34291 0         0 my $thisprod = $thisrule->{"prods"}[0];
34292 0         0 $text = $_[1];
34293 0         0 my $_savetext;
34294 0         0 @item = (q{SQL_procedure_statement});
34295 0         0 %item = (__RULE__ => q{SQL_procedure_statement});
34296 0         0 my $repcount = 0;
34297              
34298              
34299 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/[^;]*/]}, Parse::RecDescent::_tracefirst($text),
34300             q{SQL_procedure_statement},
34301             $tracelevel)
34302             if defined $::RD_TRACE;
34303 0         0 $lastsep = "";
34304 0         0 $expectation->is(q{})->at($text);
34305              
34306              
34307 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[^;]*)//)
  0 0       0  
34308             {
34309              
34310 0         0 $expectation->failed();
34311 0 0       0 Parse::RecDescent::_trace(q{<>},
34312             Parse::RecDescent::_tracefirst($text))
34313             if defined $::RD_TRACE;
34314              
34315 0         0 last;
34316             }
34317 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34318             . $& . q{])},
34319             Parse::RecDescent::_tracefirst($text))
34320             if defined $::RD_TRACE;
34321 0         0 push @item, $item{__PATTERN1__}=$&;
34322              
34323              
34324 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/(;|\\z)/]}, Parse::RecDescent::_tracefirst($text),
34325             q{SQL_procedure_statement},
34326             $tracelevel)
34327             if defined $::RD_TRACE;
34328 0         0 $lastsep = "";
34329 0         0 $expectation->is(q{/(;|\\z)/})->at($text);
34330              
34331              
34332 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(;|\z))//)
  0 0       0  
34333             {
34334              
34335 0         0 $expectation->failed();
34336 0 0       0 Parse::RecDescent::_trace(q{<>},
34337             Parse::RecDescent::_tracefirst($text))
34338             if defined $::RD_TRACE;
34339              
34340 0         0 last;
34341             }
34342 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34343             . $& . q{])},
34344             Parse::RecDescent::_tracefirst($text))
34345             if defined $::RD_TRACE;
34346 0         0 push @item, $item{__PATTERN2__}=$&;
34347              
34348              
34349 0 0       0 Parse::RecDescent::_trace(q{Trying action},
34350             Parse::RecDescent::_tracefirst($text),
34351             q{SQL_procedure_statement},
34352             $tracelevel)
34353             if defined $::RD_TRACE;
34354              
34355              
34356 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = $item[1] . $item[2] };
  0         0  
34357 0 0       0 unless (defined $_tok)
34358             {
34359 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
34360             if defined $::RD_TRACE;
34361 0         0 last;
34362             }
34363 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
34364             . $_tok . q{])},
34365             Parse::RecDescent::_tracefirst($text))
34366             if defined $::RD_TRACE;
34367 0         0 push @item, $_tok;
34368 0         0 $item{__ACTION1__}=$_tok;
34369              
34370              
34371              
34372 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/[^;]*/ /(;|\\z)/]<<},
34373             Parse::RecDescent::_tracefirst($text),
34374             q{SQL_procedure_statement},
34375             $tracelevel)
34376             if defined $::RD_TRACE;
34377 0         0 $_matched = 1;
34378 0         0 last;
34379             }
34380              
34381              
34382 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
34383             {
34384              
34385              
34386 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
34387 0 0       0 Parse::RecDescent::_trace(q{<>},
34388             Parse::RecDescent::_tracefirst($_[1]),
34389             q{SQL_procedure_statement},
34390             $tracelevel)
34391             if defined $::RD_TRACE;
34392 0         0 return undef;
34393             }
34394 0 0 0     0 if (!defined($return) && defined($score))
34395             {
34396 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34397             q{SQL_procedure_statement},
34398             $tracelevel)
34399             if defined $::RD_TRACE;
34400 0         0 $return = $score_return;
34401             }
34402 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
34403 0 0       0 $return = $item[$#item] unless defined $return;
34404 0 0       0 if (defined $::RD_TRACE)
34405             {
34406 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34407             $return . q{])}, "",
34408             q{SQL_procedure_statement},
34409             $tracelevel);
34410 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
34411             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
34412             Parse::RecDescent::_tracefirst($text),
34413             , q{SQL_procedure_statement},
34414             $tracelevel)
34415             }
34416 0         0 $_[1] = $text;
34417 0         0 return $return;
34418             }
34419              
34420             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34421             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_between
34422             {
34423 0     0   0 my $thisparser = $_[0];
34424 1     1   8 use vars q{$tracelevel};
  1         3  
  1         382  
34425 0   0     0 local $tracelevel = ($tracelevel||0)+1;
34426 0         0 $ERRORS = 0;
34427 0         0 my $thisrule = $thisparser->{"rules"}{"group_between"};
34428              
34429 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [group_between]},
34430             Parse::RecDescent::_tracefirst($_[1]),
34431             q{group_between},
34432             $tracelevel)
34433             if defined $::RD_TRACE;
34434              
34435              
34436 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
34437              
34438 0         0 my $score;
34439             my $score_return;
34440 0         0 my $_tok;
34441 0         0 my $return = undef;
34442 0         0 my $_matched=0;
34443 0         0 my $commit=0;
34444 0         0 my @item = ();
34445 0         0 my %item = ();
34446 0   0     0 my $repeating = defined($_[2]) && $_[2];
34447 0   0     0 my $_noactions = defined($_[3]) && $_[3];
34448 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
34449 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
34450 0         0 my $text;
34451 0         0 my $lastsep="";
34452 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34453 0         0 $expectation->at($_[1]);
34454              
34455 0         0 my $thisline;
34456 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34457              
34458              
34459              
34460 0   0     0 while (!$_matched && !$commit)
34461             {
34462              
34463 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/BETWEEN/i group_bound1 /AND/i group_bound2]},
34464             Parse::RecDescent::_tracefirst($_[1]),
34465             q{group_between},
34466             $tracelevel)
34467             if defined $::RD_TRACE;
34468 0         0 my $thisprod = $thisrule->{"prods"}[0];
34469 0         0 $text = $_[1];
34470 0         0 my $_savetext;
34471 0         0 @item = (q{group_between});
34472 0         0 %item = (__RULE__ => q{group_between});
34473 0         0 my $repcount = 0;
34474              
34475              
34476 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/BETWEEN/i]}, Parse::RecDescent::_tracefirst($text),
34477             q{group_between},
34478             $tracelevel)
34479             if defined $::RD_TRACE;
34480 0         0 $lastsep = "";
34481 0         0 $expectation->is(q{})->at($text);
34482              
34483              
34484 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:BETWEEN)//i)
  0 0       0  
34485             {
34486              
34487 0         0 $expectation->failed();
34488 0 0       0 Parse::RecDescent::_trace(q{<>},
34489             Parse::RecDescent::_tracefirst($text))
34490             if defined $::RD_TRACE;
34491              
34492 0         0 last;
34493             }
34494 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34495             . $& . q{])},
34496             Parse::RecDescent::_tracefirst($text))
34497             if defined $::RD_TRACE;
34498 0         0 push @item, $item{__PATTERN1__}=$&;
34499              
34500              
34501 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [group_bound1]},
34502             Parse::RecDescent::_tracefirst($text),
34503             q{group_between},
34504             $tracelevel)
34505             if defined $::RD_TRACE;
34506 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         259  
  0         0  
34507 0         0 $expectation->is(q{group_bound1})->at($text);
34508 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound1($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
34509             {
34510              
34511 0 0       0 Parse::RecDescent::_trace(q{<>},
34512             Parse::RecDescent::_tracefirst($text),
34513             q{group_between},
34514             $tracelevel)
34515             if defined $::RD_TRACE;
34516 0         0 $expectation->failed();
34517 0         0 last;
34518             }
34519 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [group_bound1]<< (return value: [}
34520             . $_tok . q{]},
34521              
34522             Parse::RecDescent::_tracefirst($text),
34523             q{group_between},
34524             $tracelevel)
34525             if defined $::RD_TRACE;
34526 0         0 $item{q{group_bound1}} = $_tok;
34527 0         0 push @item, $_tok;
34528              
34529             }
34530              
34531 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/AND/i]}, Parse::RecDescent::_tracefirst($text),
34532             q{group_between},
34533             $tracelevel)
34534             if defined $::RD_TRACE;
34535 0         0 $lastsep = "";
34536 0         0 $expectation->is(q{/AND/i})->at($text);
34537              
34538              
34539 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:AND)//i)
  0 0       0  
34540             {
34541              
34542 0         0 $expectation->failed();
34543 0 0       0 Parse::RecDescent::_trace(q{<>},
34544             Parse::RecDescent::_tracefirst($text))
34545             if defined $::RD_TRACE;
34546              
34547 0         0 last;
34548             }
34549 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34550             . $& . q{])},
34551             Parse::RecDescent::_tracefirst($text))
34552             if defined $::RD_TRACE;
34553 0         0 push @item, $item{__PATTERN2__}=$&;
34554              
34555              
34556 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [group_bound2]},
34557             Parse::RecDescent::_tracefirst($text),
34558             q{group_between},
34559             $tracelevel)
34560             if defined $::RD_TRACE;
34561 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         389  
  0         0  
34562 0         0 $expectation->is(q{group_bound2})->at($text);
34563 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound2($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
34564             {
34565              
34566 0 0       0 Parse::RecDescent::_trace(q{<>},
34567             Parse::RecDescent::_tracefirst($text),
34568             q{group_between},
34569             $tracelevel)
34570             if defined $::RD_TRACE;
34571 0         0 $expectation->failed();
34572 0         0 last;
34573             }
34574 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [group_bound2]<< (return value: [}
34575             . $_tok . q{]},
34576              
34577             Parse::RecDescent::_tracefirst($text),
34578             q{group_between},
34579             $tracelevel)
34580             if defined $::RD_TRACE;
34581 0         0 $item{q{group_bound2}} = $_tok;
34582 0         0 push @item, $_tok;
34583              
34584             }
34585              
34586              
34587 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/BETWEEN/i group_bound1 /AND/i group_bound2]<<},
34588             Parse::RecDescent::_tracefirst($text),
34589             q{group_between},
34590             $tracelevel)
34591             if defined $::RD_TRACE;
34592 0         0 $_matched = 1;
34593 0         0 last;
34594             }
34595              
34596              
34597 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
34598             {
34599              
34600              
34601 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
34602 0 0       0 Parse::RecDescent::_trace(q{<>},
34603             Parse::RecDescent::_tracefirst($_[1]),
34604             q{group_between},
34605             $tracelevel)
34606             if defined $::RD_TRACE;
34607 0         0 return undef;
34608             }
34609 0 0 0     0 if (!defined($return) && defined($score))
34610             {
34611 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34612             q{group_between},
34613             $tracelevel)
34614             if defined $::RD_TRACE;
34615 0         0 $return = $score_return;
34616             }
34617 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
34618 0 0       0 $return = $item[$#item] unless defined $return;
34619 0 0       0 if (defined $::RD_TRACE)
34620             {
34621 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34622             $return . q{])}, "",
34623             q{group_between},
34624             $tracelevel);
34625 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
34626             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
34627             Parse::RecDescent::_tracefirst($text),
34628             , q{group_between},
34629             $tracelevel)
34630             }
34631 0         0 $_[1] = $text;
34632 0         0 return $return;
34633             }
34634              
34635             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34636             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::nextval_expression
34637             {
34638 0     0   0 my $thisparser = $_[0];
34639 1     1   7 use vars q{$tracelevel};
  1         2  
  1         362  
34640 0   0     0 local $tracelevel = ($tracelevel||0)+1;
34641 0         0 $ERRORS = 0;
34642 0         0 my $thisrule = $thisparser->{"rules"}{"nextval_expression"};
34643              
34644 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [nextval_expression]},
34645             Parse::RecDescent::_tracefirst($_[1]),
34646             q{nextval_expression},
34647             $tracelevel)
34648             if defined $::RD_TRACE;
34649              
34650              
34651 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
34652              
34653 0         0 my $score;
34654             my $score_return;
34655 0         0 my $_tok;
34656 0         0 my $return = undef;
34657 0         0 my $_matched=0;
34658 0         0 my $commit=0;
34659 0         0 my @item = ();
34660 0         0 my %item = ();
34661 0   0     0 my $repeating = defined($_[2]) && $_[2];
34662 0   0     0 my $_noactions = defined($_[3]) && $_[3];
34663 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
34664 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
34665 0         0 my $text;
34666 0         0 my $lastsep="";
34667 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34668 0         0 $expectation->at($_[1]);
34669              
34670 0         0 my $thisline;
34671 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34672              
34673              
34674              
34675 0   0     0 while (!$_matched && !$commit)
34676             {
34677              
34678 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/NEXTVAL\\s+FOR/i sequence_name]},
34679             Parse::RecDescent::_tracefirst($_[1]),
34680             q{nextval_expression},
34681             $tracelevel)
34682             if defined $::RD_TRACE;
34683 0         0 my $thisprod = $thisrule->{"prods"}[0];
34684 0         0 $text = $_[1];
34685 0         0 my $_savetext;
34686 0         0 @item = (q{nextval_expression});
34687 0         0 %item = (__RULE__ => q{nextval_expression});
34688 0         0 my $repcount = 0;
34689              
34690              
34691 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/NEXTVAL\\s+FOR/i]}, Parse::RecDescent::_tracefirst($text),
34692             q{nextval_expression},
34693             $tracelevel)
34694             if defined $::RD_TRACE;
34695 0         0 $lastsep = "";
34696 0         0 $expectation->is(q{})->at($text);
34697              
34698              
34699 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:NEXTVAL\s+FOR)//i)
  0 0       0  
34700             {
34701              
34702 0         0 $expectation->failed();
34703 0 0       0 Parse::RecDescent::_trace(q{<>},
34704             Parse::RecDescent::_tracefirst($text))
34705             if defined $::RD_TRACE;
34706              
34707 0         0 last;
34708             }
34709 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34710             . $& . q{])},
34711             Parse::RecDescent::_tracefirst($text))
34712             if defined $::RD_TRACE;
34713 0         0 push @item, $item{__PATTERN1__}=$&;
34714              
34715              
34716 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [sequence_name]},
34717             Parse::RecDescent::_tracefirst($text),
34718             q{nextval_expression},
34719             $tracelevel)
34720             if defined $::RD_TRACE;
34721 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         421  
  0         0  
34722 0         0 $expectation->is(q{sequence_name})->at($text);
34723 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
34724             {
34725              
34726 0 0       0 Parse::RecDescent::_trace(q{<>},
34727             Parse::RecDescent::_tracefirst($text),
34728             q{nextval_expression},
34729             $tracelevel)
34730             if defined $::RD_TRACE;
34731 0         0 $expectation->failed();
34732 0         0 last;
34733             }
34734 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [sequence_name]<< (return value: [}
34735             . $_tok . q{]},
34736              
34737             Parse::RecDescent::_tracefirst($text),
34738             q{nextval_expression},
34739             $tracelevel)
34740             if defined $::RD_TRACE;
34741 0         0 $item{q{sequence_name}} = $_tok;
34742 0         0 push @item, $_tok;
34743              
34744             }
34745              
34746              
34747 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/NEXTVAL\\s+FOR/i sequence_name]<<},
34748             Parse::RecDescent::_tracefirst($text),
34749             q{nextval_expression},
34750             $tracelevel)
34751             if defined $::RD_TRACE;
34752 0         0 $_matched = 1;
34753 0         0 last;
34754             }
34755              
34756              
34757 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
34758             {
34759              
34760              
34761 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
34762 0 0       0 Parse::RecDescent::_trace(q{<>},
34763             Parse::RecDescent::_tracefirst($_[1]),
34764             q{nextval_expression},
34765             $tracelevel)
34766             if defined $::RD_TRACE;
34767 0         0 return undef;
34768             }
34769 0 0 0     0 if (!defined($return) && defined($score))
34770             {
34771 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34772             q{nextval_expression},
34773             $tracelevel)
34774             if defined $::RD_TRACE;
34775 0         0 $return = $score_return;
34776             }
34777 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
34778 0 0       0 $return = $item[$#item] unless defined $return;
34779 0 0       0 if (defined $::RD_TRACE)
34780             {
34781 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34782             $return . q{])}, "",
34783             q{nextval_expression},
34784             $tracelevel);
34785 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
34786             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
34787             Parse::RecDescent::_tracefirst($text),
34788             , q{nextval_expression},
34789             $tracelevel)
34790             }
34791 0         0 $_[1] = $text;
34792 0         0 return $return;
34793             }
34794              
34795             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34796             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::desc_option
34797             {
34798 0     0   0 my $thisparser = $_[0];
34799 1     1   8 use vars q{$tracelevel};
  1         2  
  1         786  
34800 0   0     0 local $tracelevel = ($tracelevel||0)+1;
34801 0         0 $ERRORS = 0;
34802 0         0 my $thisrule = $thisparser->{"rules"}{"desc_option"};
34803              
34804 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [desc_option]},
34805             Parse::RecDescent::_tracefirst($_[1]),
34806             q{desc_option},
34807             $tracelevel)
34808             if defined $::RD_TRACE;
34809              
34810              
34811 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
34812              
34813 0         0 my $score;
34814             my $score_return;
34815 0         0 my $_tok;
34816 0         0 my $return = undef;
34817 0         0 my $_matched=0;
34818 0         0 my $commit=0;
34819 0         0 my @item = ();
34820 0         0 my %item = ();
34821 0   0     0 my $repeating = defined($_[2]) && $_[2];
34822 0   0     0 my $_noactions = defined($_[3]) && $_[3];
34823 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
34824 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
34825 0         0 my $text;
34826 0         0 my $lastsep="";
34827 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34828 0         0 $expectation->at($_[1]);
34829              
34830 0         0 my $thisline;
34831 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34832              
34833              
34834              
34835 0   0     0 while (!$_matched && !$commit)
34836             {
34837              
34838 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/DESC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
34839             Parse::RecDescent::_tracefirst($_[1]),
34840             q{desc_option},
34841             $tracelevel)
34842             if defined $::RD_TRACE;
34843 0         0 my $thisprod = $thisrule->{"prods"}[0];
34844 0         0 $text = $_[1];
34845 0         0 my $_savetext;
34846 0         0 @item = (q{desc_option});
34847 0         0 %item = (__RULE__ => q{desc_option});
34848 0         0 my $repcount = 0;
34849              
34850              
34851 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/DESC/i]}, Parse::RecDescent::_tracefirst($text),
34852             q{desc_option},
34853             $tracelevel)
34854             if defined $::RD_TRACE;
34855 0         0 $lastsep = "";
34856 0         0 $expectation->is(q{})->at($text);
34857              
34858              
34859 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:DESC)//i)
  0 0       0  
34860             {
34861              
34862 0         0 $expectation->failed();
34863 0 0       0 Parse::RecDescent::_trace(q{<>},
34864             Parse::RecDescent::_tracefirst($text))
34865             if defined $::RD_TRACE;
34866              
34867 0         0 last;
34868             }
34869 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34870             . $& . q{])},
34871             Parse::RecDescent::_tracefirst($text))
34872             if defined $::RD_TRACE;
34873 0         0 push @item, $item{__PATTERN1__}=$&;
34874              
34875              
34876 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
34877             Parse::RecDescent::_tracefirst($text),
34878             q{desc_option},
34879             $tracelevel)
34880             if defined $::RD_TRACE;
34881 0         0 $expectation->is(q{/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i})->at($text);
34882              
34883 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_desc_option, 0, 1, $_noactions,$expectation,undef)))
34884             {
34885 0 0       0 Parse::RecDescent::_trace(q{<>},
34886             Parse::RecDescent::_tracefirst($text),
34887             q{desc_option},
34888             $tracelevel)
34889             if defined $::RD_TRACE;
34890 0         0 last;
34891             }
34892 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_desc_option]<< (}
34893             . @$_tok . q{ times)},
34894              
34895             Parse::RecDescent::_tracefirst($text),
34896             q{desc_option},
34897             $tracelevel)
34898             if defined $::RD_TRACE;
34899 0         0 $item{q{_alternation_1_of_production_1_of_rule_desc_option(?)}} = $_tok;
34900 0         0 push @item, $_tok;
34901              
34902              
34903              
34904              
34905 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/DESC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]<<},
34906             Parse::RecDescent::_tracefirst($text),
34907             q{desc_option},
34908             $tracelevel)
34909             if defined $::RD_TRACE;
34910 0         0 $_matched = 1;
34911 0         0 last;
34912             }
34913              
34914              
34915 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
34916             {
34917              
34918              
34919 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
34920 0 0       0 Parse::RecDescent::_trace(q{<>},
34921             Parse::RecDescent::_tracefirst($_[1]),
34922             q{desc_option},
34923             $tracelevel)
34924             if defined $::RD_TRACE;
34925 0         0 return undef;
34926             }
34927 0 0 0     0 if (!defined($return) && defined($score))
34928             {
34929 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34930             q{desc_option},
34931             $tracelevel)
34932             if defined $::RD_TRACE;
34933 0         0 $return = $score_return;
34934             }
34935 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
34936 0 0       0 $return = $item[$#item] unless defined $return;
34937 0 0       0 if (defined $::RD_TRACE)
34938             {
34939 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34940             $return . q{])}, "",
34941             q{desc_option},
34942             $tracelevel);
34943 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
34944             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
34945             Parse::RecDescent::_tracefirst($text),
34946             , q{desc_option},
34947             $tracelevel)
34948             }
34949 0         0 $_[1] = $text;
34950 0         0 return $return;
34951             }
34952              
34953             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34954             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list
34955             {
34956 0     0   0 my $thisparser = $_[0];
34957 1     1   7 use vars q{$tracelevel};
  1         10  
  1         476  
34958 0   0     0 local $tracelevel = ($tracelevel||0)+1;
34959 0         0 $ERRORS = 0;
34960 0         0 my $thisrule = $thisparser->{"rules"}{"column_list"};
34961              
34962 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [column_list]},
34963             Parse::RecDescent::_tracefirst($_[1]),
34964             q{column_list},
34965             $tracelevel)
34966             if defined $::RD_TRACE;
34967              
34968              
34969 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
34970              
34971 0         0 my $score;
34972             my $score_return;
34973 0         0 my $_tok;
34974 0         0 my $return = undef;
34975 0         0 my $_matched=0;
34976 0         0 my $commit=0;
34977 0         0 my @item = ();
34978 0         0 my %item = ();
34979 0   0     0 my $repeating = defined($_[2]) && $_[2];
34980 0   0     0 my $_noactions = defined($_[3]) && $_[3];
34981 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
34982 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
34983 0         0 my $text;
34984 0         0 my $lastsep="";
34985 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34986 0         0 $expectation->at($_[1]);
34987              
34988 0         0 my $thisline;
34989 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34990              
34991              
34992              
34993 0   0     0 while (!$_matched && !$commit)
34994             {
34995              
34996 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['(' ')']},
34997             Parse::RecDescent::_tracefirst($_[1]),
34998             q{column_list},
34999             $tracelevel)
35000             if defined $::RD_TRACE;
35001 0         0 my $thisprod = $thisrule->{"prods"}[0];
35002 0         0 $text = $_[1];
35003 0         0 my $_savetext;
35004 0         0 @item = (q{column_list});
35005 0         0 %item = (__RULE__ => q{column_list});
35006 0         0 my $repcount = 0;
35007              
35008              
35009 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
35010             Parse::RecDescent::_tracefirst($text),
35011             q{column_list},
35012             $tracelevel)
35013             if defined $::RD_TRACE;
35014 0         0 $lastsep = "";
35015 0         0 $expectation->is(q{})->at($text);
35016              
35017              
35018 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
  0 0       0  
35019             {
35020              
35021 0         0 $expectation->failed();
35022 0 0       0 Parse::RecDescent::_trace(qq{<>},
35023             Parse::RecDescent::_tracefirst($text))
35024             if defined $::RD_TRACE;
35025 0         0 last;
35026             }
35027 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35028             . $& . q{])},
35029             Parse::RecDescent::_tracefirst($text))
35030             if defined $::RD_TRACE;
35031 0         0 push @item, $item{__STRING1__}=$&;
35032              
35033              
35034 0 0       0 Parse::RecDescent::_trace(q{Trying operator: []},
35035             Parse::RecDescent::_tracefirst($text),
35036             q{column_list},
35037             $tracelevel)
35038             if defined $::RD_TRACE;
35039 0         0 $expectation->is(q{})->at($text);
35040              
35041 0         0 $_tok = undef;
35042 0         0 OPLOOP: while (1)
35043             {
35044 0         0 $repcount = 0;
35045 0         0 my @item;
35046              
35047             # MATCH LEFTARG
35048              
35049 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
35050             Parse::RecDescent::_tracefirst($text),
35051             q{column_list},
35052             $tracelevel)
35053             if defined $::RD_TRACE;
35054 1     1   9 if (1) { no strict qw{refs};
  1         2  
  1         302  
  0         0  
35055 0         0 $expectation->is(q{column_name})->at($text);
35056 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
35057             {
35058              
35059 0 0       0 Parse::RecDescent::_trace(q{<>},
35060             Parse::RecDescent::_tracefirst($text),
35061             q{column_list},
35062             $tracelevel)
35063             if defined $::RD_TRACE;
35064 0         0 $expectation->failed();
35065 0         0 last;
35066             }
35067 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
35068             . $_tok . q{]},
35069              
35070             Parse::RecDescent::_tracefirst($text),
35071             q{column_list},
35072             $tracelevel)
35073             if defined $::RD_TRACE;
35074 0         0 $item{q{column_name}} = $_tok;
35075 0         0 push @item, $_tok;
35076              
35077             }
35078              
35079              
35080 0         0 $repcount++;
35081              
35082 0         0 my $savetext = $text;
35083 0         0 my $backtrack;
35084              
35085             # MATCH (OP RIGHTARG)(s)
35086 0         0 while ($repcount < 100000000)
35087             {
35088 0         0 $backtrack = 0;
35089              
35090 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
35091             q{column_list},
35092             $tracelevel)
35093             if defined $::RD_TRACE;
35094 0         0 $lastsep = "";
35095 0         0 $expectation->is(q{/,/})->at($text);
35096              
35097              
35098 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//)
  0 0       0  
35099             {
35100              
35101 0         0 $expectation->failed();
35102 0 0       0 Parse::RecDescent::_trace(q{<>},
35103             Parse::RecDescent::_tracefirst($text))
35104             if defined $::RD_TRACE;
35105              
35106 0         0 last;
35107             }
35108 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35109             . $& . q{])},
35110             Parse::RecDescent::_tracefirst($text))
35111             if defined $::RD_TRACE;
35112 0         0 push @item, $item{__PATTERN1__}=$&;
35113              
35114              
35115 0         0 pop @item;
35116 0 0       0 if (defined $1) {push @item, $item{'column_name(s)'}=$1; $backtrack=1;}
  0         0  
  0         0  
35117              
35118 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
35119             Parse::RecDescent::_tracefirst($text),
35120             q{column_list},
35121             $tracelevel)
35122             if defined $::RD_TRACE;
35123 1     1   7 if (1) { no strict qw{refs};
  1         2  
  1         879  
  0         0  
35124 0         0 $expectation->is(q{column_name})->at($text);
35125 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
35126             {
35127              
35128 0 0       0 Parse::RecDescent::_trace(q{<>},
35129             Parse::RecDescent::_tracefirst($text),
35130             q{column_list},
35131             $tracelevel)
35132             if defined $::RD_TRACE;
35133 0         0 $expectation->failed();
35134 0         0 last;
35135             }
35136 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
35137             . $_tok . q{]},
35138              
35139             Parse::RecDescent::_tracefirst($text),
35140             q{column_list},
35141             $tracelevel)
35142             if defined $::RD_TRACE;
35143 0         0 $item{q{column_name}} = $_tok;
35144 0         0 push @item, $_tok;
35145              
35146             }
35147              
35148 0         0 $savetext = $text;
35149 0         0 $repcount++;
35150             }
35151 0         0 $text = $savetext;
35152 0 0       0 pop @item if $backtrack;
35153              
35154 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
35155 0         0 $_tok = [ @item ];
35156 0         0 last;
35157             }
35158              
35159 0 0       0 unless ($repcount>=1)
35160             {
35161 0 0       0 Parse::RecDescent::_trace(q{<]>>},
35162             Parse::RecDescent::_tracefirst($text),
35163             q{column_list},
35164             $tracelevel)
35165             if defined $::RD_TRACE;
35166 0         0 $expectation->failed();
35167 0         0 last;
35168             }
35169 0 0       0 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
35170 0 0       0 . qq{@{$_tok||[]}} . q{]},
35171             Parse::RecDescent::_tracefirst($text),
35172             q{column_list},
35173             $tracelevel)
35174             if defined $::RD_TRACE;
35175              
35176 0   0     0 push @item, $item{'column_name(s)'}=$_tok||[];
35177              
35178              
35179 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
35180             Parse::RecDescent::_tracefirst($text),
35181             q{column_list},
35182             $tracelevel)
35183             if defined $::RD_TRACE;
35184 0         0 $lastsep = "";
35185 0         0 $expectation->is(q{')'})->at($text);
35186              
35187              
35188 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
  0 0       0  
35189             {
35190              
35191 0         0 $expectation->failed();
35192 0 0       0 Parse::RecDescent::_trace(qq{<>},
35193             Parse::RecDescent::_tracefirst($text))
35194             if defined $::RD_TRACE;
35195 0         0 last;
35196             }
35197 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35198             . $& . q{])},
35199             Parse::RecDescent::_tracefirst($text))
35200             if defined $::RD_TRACE;
35201 0         0 push @item, $item{__STRING2__}=$&;
35202              
35203              
35204 0 0       0 Parse::RecDescent::_trace(q{Trying action},
35205             Parse::RecDescent::_tracefirst($text),
35206             q{column_list},
35207             $tracelevel)
35208             if defined $::RD_TRACE;
35209              
35210              
35211 0 0       0 $_tok = ($_noactions) ? 0 : do {
35212 0         0 $return = join(' ', '(', @{$item[2]}, ')');
  0         0  
35213             };
35214 0 0       0 unless (defined $_tok)
35215             {
35216 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
35217             if defined $::RD_TRACE;
35218 0         0 last;
35219             }
35220 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
35221             . $_tok . q{])},
35222             Parse::RecDescent::_tracefirst($text))
35223             if defined $::RD_TRACE;
35224 0         0 push @item, $_tok;
35225 0         0 $item{__ACTION1__}=$_tok;
35226              
35227              
35228              
35229 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['(' ')']<<},
35230             Parse::RecDescent::_tracefirst($text),
35231             q{column_list},
35232             $tracelevel)
35233             if defined $::RD_TRACE;
35234 0         0 $_matched = 1;
35235 0         0 last;
35236             }
35237              
35238              
35239 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
35240             {
35241              
35242              
35243 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
35244 0 0       0 Parse::RecDescent::_trace(q{<>},
35245             Parse::RecDescent::_tracefirst($_[1]),
35246             q{column_list},
35247             $tracelevel)
35248             if defined $::RD_TRACE;
35249 0         0 return undef;
35250             }
35251 0 0 0     0 if (!defined($return) && defined($score))
35252             {
35253 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
35254             q{column_list},
35255             $tracelevel)
35256             if defined $::RD_TRACE;
35257 0         0 $return = $score_return;
35258             }
35259 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
35260 0 0       0 $return = $item[$#item] unless defined $return;
35261 0 0       0 if (defined $::RD_TRACE)
35262             {
35263 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
35264             $return . q{])}, "",
35265             q{column_list},
35266             $tracelevel);
35267 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
35268             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
35269             Parse::RecDescent::_tracefirst($text),
35270             , q{column_list},
35271             $tracelevel)
35272             }
35273 0         0 $_[1] = $text;
35274 0         0 return $return;
35275             }
35276              
35277             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
35278             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_63_of_rule_sysibm_function
35279             {
35280 0     0   0 my $thisparser = $_[0];
35281 1     1   8 use vars q{$tracelevel};
  1         2  
  1         752  
35282 0   0     0 local $tracelevel = ($tracelevel||0)+1;
35283 0         0 $ERRORS = 0;
35284 0         0 my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_63_of_rule_sysibm_function"};
35285              
35286 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_63_of_rule_sysibm_function]},
35287             Parse::RecDescent::_tracefirst($_[1]),
35288             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35289             $tracelevel)
35290             if defined $::RD_TRACE;
35291              
35292              
35293 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
35294              
35295 0         0 my $score;
35296             my $score_return;
35297 0         0 my $_tok;
35298 0         0 my $return = undef;
35299 0         0 my $_matched=0;
35300 0         0 my $commit=0;
35301 0         0 my @item = ();
35302 0         0 my %item = ();
35303 0   0     0 my $repeating = defined($_[2]) && $_[2];
35304 0   0     0 my $_noactions = defined($_[3]) && $_[3];
35305 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
35306 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
35307 0         0 my $text;
35308 0         0 my $lastsep="";
35309 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
35310 0         0 $expectation->at($_[1]);
35311              
35312 0         0 my $thisline;
35313 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
35314              
35315              
35316              
35317 0   0     0 while (!$_matched && !$commit)
35318             {
35319              
35320 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REGR_INTERCEPT/i]},
35321             Parse::RecDescent::_tracefirst($_[1]),
35322             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35323             $tracelevel)
35324             if defined $::RD_TRACE;
35325 0         0 my $thisprod = $thisrule->{"prods"}[0];
35326 0         0 $text = $_[1];
35327 0         0 my $_savetext;
35328 0         0 @item = (q{_alternation_1_of_production_63_of_rule_sysibm_function});
35329 0         0 %item = (__RULE__ => q{_alternation_1_of_production_63_of_rule_sysibm_function});
35330 0         0 my $repcount = 0;
35331              
35332              
35333 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_INTERCEPT/i]}, Parse::RecDescent::_tracefirst($text),
35334             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35335             $tracelevel)
35336             if defined $::RD_TRACE;
35337 0         0 $lastsep = "";
35338 0         0 $expectation->is(q{})->at($text);
35339              
35340              
35341 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REGR_INTERCEPT)//i)
  0 0       0  
35342             {
35343              
35344 0         0 $expectation->failed();
35345 0 0       0 Parse::RecDescent::_trace(q{<>},
35346             Parse::RecDescent::_tracefirst($text))
35347             if defined $::RD_TRACE;
35348              
35349 0         0 last;
35350             }
35351 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35352             . $& . q{])},
35353             Parse::RecDescent::_tracefirst($text))
35354             if defined $::RD_TRACE;
35355 0         0 push @item, $item{__PATTERN1__}=$&;
35356              
35357              
35358              
35359 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_INTERCEPT/i]<<},
35360             Parse::RecDescent::_tracefirst($text),
35361             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35362             $tracelevel)
35363             if defined $::RD_TRACE;
35364 0         0 $_matched = 1;
35365 0         0 last;
35366             }
35367              
35368              
35369 0   0     0 while (!$_matched && !$commit)
35370             {
35371              
35372 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/REGR_ICPT/i]},
35373             Parse::RecDescent::_tracefirst($_[1]),
35374             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35375             $tracelevel)
35376             if defined $::RD_TRACE;
35377 0         0 my $thisprod = $thisrule->{"prods"}[1];
35378 0         0 $text = $_[1];
35379 0         0 my $_savetext;
35380 0         0 @item = (q{_alternation_1_of_production_63_of_rule_sysibm_function});
35381 0         0 %item = (__RULE__ => q{_alternation_1_of_production_63_of_rule_sysibm_function});
35382 0         0 my $repcount = 0;
35383              
35384              
35385 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/REGR_ICPT/i]}, Parse::RecDescent::_tracefirst($text),
35386             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35387             $tracelevel)
35388             if defined $::RD_TRACE;
35389 0         0 $lastsep = "";
35390 0         0 $expectation->is(q{})->at($text);
35391              
35392              
35393 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:REGR_ICPT)//i)
  0 0       0  
35394             {
35395              
35396 0         0 $expectation->failed();
35397 0 0       0 Parse::RecDescent::_trace(q{<>},
35398             Parse::RecDescent::_tracefirst($text))
35399             if defined $::RD_TRACE;
35400              
35401 0         0 last;
35402             }
35403 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35404             . $& . q{])},
35405             Parse::RecDescent::_tracefirst($text))
35406             if defined $::RD_TRACE;
35407 0         0 push @item, $item{__PATTERN1__}=$&;
35408              
35409              
35410              
35411 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/REGR_ICPT/i]<<},
35412             Parse::RecDescent::_tracefirst($text),
35413             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35414             $tracelevel)
35415             if defined $::RD_TRACE;
35416 0         0 $_matched = 1;
35417 0         0 last;
35418             }
35419              
35420              
35421 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
35422             {
35423              
35424              
35425 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
35426 0 0       0 Parse::RecDescent::_trace(q{<>},
35427             Parse::RecDescent::_tracefirst($_[1]),
35428             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35429             $tracelevel)
35430             if defined $::RD_TRACE;
35431 0         0 return undef;
35432             }
35433 0 0 0     0 if (!defined($return) && defined($score))
35434             {
35435 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
35436             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35437             $tracelevel)
35438             if defined $::RD_TRACE;
35439 0         0 $return = $score_return;
35440             }
35441 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
35442 0 0       0 $return = $item[$#item] unless defined $return;
35443 0 0       0 if (defined $::RD_TRACE)
35444             {
35445 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
35446             $return . q{])}, "",
35447             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35448             $tracelevel);
35449 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
35450             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
35451             Parse::RecDescent::_tracefirst($text),
35452             , q{_alternation_1_of_production_63_of_rule_sysibm_function},
35453             $tracelevel)
35454             }
35455 0         0 $_[1] = $text;
35456 0         0 return $return;
35457             }
35458              
35459             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
35460             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::dereference_operation
35461             {
35462 0     0   0 my $thisparser = $_[0];
35463 1     1   7 use vars q{$tracelevel};
  1         2  
  1         272  
35464 0   0     0 local $tracelevel = ($tracelevel||0)+1;
35465 0         0 $ERRORS = 0;
35466 0         0 my $thisrule = $thisparser->{"rules"}{"dereference_operation"};
35467              
35468 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [dereference_operation]},
35469             Parse::RecDescent::_tracefirst($_[1]),
35470             q{dereference_operation},
35471             $tracelevel)
35472             if defined $::RD_TRACE;
35473              
35474              
35475 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
35476              
35477 0         0 my $score;
35478             my $score_return;
35479 0         0 my $_tok;
35480 0         0 my $return = undef;
35481 0         0 my $_matched=0;
35482 0         0 my $commit=0;
35483 0         0 my @item = ();
35484 0         0 my %item = ();
35485 0   0     0 my $repeating = defined($_[2]) && $_[2];
35486 0   0     0 my $_noactions = defined($_[3]) && $_[3];
35487 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
35488 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
35489 0         0 my $text;
35490 0         0 my $lastsep="";
35491 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
35492 0         0 $expectation->at($_[1]);
35493              
35494 0         0 my $thisline;
35495 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
35496              
35497              
35498              
35499 0   0     0 while (!$_matched && !$commit)
35500             {
35501              
35502 0 0       0 Parse::RecDescent::_trace(q{Trying production: [scoped_reference_expression '->' name1 '(']},
35503             Parse::RecDescent::_tracefirst($_[1]),
35504             q{dereference_operation},
35505             $tracelevel)
35506             if defined $::RD_TRACE;
35507 0         0 my $thisprod = $thisrule->{"prods"}[0];
35508 0         0 $text = $_[1];
35509 0         0 my $_savetext;
35510 0         0 @item = (q{dereference_operation});
35511 0         0 %item = (__RULE__ => q{dereference_operation});
35512 0         0 my $repcount = 0;
35513              
35514              
35515 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [scoped_reference_expression]},
35516             Parse::RecDescent::_tracefirst($text),
35517             q{dereference_operation},
35518             $tracelevel)
35519             if defined $::RD_TRACE;
35520 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         343  
  0         0  
35521 0         0 $expectation->is(q{})->at($text);
35522 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scoped_reference_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
35523             {
35524              
35525 0 0       0 Parse::RecDescent::_trace(q{<>},
35526             Parse::RecDescent::_tracefirst($text),
35527             q{dereference_operation},
35528             $tracelevel)
35529             if defined $::RD_TRACE;
35530 0         0 $expectation->failed();
35531 0         0 last;
35532             }
35533 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [scoped_reference_expression]<< (return value: [}
35534             . $_tok . q{]},
35535              
35536             Parse::RecDescent::_tracefirst($text),
35537             q{dereference_operation},
35538             $tracelevel)
35539             if defined $::RD_TRACE;
35540 0         0 $item{q{scoped_reference_expression}} = $_tok;
35541 0         0 push @item, $_tok;
35542              
35543             }
35544              
35545 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['->']},
35546             Parse::RecDescent::_tracefirst($text),
35547             q{dereference_operation},
35548             $tracelevel)
35549             if defined $::RD_TRACE;
35550 0         0 $lastsep = "";
35551 0         0 $expectation->is(q{'->'})->at($text);
35552              
35553              
35554 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\-\>//)
  0 0       0  
35555             {
35556              
35557 0         0 $expectation->failed();
35558 0 0       0 Parse::RecDescent::_trace(qq{<>},
35559             Parse::RecDescent::_tracefirst($text))
35560             if defined $::RD_TRACE;
35561 0         0 last;
35562             }
35563 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35564             . $& . q{])},
35565             Parse::RecDescent::_tracefirst($text))
35566             if defined $::RD_TRACE;
35567 0         0 push @item, $item{__STRING1__}=$&;
35568              
35569              
35570 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [name1]},
35571             Parse::RecDescent::_tracefirst($text),
35572             q{dereference_operation},
35573             $tracelevel)
35574             if defined $::RD_TRACE;
35575 1     1   7 if (1) { no strict qw{refs};
  1         3  
  1         449  
  0         0  
35576 0         0 $expectation->is(q{name1})->at($text);
35577 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::name1($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
35578             {
35579              
35580 0 0       0 Parse::RecDescent::_trace(q{<>},
35581             Parse::RecDescent::_tracefirst($text),
35582             q{dereference_operation},
35583             $tracelevel)
35584             if defined $::RD_TRACE;
35585 0         0 $expectation->failed();
35586 0         0 last;
35587             }
35588 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [name1]<< (return value: [}
35589             . $_tok . q{]},
35590              
35591             Parse::RecDescent::_tracefirst($text),
35592             q{dereference_operation},
35593             $tracelevel)
35594             if defined $::RD_TRACE;
35595 0         0 $item{q{name1}} = $_tok;
35596 0         0 push @item, $_tok;
35597              
35598             }
35599              
35600 0 0       0 Parse::RecDescent::_trace(q{Trying repeated subrule: ['(']},
35601             Parse::RecDescent::_tracefirst($text),
35602             q{dereference_operation},
35603             $tracelevel)
35604             if defined $::RD_TRACE;
35605 0         0 $expectation->is(q{'('})->at($text);
35606              
35607 0 0       0 unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_dereference_operation, 0, 1, $_noactions,$expectation,undef)))
35608             {
35609 0 0       0 Parse::RecDescent::_trace(q{<>},
35610             Parse::RecDescent::_tracefirst($text),
35611             q{dereference_operation},
35612             $tracelevel)
35613             if defined $::RD_TRACE;
35614 0         0 last;
35615             }
35616 0 0       0 Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_dereference_operation]<< (}
35617             . @$_tok . q{ times)},
35618              
35619             Parse::RecDescent::_tracefirst($text),
35620             q{dereference_operation},
35621             $tracelevel)
35622             if defined $::RD_TRACE;
35623 0         0 $item{q{_alternation_1_of_production_1_of_rule_dereference_operation(?)}} = $_tok;
35624 0         0 push @item, $_tok;
35625              
35626              
35627              
35628              
35629 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [scoped_reference_expression '->' name1 '(']<<},
35630             Parse::RecDescent::_tracefirst($text),
35631             q{dereference_operation},
35632             $tracelevel)
35633             if defined $::RD_TRACE;
35634 0         0 $_matched = 1;
35635 0         0 last;
35636             }
35637              
35638              
35639 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
35640             {
35641              
35642              
35643 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
35644 0 0       0 Parse::RecDescent::_trace(q{<>},
35645             Parse::RecDescent::_tracefirst($_[1]),
35646             q{dereference_operation},
35647             $tracelevel)
35648             if defined $::RD_TRACE;
35649 0         0 return undef;
35650             }
35651 0 0 0     0 if (!defined($return) && defined($score))
35652             {
35653 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
35654             q{dereference_operation},
35655             $tracelevel)
35656             if defined $::RD_TRACE;
35657 0         0 $return = $score_return;
35658             }
35659 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
35660 0 0       0 $return = $item[$#item] unless defined $return;
35661 0 0       0 if (defined $::RD_TRACE)
35662             {
35663 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
35664             $return . q{])}, "",
35665             q{dereference_operation},
35666             $tracelevel);
35667 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
35668             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
35669             Parse::RecDescent::_tracefirst($text),
35670             , q{dereference_operation},
35671             $tracelevel)
35672             }
35673 0         0 $_[1] = $text;
35674 0         0 return $return;
35675             }
35676              
35677             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
35678             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OUTER
35679             {
35680 0     0   0 my $thisparser = $_[0];
35681 1     1   8 use vars q{$tracelevel};
  1         2  
  1         588  
35682 0   0     0 local $tracelevel = ($tracelevel||0)+1;
35683 0         0 $ERRORS = 0;
35684 0         0 my $thisrule = $thisparser->{"rules"}{"OUTER"};
35685              
35686 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [OUTER]},
35687             Parse::RecDescent::_tracefirst($_[1]),
35688             q{OUTER},
35689             $tracelevel)
35690             if defined $::RD_TRACE;
35691              
35692              
35693 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
35694              
35695 0         0 my $score;
35696             my $score_return;
35697 0         0 my $_tok;
35698 0         0 my $return = undef;
35699 0         0 my $_matched=0;
35700 0         0 my $commit=0;
35701 0         0 my @item = ();
35702 0         0 my %item = ();
35703 0   0     0 my $repeating = defined($_[2]) && $_[2];
35704 0   0     0 my $_noactions = defined($_[3]) && $_[3];
35705 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
35706 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
35707 0         0 my $text;
35708 0         0 my $lastsep="";
35709 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
35710 0         0 $expectation->at($_[1]);
35711              
35712 0         0 my $thisline;
35713 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
35714              
35715              
35716              
35717 0   0     0 while (!$_matched && !$commit)
35718             {
35719              
35720 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/outer/i]},
35721             Parse::RecDescent::_tracefirst($_[1]),
35722             q{OUTER},
35723             $tracelevel)
35724             if defined $::RD_TRACE;
35725 0         0 my $thisprod = $thisrule->{"prods"}[0];
35726 0         0 $text = $_[1];
35727 0         0 my $_savetext;
35728 0         0 @item = (q{OUTER});
35729 0         0 %item = (__RULE__ => q{OUTER});
35730 0         0 my $repcount = 0;
35731              
35732              
35733 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/outer/i]}, Parse::RecDescent::_tracefirst($text),
35734             q{OUTER},
35735             $tracelevel)
35736             if defined $::RD_TRACE;
35737 0         0 $lastsep = "";
35738 0         0 $expectation->is(q{})->at($text);
35739              
35740              
35741 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:outer)//i)
  0 0       0  
35742             {
35743              
35744 0         0 $expectation->failed();
35745 0 0       0 Parse::RecDescent::_trace(q{<>},
35746             Parse::RecDescent::_tracefirst($text))
35747             if defined $::RD_TRACE;
35748              
35749 0         0 last;
35750             }
35751 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35752             . $& . q{])},
35753             Parse::RecDescent::_tracefirst($text))
35754             if defined $::RD_TRACE;
35755 0         0 push @item, $item{__PATTERN1__}=$&;
35756              
35757              
35758              
35759 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/outer/i]<<},
35760             Parse::RecDescent::_tracefirst($text),
35761             q{OUTER},
35762             $tracelevel)
35763             if defined $::RD_TRACE;
35764 0         0 $_matched = 1;
35765 0         0 last;
35766             }
35767              
35768              
35769 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
35770             {
35771              
35772              
35773 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
35774 0 0       0 Parse::RecDescent::_trace(q{<>},
35775             Parse::RecDescent::_tracefirst($_[1]),
35776             q{OUTER},
35777             $tracelevel)
35778             if defined $::RD_TRACE;
35779 0         0 return undef;
35780             }
35781 0 0 0     0 if (!defined($return) && defined($score))
35782             {
35783 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
35784             q{OUTER},
35785             $tracelevel)
35786             if defined $::RD_TRACE;
35787 0         0 $return = $score_return;
35788             }
35789 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
35790 0 0       0 $return = $item[$#item] unless defined $return;
35791 0 0       0 if (defined $::RD_TRACE)
35792             {
35793 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
35794             $return . q{])}, "",
35795             q{OUTER},
35796             $tracelevel);
35797 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
35798             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
35799             Parse::RecDescent::_tracefirst($text),
35800             , q{OUTER},
35801             $tracelevel)
35802             }
35803 0         0 $_[1] = $text;
35804 0         0 return $return;
35805             }
35806              
35807             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
35808             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause
35809             {
35810 0     0   0 my $thisparser = $_[0];
35811 1     1   8 use vars q{$tracelevel};
  1         2  
  1         474  
35812 0   0     0 local $tracelevel = ($tracelevel||0)+1;
35813 0         0 $ERRORS = 0;
35814 0         0 my $thisrule = $thisparser->{"rules"}{"window_order_clause"};
35815              
35816 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [window_order_clause]},
35817             Parse::RecDescent::_tracefirst($_[1]),
35818             q{window_order_clause},
35819             $tracelevel)
35820             if defined $::RD_TRACE;
35821              
35822              
35823 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
35824              
35825 0         0 my $score;
35826             my $score_return;
35827 0         0 my $_tok;
35828 0         0 my $return = undef;
35829 0         0 my $_matched=0;
35830 0         0 my $commit=0;
35831 0         0 my @item = ();
35832 0         0 my %item = ();
35833 0   0     0 my $repeating = defined($_[2]) && $_[2];
35834 0   0     0 my $_noactions = defined($_[3]) && $_[3];
35835 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
35836 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
35837 0         0 my $text;
35838 0         0 my $lastsep="";
35839 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
35840 0         0 $expectation->at($_[1]);
35841              
35842 0         0 my $thisline;
35843 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
35844              
35845              
35846              
35847 0   0     0 while (!$_matched && !$commit)
35848             {
35849              
35850 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/ORDER\\s+BY/i ]},
35851             Parse::RecDescent::_tracefirst($_[1]),
35852             q{window_order_clause},
35853             $tracelevel)
35854             if defined $::RD_TRACE;
35855 0         0 my $thisprod = $thisrule->{"prods"}[0];
35856 0         0 $text = $_[1];
35857 0         0 my $_savetext;
35858 0         0 @item = (q{window_order_clause});
35859 0         0 %item = (__RULE__ => q{window_order_clause});
35860 0         0 my $repcount = 0;
35861              
35862              
35863 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/ORDER\\s+BY/i]}, Parse::RecDescent::_tracefirst($text),
35864             q{window_order_clause},
35865             $tracelevel)
35866             if defined $::RD_TRACE;
35867 0         0 $lastsep = "";
35868 0         0 $expectation->is(q{})->at($text);
35869              
35870              
35871 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:ORDER\s+BY)//i)
  0 0       0  
35872             {
35873              
35874 0         0 $expectation->failed();
35875 0 0       0 Parse::RecDescent::_trace(q{<>},
35876             Parse::RecDescent::_tracefirst($text))
35877             if defined $::RD_TRACE;
35878              
35879 0         0 last;
35880             }
35881 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35882             . $& . q{])},
35883             Parse::RecDescent::_tracefirst($text))
35884             if defined $::RD_TRACE;
35885 0         0 push @item, $item{__PATTERN1__}=$&;
35886              
35887              
35888 0 0       0 Parse::RecDescent::_trace(q{Trying operator: []},
35889             Parse::RecDescent::_tracefirst($text),
35890             q{window_order_clause},
35891             $tracelevel)
35892             if defined $::RD_TRACE;
35893 0         0 $expectation->is(q{})->at($text);
35894              
35895 0         0 $_tok = undef;
35896 0         0 OPLOOP: while (1)
35897             {
35898 0         0 $repcount = 0;
35899 0         0 my @item;
35900              
35901             # MATCH LEFTARG
35902              
35903 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
35904             Parse::RecDescent::_tracefirst($text),
35905             q{window_order_clause},
35906             $tracelevel)
35907             if defined $::RD_TRACE;
35908 1     1   8 if (1) { no strict qw{refs};
  1         2  
  1         290  
  0         0  
35909 0         0 $expectation->is(q{sort_key_expression})->at($text);
35910 0 0   0   0 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 })))
  0         0  
35911             {
35912              
35913 0 0       0 Parse::RecDescent::_trace(q{<>},
35914             Parse::RecDescent::_tracefirst($text),
35915             q{window_order_clause},
35916             $tracelevel)
35917             if defined $::RD_TRACE;
35918 0         0 $expectation->failed();
35919 0         0 last;
35920             }
35921 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]<< (return value: [}
35922             . $_tok . q{]},
35923              
35924             Parse::RecDescent::_tracefirst($text),
35925             q{window_order_clause},
35926             $tracelevel)
35927             if defined $::RD_TRACE;
35928 0         0 $item{q{_alternation_1_of_production_1_of_rule_window_order_clause}} = $_tok;
35929 0         0 push @item, $_tok;
35930              
35931             }
35932              
35933              
35934 0         0 $repcount++;
35935              
35936 0         0 my $savetext = $text;
35937 0         0 my $backtrack;
35938              
35939             # MATCH (OP RIGHTARG)(s)
35940 0         0 while ($repcount < 100000000)
35941             {
35942 0         0 $backtrack = 0;
35943              
35944 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
35945             q{window_order_clause},
35946             $tracelevel)
35947             if defined $::RD_TRACE;
35948 0         0 $lastsep = "";
35949 0         0 $expectation->is(q{/,/})->at($text);
35950              
35951              
35952 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//)
  0 0       0  
35953             {
35954              
35955 0         0 $expectation->failed();
35956 0 0       0 Parse::RecDescent::_trace(q{<>},
35957             Parse::RecDescent::_tracefirst($text))
35958             if defined $::RD_TRACE;
35959              
35960 0         0 last;
35961             }
35962 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35963             . $& . q{])},
35964             Parse::RecDescent::_tracefirst($text))
35965             if defined $::RD_TRACE;
35966 0         0 push @item, $item{__PATTERN2__}=$&;
35967              
35968              
35969 0         0 pop @item;
35970 0 0       0 if (defined $1) {push @item, $item{'_alternation_1_of_production_1_of_rule_window_order_clause(s)'}=$1; $backtrack=1;}
  0         0  
  0         0  
35971              
35972 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
35973             Parse::RecDescent::_tracefirst($text),
35974             q{window_order_clause},
35975             $tracelevel)
35976             if defined $::RD_TRACE;
35977 1     1   14 if (1) { no strict qw{refs};
  1         2  
  1         510  
  0         0  
35978 0         0 $expectation->is(q{sort_key_expression})->at($text);
35979 0 0   0   0 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 })))
  0         0  
35980             {
35981              
35982 0 0       0 Parse::RecDescent::_trace(q{<>},
35983             Parse::RecDescent::_tracefirst($text),
35984             q{window_order_clause},
35985             $tracelevel)
35986             if defined $::RD_TRACE;
35987 0         0 $expectation->failed();
35988 0         0 last;
35989             }
35990 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]<< (return value: [}
35991             . $_tok . q{]},
35992              
35993             Parse::RecDescent::_tracefirst($text),
35994             q{window_order_clause},
35995             $tracelevel)
35996             if defined $::RD_TRACE;
35997 0         0 $item{q{_alternation_1_of_production_1_of_rule_window_order_clause}} = $_tok;
35998 0         0 push @item, $_tok;
35999              
36000             }
36001              
36002 0         0 $savetext = $text;
36003 0         0 $repcount++;
36004             }
36005 0         0 $text = $savetext;
36006 0 0       0 pop @item if $backtrack;
36007              
36008 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
36009 0         0 $_tok = [ @item ];
36010 0         0 last;
36011             }
36012              
36013 0 0       0 unless ($repcount>=1)
36014             {
36015 0 0       0 Parse::RecDescent::_trace(q{<]>>},
36016             Parse::RecDescent::_tracefirst($text),
36017             q{window_order_clause},
36018             $tracelevel)
36019             if defined $::RD_TRACE;
36020 0         0 $expectation->failed();
36021 0         0 last;
36022             }
36023 0 0       0 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
36024 0 0       0 . qq{@{$_tok||[]}} . q{]},
36025             Parse::RecDescent::_tracefirst($text),
36026             q{window_order_clause},
36027             $tracelevel)
36028             if defined $::RD_TRACE;
36029              
36030 0   0     0 push @item, $item{'_alternation_1_of_production_1_of_rule_window_order_clause(s)'}=$_tok||[];
36031              
36032              
36033              
36034 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/ORDER\\s+BY/i ]<<},
36035             Parse::RecDescent::_tracefirst($text),
36036             q{window_order_clause},
36037             $tracelevel)
36038             if defined $::RD_TRACE;
36039 0         0 $_matched = 1;
36040 0         0 last;
36041             }
36042              
36043              
36044 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
36045             {
36046              
36047              
36048 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
36049 0 0       0 Parse::RecDescent::_trace(q{<>},
36050             Parse::RecDescent::_tracefirst($_[1]),
36051             q{window_order_clause},
36052             $tracelevel)
36053             if defined $::RD_TRACE;
36054 0         0 return undef;
36055             }
36056 0 0 0     0 if (!defined($return) && defined($score))
36057             {
36058 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
36059             q{window_order_clause},
36060             $tracelevel)
36061             if defined $::RD_TRACE;
36062 0         0 $return = $score_return;
36063             }
36064 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
36065 0 0       0 $return = $item[$#item] unless defined $return;
36066 0 0       0 if (defined $::RD_TRACE)
36067             {
36068 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
36069             $return . q{])}, "",
36070             q{window_order_clause},
36071             $tracelevel);
36072 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
36073             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
36074             Parse::RecDescent::_tracefirst($text),
36075             , q{window_order_clause},
36076             $tracelevel)
36077             }
36078 0         0 $_[1] = $text;
36079 0         0 return $return;
36080             }
36081              
36082             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
36083             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::TRIGGER
36084             {
36085 0     0   0 my $thisparser = $_[0];
36086 1     1   9 use vars q{$tracelevel};
  1         2  
  1         580  
36087 0   0     0 local $tracelevel = ($tracelevel||0)+1;
36088 0         0 $ERRORS = 0;
36089 0         0 my $thisrule = $thisparser->{"rules"}{"TRIGGER"};
36090              
36091 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [TRIGGER]},
36092             Parse::RecDescent::_tracefirst($_[1]),
36093             q{TRIGGER},
36094             $tracelevel)
36095             if defined $::RD_TRACE;
36096              
36097              
36098 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
36099              
36100 0         0 my $score;
36101             my $score_return;
36102 0         0 my $_tok;
36103 0         0 my $return = undef;
36104 0         0 my $_matched=0;
36105 0         0 my $commit=0;
36106 0         0 my @item = ();
36107 0         0 my %item = ();
36108 0   0     0 my $repeating = defined($_[2]) && $_[2];
36109 0   0     0 my $_noactions = defined($_[3]) && $_[3];
36110 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
36111 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
36112 0         0 my $text;
36113 0         0 my $lastsep="";
36114 0         0 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
36115 0         0 $expectation->at($_[1]);
36116              
36117 0         0 my $thisline;
36118 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
36119              
36120              
36121              
36122 0   0     0 while (!$_matched && !$commit)
36123             {
36124              
36125 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/trigger/i]},
36126             Parse::RecDescent::_tracefirst($_[1]),
36127             q{TRIGGER},
36128             $tracelevel)
36129             if defined $::RD_TRACE;
36130 0         0 my $thisprod = $thisrule->{"prods"}[0];
36131 0         0 $text = $_[1];
36132 0         0 my $_savetext;
36133 0         0 @item = (q{TRIGGER});
36134 0         0 %item = (__RULE__ => q{TRIGGER});
36135 0         0 my $repcount = 0;
36136              
36137              
36138 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/trigger/i]}, Parse::RecDescent::_tracefirst($text),
36139             q{TRIGGER},
36140             $tracelevel)
36141             if defined $::RD_TRACE;
36142 0         0 $lastsep = "";
36143 0         0 $expectation->is(q{})->at($text);
36144              
36145              
36146 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:trigger)//i)
  0 0       0  
36147             {
36148              
36149 0         0 $expectation->failed();
36150 0 0       0 Parse::RecDescent::_trace(q{<>},
36151             Parse::RecDescent::_tracefirst($text))
36152             if defined $::RD_TRACE;
36153              
36154 0         0 last;
36155             }
36156 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
36157             . $& . q{])},
36158             Parse::RecDescent::_tracefirst($text))
36159             if defined $::RD_TRACE;
36160 0         0 push @item, $item{__PATTERN1__}=$&;
36161              
36162              
36163              
36164 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/trigger/i]<<},
36165             Parse::RecDescent::_tracefirst($text),
36166             q{TRIGGER},
36167             $tracelevel)
36168             if defined $::RD_TRACE;
36169 0         0 $_matched = 1;
36170 0         0 last;
36171             }
36172              
36173              
36174 0 0 0     0 unless ( $_matched || defined($return) || defined($score) )
      0        
36175             {
36176              
36177              
36178 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
36179 0 0       0 Parse::RecDescent::_trace(q{<>},
36180             Parse::RecDescent::_tracefirst($_[1]),
36181             q{TRIGGER},
36182             $tracelevel)
36183             if defined $::RD_TRACE;
36184 0         0 return undef;
36185             }
36186 0 0 0     0 if (!defined($return) && defined($score))
36187             {
36188 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
36189             q{TRIGGER},
36190             $tracelevel)
36191             if defined $::RD_TRACE;
36192 0         0 $return = $score_return;
36193             }
36194 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
36195 0 0       0 $return = $item[$#item] unless defined $return;
36196 0 0       0 if (defined $::RD_TRACE)
36197             {
36198 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
36199             $return . q{])}, "",
36200             q{TRIGGER},
36201             $tracelevel);
36202 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
36203             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
36204             Parse::RecDescent::_tracefirst($text),
36205             , q{TRIGGER},
36206             $tracelevel)
36207             }
36208 0         0 $_[1] = $text;
36209 0         0 return $return;
36210             }
36211              
36212             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
36213             sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::comment
36214             {
36215 1     1   2 my $thisparser = $_[0];
36216 1     1   8 use vars q{$tracelevel};
  1         2  
  1         22627  
36217 1   50     4 local $tracelevel = ($tracelevel||0)+1;
36218 1         2 $ERRORS = 0;
36219 1         2 my $thisrule = $thisparser->{"rules"}{"comment"};
36220              
36221 1 50       4 Parse::RecDescent::_trace(q{Trying rule: [comment]},
36222             Parse::RecDescent::_tracefirst($_[1]),
36223             q{comment},
36224             $tracelevel)
36225             if defined $::RD_TRACE;
36226              
36227              
36228 1         1 my $err_at = @{$thisparser->{errors}};
  1         2  
36229              
36230 1         4 my $score;
36231             my $score_return;
36232 1         0 my $_tok;
36233 1         2 my $return = undef;
36234 1         2 my $_matched=0;
36235 1         2 my $commit=0;
36236 1         2 my @item = ();
36237 1         2 my %item = ();
36238 1   33     6 my $repeating = defined($_[2]) && $_[2];
36239 1   33     6 my $_noactions = defined($_[3]) && $_[3];
36240 1 50       4 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  1         2  
  1         4  
36241 1 50       5 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
36242 1         2 my $text;
36243 1         3 my $lastsep="";
36244 1         4 my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
36245 1         34 $expectation->at($_[1]);
36246              
36247 1         4 my $thisline;
36248 1         5 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
36249              
36250              
36251              
36252 1   33     12 while (!$_matched && !$commit)
36253             {
36254              
36255 1 50       2 Parse::RecDescent::_trace(q{Trying production: [/^\\s*-\{2\}.*\\n/]},
36256             Parse::RecDescent::_tracefirst($_[1]),
36257             q{comment},
36258             $tracelevel)
36259             if defined $::RD_TRACE;
36260 1         3 my $thisprod = $thisrule->{"prods"}[0];
36261 1         2 $text = $_[1];
36262 1         2 my $_savetext;
36263 1         2 @item = (q{comment});
36264 1         3 %item = (__RULE__ => q{comment});
36265 1         1 my $repcount = 0;
36266              
36267              
36268 1 50       4 Parse::RecDescent::_trace(q{Trying terminal: [/^\\s*-\{2\}.*\\n/]}, Parse::RecDescent::_tracefirst($text),
36269             q{comment},
36270             $tracelevel)
36271             if defined $::RD_TRACE;
36272 1         2 $lastsep = "";
36273 1         3 $expectation->is(q{})->at($text);
36274              
36275              
36276 1 50 33     37 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:^\s*-{2}.*\n)//)
  1 50       24  
36277             {
36278              
36279 1         5 $expectation->failed();
36280 1 50       6 Parse::RecDescent::_trace(q{<>},
36281             Parse::RecDescent::_tracefirst($text))
36282             if defined $::RD_TRACE;
36283              
36284 1         4 last;
36285             }
36286 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
36287             . $& . q{])},
36288             Parse::RecDescent::_tracefirst($text))
36289             if defined $::RD_TRACE;
36290 0         0 push @item, $item{__PATTERN1__}=$&;
36291              
36292              
36293 0 0       0 Parse::RecDescent::_trace(q{Trying action},
36294             Parse::RecDescent::_tracefirst($text),
36295             q{comment},
36296             $tracelevel)
36297             if defined $::RD_TRACE;
36298              
36299              
36300 0 0       0 $_tok = ($_noactions) ? 0 : do {
36301 0         0 my $comment = $item[1];
36302 0         0 $comment =~ s/^\s*(-{2})\s*//;
36303 0         0 $comment =~ s/\s*$//;
36304 0         0 $return = $comment;
36305             };
36306 0 0       0 unless (defined $_tok)
36307             {
36308 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
36309             if defined $::RD_TRACE;
36310 0         0 last;
36311             }
36312 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
36313             . $_tok . q{])},
36314             Parse::RecDescent::_tracefirst($text))
36315             if defined $::RD_TRACE;
36316 0         0 push @item, $_tok;
36317 0         0 $item{__ACTION1__}=$_tok;
36318              
36319              
36320              
36321 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/^\\s*-\{2\}.*\\n/]<<},
36322             Parse::RecDescent::_tracefirst($text),
36323             q{comment},
36324             $tracelevel)
36325             if defined $::RD_TRACE;
36326 0         0 $_matched = 1;
36327 0         0 last;
36328             }
36329              
36330              
36331 1 50 33     9 unless ( $_matched || defined($return) || defined($score) )
      33        
36332             {
36333              
36334              
36335 1         9 $_[1] = $text; # NOT SURE THIS IS NEEDED
36336 1 50       4 Parse::RecDescent::_trace(q{<>},
36337             Parse::RecDescent::_tracefirst($_[1]),
36338             q{comment},
36339             $tracelevel)
36340             if defined $::RD_TRACE;
36341 1         15 return undef;
36342             }
36343 0 0 0     0 if (!defined($return) && defined($score))
36344             {
36345 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
36346             q{comment},
36347             $tracelevel)
36348             if defined $::RD_TRACE;
36349 0         0 $return = $score_return;
36350             }
36351 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
36352 0 0       0 $return = $item[$#item] unless defined $return;
36353 0 0       0 if (defined $::RD_TRACE)
36354             {
36355 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
36356             $return . q{])}, "",
36357             q{comment},
36358             $tracelevel);
36359 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
36360             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
36361             Parse::RecDescent::_tracefirst($text),
36362             , q{comment},
36363             $tracelevel)
36364             }
36365 0         0 $_[1] = $text;
36366 0         0 return $return;
36367             }
36368             }
36369 2     2 0 7452 package SQL::Translator::Parser::DB2::Grammar; sub new { my $self = bless( {
36370             '_AUTOTREE' => undef,
36371             'localvars' => '',
36372             'startcode' => '',
36373             '_check' => {
36374             'thisoffset' => '',
36375             'itempos' => '',
36376             'prevoffset' => '',
36377             'prevline' => '',
36378             'prevcolumn' => '',
36379             'thiscolumn' => ''
36380             },
36381             'namespace' => 'Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar',
36382             '_AUTOACTION' => undef,
36383             'rules' => {
36384             '_alternation_1_of_production_17_of_rule_sysibm_function' => bless( {
36385             'impcount' => 0,
36386             'calls' => [],
36387             'changed' => 0,
36388             'opcount' => 0,
36389             'prods' => [
36390             bless( {
36391             'number' => '0',
36392             'strcount' => 0,
36393             'dircount' => 0,
36394             'uncommit' => undef,
36395             'error' => undef,
36396             'patcount' => 1,
36397             'actcount' => 0,
36398             'items' => [
36399             bless( {
36400             'pattern' => 'DECIMAL',
36401             'hashname' => '__PATTERN1__',
36402             'description' => '/DECIMAL/i',
36403             'lookahead' => 0,
36404             'rdelim' => '/',
36405             'line' => 628,
36406             'mod' => 'i',
36407             'ldelim' => '/'
36408             }, 'Parse::RecDescent::Token' )
36409             ],
36410             'line' => undef
36411             }, 'Parse::RecDescent::Production' ),
36412             bless( {
36413             'number' => '1',
36414             'strcount' => 0,
36415             'dircount' => 0,
36416             'uncommit' => undef,
36417             'error' => undef,
36418             'patcount' => 1,
36419             'actcount' => 0,
36420             'items' => [
36421             bless( {
36422             'pattern' => 'DEC',
36423             'hashname' => '__PATTERN1__',
36424             'description' => '/DEC/i',
36425             'lookahead' => 0,
36426             'rdelim' => '/',
36427             'line' => 628,
36428             'mod' => 'i',
36429             'ldelim' => '/'
36430             }, 'Parse::RecDescent::Token' )
36431             ],
36432             'line' => 628
36433             }, 'Parse::RecDescent::Production' )
36434             ],
36435             'name' => '_alternation_1_of_production_17_of_rule_sysibm_function',
36436             'vars' => '',
36437             'line' => 628
36438             }, 'Parse::RecDescent::Rule' ),
36439             'triggered_action' => bless( {
36440             'impcount' => 0,
36441             'calls' => [
36442             'when_clause',
36443             'SQL_procedure_statement'
36444             ],
36445             'changed' => 0,
36446             'opcount' => 0,
36447             'prods' => [
36448             bless( {
36449             'number' => '0',
36450             'strcount' => 0,
36451             'dircount' => 0,
36452             'uncommit' => undef,
36453             'error' => undef,
36454             'patcount' => 0,
36455             'actcount' => 1,
36456             'items' => [
36457             bless( {
36458             'subrule' => 'when_clause',
36459             'expected' => undef,
36460             'min' => 0,
36461             'argcode' => undef,
36462             'max' => 1,
36463             'matchrule' => 0,
36464             'repspec' => '?',
36465             'lookahead' => 0,
36466             'line' => 263
36467             }, 'Parse::RecDescent::Repetition' ),
36468             bless( {
36469             'subrule' => 'SQL_procedure_statement',
36470             'matchrule' => 0,
36471             'implicit' => undef,
36472             'argcode' => undef,
36473             'lookahead' => 0,
36474             'line' => 263
36475             }, 'Parse::RecDescent::Subrule' ),
36476             bless( {
36477             'hashname' => '__ACTION1__',
36478             'lookahead' => 0,
36479             'line' => 264,
36480             'code' => '{ $return = { \'condition\' => $item[1][0],
36481             \'statement\' => $item{\'SQL_procedure_statement\'} };
36482             }'
36483             }, 'Parse::RecDescent::Action' )
36484             ],
36485             'line' => undef
36486             }, 'Parse::RecDescent::Production' )
36487             ],
36488             'name' => 'triggered_action',
36489             'vars' => '',
36490             'line' => 263
36491             }, 'Parse::RecDescent::Rule' ),
36492             '_alternation_1_of_production_2_of_rule_search_condition' => bless( {
36493             'impcount' => 0,
36494             'calls' => [
36495             'predicate',
36496             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
36497             'search_condition'
36498             ],
36499             'changed' => 0,
36500             'opcount' => 0,
36501             'prods' => [
36502             bless( {
36503             'number' => '0',
36504             'strcount' => 0,
36505             'dircount' => 0,
36506             'uncommit' => undef,
36507             'error' => undef,
36508             'patcount' => 0,
36509             'actcount' => 0,
36510             'items' => [
36511             bless( {
36512             'subrule' => 'predicate',
36513             'matchrule' => 0,
36514             'implicit' => undef,
36515             'argcode' => undef,
36516             'lookahead' => 0,
36517             'line' => 628
36518             }, 'Parse::RecDescent::Subrule' ),
36519             bless( {
36520             'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
36521             'expected' => '/SELECTIVITY/i',
36522             'min' => 0,
36523             'argcode' => undef,
36524             'max' => 1,
36525             'matchrule' => 0,
36526             'repspec' => '?',
36527             'lookahead' => 0,
36528             'line' => 628
36529             }, 'Parse::RecDescent::Repetition' )
36530             ],
36531             'line' => undef
36532             }, 'Parse::RecDescent::Production' ),
36533             bless( {
36534             'number' => '1',
36535             'strcount' => 2,
36536             'dircount' => 0,
36537             'uncommit' => undef,
36538             'error' => undef,
36539             'patcount' => 0,
36540             'actcount' => 0,
36541             'items' => [
36542             bless( {
36543             'pattern' => '(',
36544             'hashname' => '__STRING1__',
36545             'description' => '\'(\'',
36546             'lookahead' => 0,
36547             'line' => 628
36548             }, 'Parse::RecDescent::Literal' ),
36549             bless( {
36550             'subrule' => 'search_condition',
36551             'matchrule' => 0,
36552             'implicit' => undef,
36553             'argcode' => undef,
36554             'lookahead' => 0,
36555             'line' => 628
36556             }, 'Parse::RecDescent::Subrule' ),
36557             bless( {
36558             'pattern' => ')',
36559             'hashname' => '__STRING2__',
36560             'description' => '\')\'',
36561             'lookahead' => 0,
36562             'line' => 628
36563             }, 'Parse::RecDescent::Literal' )
36564             ],
36565             'line' => 628
36566             }, 'Parse::RecDescent::Production' )
36567             ],
36568             'name' => '_alternation_1_of_production_2_of_rule_search_condition',
36569             'vars' => '',
36570             'line' => 628
36571             }, 'Parse::RecDescent::Rule' ),
36572             'name1' => bless( {
36573             'impcount' => 0,
36574             'calls' => [
36575             'NAME'
36576             ],
36577             'changed' => 0,
36578             'opcount' => 0,
36579             'prods' => [
36580             bless( {
36581             'number' => '0',
36582             'strcount' => 0,
36583             'dircount' => 0,
36584             'uncommit' => undef,
36585             'error' => undef,
36586             'patcount' => 0,
36587             'actcount' => 0,
36588             'items' => [
36589             bless( {
36590             'subrule' => 'NAME',
36591             'matchrule' => 0,
36592             'implicit' => undef,
36593             'argcode' => undef,
36594             'lookahead' => 0,
36595             'line' => 536
36596             }, 'Parse::RecDescent::Subrule' )
36597             ],
36598             'line' => undef
36599             }, 'Parse::RecDescent::Production' )
36600             ],
36601             'name' => 'name1',
36602             'vars' => '',
36603             'line' => 536
36604             }, 'Parse::RecDescent::Rule' ),
36605             '_alternation_2_of_production_1_of_rule_cond' => bless( {
36606             'impcount' => 0,
36607             'calls' => [
36608             'predicate',
36609             '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
36610             'search_condition'
36611             ],
36612             'changed' => 0,
36613             'opcount' => 0,
36614             'prods' => [
36615             bless( {
36616             'number' => '0',
36617             'strcount' => 0,
36618             'dircount' => 0,
36619             'uncommit' => undef,
36620             'error' => undef,
36621             'patcount' => 0,
36622             'actcount' => 0,
36623             'items' => [
36624             bless( {
36625             'subrule' => 'predicate',
36626             'matchrule' => 0,
36627             'implicit' => undef,
36628             'argcode' => undef,
36629             'lookahead' => 0,
36630             'line' => 628
36631             }, 'Parse::RecDescent::Subrule' ),
36632             bless( {
36633             'subrule' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
36634             'expected' => '/SELECTIVITY/i',
36635             'min' => 0,
36636             'argcode' => undef,
36637             'max' => 1,
36638             'matchrule' => 0,
36639             'repspec' => '?',
36640             'lookahead' => 0,
36641             'line' => 628
36642             }, 'Parse::RecDescent::Repetition' )
36643             ],
36644             'line' => undef
36645             }, 'Parse::RecDescent::Production' ),
36646             bless( {
36647             'number' => '1',
36648             'strcount' => 2,
36649             'dircount' => 0,
36650             'uncommit' => undef,
36651             'error' => undef,
36652             'patcount' => 0,
36653             'actcount' => 0,
36654             'items' => [
36655             bless( {
36656             'pattern' => '(',
36657             'hashname' => '__STRING1__',
36658             'description' => '\'(\'',
36659             'lookahead' => 0,
36660             'line' => 628
36661             }, 'Parse::RecDescent::Literal' ),
36662             bless( {
36663             'subrule' => 'search_condition',
36664             'matchrule' => 0,
36665             'implicit' => undef,
36666             'argcode' => undef,
36667             'lookahead' => 0,
36668             'line' => 628
36669             }, 'Parse::RecDescent::Subrule' ),
36670             bless( {
36671             'pattern' => ')',
36672             'hashname' => '__STRING2__',
36673             'description' => '\')\'',
36674             'lookahead' => 0,
36675             'line' => 628
36676             }, 'Parse::RecDescent::Literal' )
36677             ],
36678             'line' => 628
36679             }, 'Parse::RecDescent::Production' )
36680             ],
36681             'name' => '_alternation_2_of_production_1_of_rule_cond',
36682             'vars' => '',
36683             'line' => 628
36684             }, 'Parse::RecDescent::Rule' ),
36685             '_alternation_1_of_production_1_of_rule_expression' => bless( {
36686             'impcount' => 2,
36687             'calls' => [
36688             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
36689             '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression'
36690             ],
36691             'changed' => 0,
36692             'opcount' => 0,
36693             'prods' => [
36694             bless( {
36695             'number' => '0',
36696             'strcount' => 0,
36697             'dircount' => 0,
36698             'uncommit' => undef,
36699             'error' => undef,
36700             'patcount' => 0,
36701             'actcount' => 0,
36702             'items' => [
36703             bless( {
36704             'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
36705             'expected' => '\'+\', or \'-\'',
36706             'min' => 0,
36707             'argcode' => undef,
36708             'max' => 1,
36709             'matchrule' => 0,
36710             'repspec' => '?',
36711             'lookahead' => 0,
36712             'line' => 611
36713             }, 'Parse::RecDescent::Repetition' ),
36714             bless( {
36715             'subrule' => '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
36716             'matchrule' => 0,
36717             'implicit' => 'function, or \'(\', or constant, or column_name, or host_variable, or special_register, or labeled_duration, or case_expression, or cast_specification, or OLAP_function, or method_invocation, or subtype_treatment, or sequence_reference',
36718             'argcode' => undef,
36719             'lookahead' => 0,
36720             'line' => 627
36721             }, 'Parse::RecDescent::Subrule' )
36722             ],
36723             'line' => undef
36724             }, 'Parse::RecDescent::Production' )
36725             ],
36726             'name' => '_alternation_1_of_production_1_of_rule_expression',
36727             'vars' => '',
36728             'line' => 608
36729             }, 'Parse::RecDescent::Rule' ),
36730             'SCHEMA' => bless( {
36731             'impcount' => 0,
36732             'calls' => [],
36733             'changed' => 0,
36734             'opcount' => 0,
36735             'prods' => [
36736             bless( {
36737             'number' => '0',
36738             'strcount' => 0,
36739             'dircount' => 0,
36740             'uncommit' => undef,
36741             'error' => undef,
36742             'patcount' => 1,
36743             'actcount' => 0,
36744             'items' => [
36745             bless( {
36746             'pattern' => '\\w+',
36747             'hashname' => '__PATTERN1__',
36748             'description' => '/\\\\w+/',
36749             'lookahead' => 0,
36750             'rdelim' => '/',
36751             'line' => 142,
36752             'mod' => '',
36753             'ldelim' => '/'
36754             }, 'Parse::RecDescent::Token' )
36755             ],
36756             'line' => undef
36757             }, 'Parse::RecDescent::Production' ),
36758             bless( {
36759             'number' => '1',
36760             'strcount' => 0,
36761             'dircount' => 0,
36762             'uncommit' => undef,
36763             'error' => undef,
36764             'patcount' => 1,
36765             'actcount' => 0,
36766             'items' => [
36767             bless( {
36768             'pattern' => '\\w{1,128}',
36769             'hashname' => '__PATTERN1__',
36770             'description' => '/\\\\w\\{1,128\\}/',
36771             'lookahead' => 0,
36772             'rdelim' => '/',
36773             'line' => 144,
36774             'mod' => '',
36775             'ldelim' => '/'
36776             }, 'Parse::RecDescent::Token' )
36777             ],
36778             'line' => undef
36779             }, 'Parse::RecDescent::Production' )
36780             ],
36781             'name' => 'SCHEMA',
36782             'vars' => '',
36783             'line' => 142
36784             }, 'Parse::RecDescent::Rule' ),
36785             '_alternation_1_of_production_87_of_rule_sysibm_function' => bless( {
36786             'impcount' => 0,
36787             'calls' => [],
36788             'changed' => 0,
36789             'opcount' => 0,
36790             'prods' => [
36791             bless( {
36792             'number' => '0',
36793             'strcount' => 0,
36794             'dircount' => 0,
36795             'uncommit' => undef,
36796             'error' => undef,
36797             'patcount' => 1,
36798             'actcount' => 0,
36799             'items' => [
36800             bless( {
36801             'pattern' => 'VARIANCE',
36802             'hashname' => '__PATTERN1__',
36803             'description' => '/VARIANCE/i',
36804             'lookahead' => 0,
36805             'rdelim' => '/',
36806             'line' => 628,
36807             'mod' => 'i',
36808             'ldelim' => '/'
36809             }, 'Parse::RecDescent::Token' )
36810             ],
36811             'line' => undef
36812             }, 'Parse::RecDescent::Production' ),
36813             bless( {
36814             'number' => '1',
36815             'strcount' => 0,
36816             'dircount' => 0,
36817             'uncommit' => undef,
36818             'error' => undef,
36819             'patcount' => 1,
36820             'actcount' => 0,
36821             'items' => [
36822             bless( {
36823             'pattern' => 'VAR',
36824             'hashname' => '__PATTERN1__',
36825             'description' => '/VAR/i',
36826             'lookahead' => 0,
36827             'rdelim' => '/',
36828             'line' => 628,
36829             'mod' => 'i',
36830             'ldelim' => '/'
36831             }, 'Parse::RecDescent::Token' )
36832             ],
36833             'line' => 628
36834             }, 'Parse::RecDescent::Production' )
36835             ],
36836             'name' => '_alternation_1_of_production_87_of_rule_sysibm_function',
36837             'vars' => '',
36838             'line' => 628
36839             }, 'Parse::RecDescent::Rule' ),
36840             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression' => bless( {
36841             'impcount' => 0,
36842             'calls' => [],
36843             'changed' => 0,
36844             'opcount' => 0,
36845             'prods' => [
36846             bless( {
36847             'number' => '0',
36848             'strcount' => 1,
36849             'dircount' => 0,
36850             'uncommit' => undef,
36851             'error' => undef,
36852             'patcount' => 0,
36853             'actcount' => 0,
36854             'items' => [
36855             bless( {
36856             'pattern' => '+',
36857             'hashname' => '__STRING1__',
36858             'description' => '\'+\'',
36859             'lookahead' => 0,
36860             'line' => 626
36861             }, 'Parse::RecDescent::Literal' )
36862             ],
36863             'line' => undef
36864             }, 'Parse::RecDescent::Production' ),
36865             bless( {
36866             'number' => '1',
36867             'strcount' => 1,
36868             'dircount' => 0,
36869             'uncommit' => undef,
36870             'error' => undef,
36871             'patcount' => 0,
36872             'actcount' => 0,
36873             'items' => [
36874             bless( {
36875             'pattern' => '-',
36876             'hashname' => '__STRING1__',
36877             'description' => '\'-\'',
36878             'lookahead' => 0,
36879             'line' => 627
36880             }, 'Parse::RecDescent::Literal' )
36881             ],
36882             'line' => 627
36883             }, 'Parse::RecDescent::Production' )
36884             ],
36885             'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
36886             'vars' => '',
36887             'line' => 626
36888             }, 'Parse::RecDescent::Rule' ),
36889             'get_bracketed' => bless( {
36890             'impcount' => 0,
36891             'calls' => [],
36892             'changed' => 0,
36893             'opcount' => 0,
36894             'prods' => [
36895             bless( {
36896             'number' => '0',
36897             'strcount' => 0,
36898             'dircount' => 0,
36899             'uncommit' => undef,
36900             'error' => undef,
36901             'patcount' => 0,
36902             'actcount' => 1,
36903             'items' => [
36904             bless( {
36905             'hashname' => '__ACTION1__',
36906             'lookahead' => 0,
36907             'line' => 170,
36908             'code' => '{
36909             extract_bracketed($text, \'(\');
36910             }'
36911             }, 'Parse::RecDescent::Action' )
36912             ],
36913             'line' => undef
36914             }, 'Parse::RecDescent::Production' )
36915             ],
36916             'name' => 'get_bracketed',
36917             'vars' => '',
36918             'line' => 169
36919             }, 'Parse::RecDescent::Rule' ),
36920             'labeled_duration' => bless( {
36921             'impcount' => 0,
36922             'calls' => [
36923             'ld_type',
36924             'ld_duration'
36925             ],
36926             'changed' => 0,
36927             'opcount' => 0,
36928             'prods' => [
36929             bless( {
36930             'number' => '0',
36931             'strcount' => 0,
36932             'dircount' => 0,
36933             'uncommit' => undef,
36934             'error' => undef,
36935             'patcount' => 0,
36936             'actcount' => 0,
36937             'items' => [
36938             bless( {
36939             'subrule' => 'ld_type',
36940             'matchrule' => 0,
36941             'implicit' => undef,
36942             'argcode' => undef,
36943             'lookahead' => 0,
36944             'line' => 480
36945             }, 'Parse::RecDescent::Subrule' ),
36946             bless( {
36947             'subrule' => 'ld_duration',
36948             'matchrule' => 0,
36949             'implicit' => undef,
36950             'argcode' => undef,
36951             'lookahead' => 0,
36952             'line' => 480
36953             }, 'Parse::RecDescent::Subrule' )
36954             ],
36955             'line' => undef
36956             }, 'Parse::RecDescent::Production' )
36957             ],
36958             'name' => 'labeled_duration',
36959             'vars' => '',
36960             'line' => 480
36961             }, 'Parse::RecDescent::Rule' ),
36962             'group_end' => bless( {
36963             'impcount' => 0,
36964             'calls' => [
36965             'unsigned_constant'
36966             ],
36967             'changed' => 0,
36968             'opcount' => 0,
36969             'prods' => [
36970             bless( {
36971             'number' => '0',
36972             'strcount' => 0,
36973             'dircount' => 0,
36974             'uncommit' => undef,
36975             'error' => undef,
36976             'patcount' => 1,
36977             'actcount' => 0,
36978             'items' => [
36979             bless( {
36980             'pattern' => 'UNBOUNDED\\s+PRECEDING',
36981             'hashname' => '__PATTERN1__',
36982             'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
36983             'lookahead' => 0,
36984             'rdelim' => '/',
36985             'line' => 590,
36986             'mod' => 'i',
36987             'ldelim' => '/'
36988             }, 'Parse::RecDescent::Token' )
36989             ],
36990             'line' => undef
36991             }, 'Parse::RecDescent::Production' ),
36992             bless( {
36993             'number' => '1',
36994             'strcount' => 0,
36995             'dircount' => 0,
36996             'uncommit' => undef,
36997             'error' => undef,
36998             'patcount' => 1,
36999             'actcount' => 0,
37000             'items' => [
37001             bless( {
37002             'subrule' => 'unsigned_constant',
37003             'matchrule' => 0,
37004             'implicit' => undef,
37005             'argcode' => undef,
37006             'lookahead' => 0,
37007             'line' => 591
37008             }, 'Parse::RecDescent::Subrule' ),
37009             bless( {
37010             'pattern' => 'FOLLOWING',
37011             'hashname' => '__PATTERN1__',
37012             'description' => '/FOLLOWING/i',
37013             'lookahead' => 0,
37014             'rdelim' => '/',
37015             'line' => 591,
37016             'mod' => 'i',
37017             'ldelim' => '/'
37018             }, 'Parse::RecDescent::Token' )
37019             ],
37020             'line' => 591
37021             }, 'Parse::RecDescent::Production' )
37022             ],
37023             'name' => 'group_end',
37024             'vars' => '',
37025             'line' => 590
37026             }, 'Parse::RecDescent::Rule' ),
37027             'statement' => bless( {
37028             'impcount' => 0,
37029             'calls' => [
37030             'comment',
37031             'create'
37032             ],
37033             'changed' => 0,
37034             'opcount' => 0,
37035             'prods' => [
37036             bless( {
37037             'number' => '0',
37038             'strcount' => 0,
37039             'dircount' => 0,
37040             'uncommit' => undef,
37041             'error' => undef,
37042             'patcount' => 0,
37043             'actcount' => 0,
37044             'items' => [
37045             bless( {
37046             'subrule' => 'comment',
37047             'matchrule' => 0,
37048             'implicit' => undef,
37049             'argcode' => undef,
37050             'lookahead' => 0,
37051             'line' => 23
37052             }, 'Parse::RecDescent::Subrule' )
37053             ],
37054             'line' => undef
37055             }, 'Parse::RecDescent::Production' ),
37056             bless( {
37057             'number' => '1',
37058             'strcount' => 0,
37059             'dircount' => 0,
37060             'uncommit' => undef,
37061             'error' => undef,
37062             'patcount' => 0,
37063             'actcount' => 0,
37064             'items' => [
37065             bless( {
37066             'subrule' => 'create',
37067             'matchrule' => 0,
37068             'implicit' => undef,
37069             'argcode' => undef,
37070             'lookahead' => 0,
37071             'line' => 24
37072             }, 'Parse::RecDescent::Subrule' )
37073             ],
37074             'line' => 24
37075             }, 'Parse::RecDescent::Production' ),
37076             bless( {
37077             'number' => '2',
37078             'strcount' => 0,
37079             'dircount' => 1,
37080             'uncommit' => 0,
37081             'error' => 1,
37082             'patcount' => 0,
37083             'actcount' => 0,
37084             'items' => [
37085             bless( {
37086             'msg' => '',
37087             'hashname' => '__DIRECTIVE1__',
37088             'commitonly' => '',
37089             'lookahead' => 0,
37090             'line' => 25
37091             }, 'Parse::RecDescent::Error' )
37092             ],
37093             'line' => 25
37094             }, 'Parse::RecDescent::Production' )
37095             ],
37096             'name' => 'statement',
37097             'vars' => '',
37098             'line' => 22
37099             }, 'Parse::RecDescent::Rule' ),
37100             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause' => bless( {
37101             'impcount' => 0,
37102             'calls' => [
37103             'result_expression'
37104             ],
37105             'changed' => 0,
37106             'opcount' => 0,
37107             'prods' => [
37108             bless( {
37109             'number' => '0',
37110             'strcount' => 0,
37111             'dircount' => 0,
37112             'uncommit' => undef,
37113             'error' => undef,
37114             'patcount' => 0,
37115             'actcount' => 0,
37116             'items' => [
37117             bless( {
37118             'subrule' => 'result_expression',
37119             'matchrule' => 0,
37120             'implicit' => undef,
37121             'argcode' => undef,
37122             'lookahead' => 0,
37123             'line' => 626
37124             }, 'Parse::RecDescent::Subrule' )
37125             ],
37126             'line' => undef
37127             }, 'Parse::RecDescent::Production' ),
37128             bless( {
37129             'number' => '1',
37130             'strcount' => 0,
37131             'dircount' => 0,
37132             'uncommit' => undef,
37133             'error' => undef,
37134             'patcount' => 1,
37135             'actcount' => 0,
37136             'items' => [
37137             bless( {
37138             'pattern' => 'NULL',
37139             'hashname' => '__PATTERN1__',
37140             'description' => '/NULL/i',
37141             'lookahead' => 0,
37142             'rdelim' => '/',
37143             'line' => 627,
37144             'mod' => 'i',
37145             'ldelim' => '/'
37146             }, 'Parse::RecDescent::Token' )
37147             ],
37148             'line' => 627
37149             }, 'Parse::RecDescent::Production' )
37150             ],
37151             'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause',
37152             'vars' => '',
37153             'line' => 626
37154             }, 'Parse::RecDescent::Rule' ),
37155             '_alternation_2_of_production_1_of_rule_case_expression' => bless( {
37156             'impcount' => 0,
37157             'calls' => [
37158             'result_expression'
37159             ],
37160             'changed' => 0,
37161             'opcount' => 0,
37162             'prods' => [
37163             bless( {
37164             'number' => '0',
37165             'strcount' => 0,
37166             'dircount' => 0,
37167             'uncommit' => undef,
37168             'error' => undef,
37169             'patcount' => 1,
37170             'actcount' => 0,
37171             'items' => [
37172             bless( {
37173             'pattern' => 'ELSE\\s+NULL',
37174             'hashname' => '__PATTERN1__',
37175             'description' => '/ELSE\\\\s+NULL/i',
37176             'lookahead' => 0,
37177             'rdelim' => '/',
37178             'line' => 626,
37179             'mod' => 'i',
37180             'ldelim' => '/'
37181             }, 'Parse::RecDescent::Token' )
37182             ],
37183             'line' => undef
37184             }, 'Parse::RecDescent::Production' ),
37185             bless( {
37186             'number' => '1',
37187             'strcount' => 0,
37188             'dircount' => 0,
37189             'uncommit' => undef,
37190             'error' => undef,
37191             'patcount' => 1,
37192             'actcount' => 0,
37193             'items' => [
37194             bless( {
37195             'pattern' => 'ELSE',
37196             'hashname' => '__PATTERN1__',
37197             'description' => '/ELSE/i',
37198             'lookahead' => 0,
37199             'rdelim' => '/',
37200             'line' => 627,
37201             'mod' => 'i',
37202             'ldelim' => '/'
37203             }, 'Parse::RecDescent::Token' ),
37204             bless( {
37205             'subrule' => 'result_expression',
37206             'matchrule' => 0,
37207             'implicit' => undef,
37208             'argcode' => undef,
37209             'lookahead' => 0,
37210             'line' => 627
37211             }, 'Parse::RecDescent::Subrule' )
37212             ],
37213             'line' => 627
37214             }, 'Parse::RecDescent::Production' )
37215             ],
37216             'name' => '_alternation_2_of_production_1_of_rule_case_expression',
37217             'vars' => '',
37218             'line' => 626
37219             }, 'Parse::RecDescent::Rule' ),
37220             'subject_expression' => bless( {
37221             'impcount' => 0,
37222             'calls' => [
37223             'expression'
37224             ],
37225             'changed' => 0,
37226             'opcount' => 0,
37227             'prods' => [
37228             bless( {
37229             'number' => '0',
37230             'strcount' => 0,
37231             'dircount' => 0,
37232             'uncommit' => undef,
37233             'error' => undef,
37234             'patcount' => 0,
37235             'actcount' => 1,
37236             'items' => [
37237             bless( {
37238             'subrule' => 'expression',
37239             'matchrule' => 0,
37240             'implicit' => undef,
37241             'argcode' => undef,
37242             'lookahead' => 0,
37243             'line' => 598
37244             }, 'Parse::RecDescent::Subrule' ),
37245             bless( {
37246             'hashname' => '__ACTION1__',
37247             'lookahead' => 0,
37248             'line' => 599,
37249             'code' => '{ # with static result type that is a used-defined struct type
37250             }'
37251             }, 'Parse::RecDescent::Action' )
37252             ],
37253             'line' => undef
37254             }, 'Parse::RecDescent::Production' )
37255             ],
37256             'name' => 'subject_expression',
37257             'vars' => '',
37258             'line' => 598
37259             }, 'Parse::RecDescent::Rule' ),
37260             '_alternation_1_of_production_1_of_rule_desc_option' => bless( {
37261             'impcount' => 0,
37262             'calls' => [],
37263             'changed' => 0,
37264             'opcount' => 0,
37265             'prods' => [
37266             bless( {
37267             'number' => '0',
37268             'strcount' => 0,
37269             'dircount' => 0,
37270             'uncommit' => undef,
37271             'error' => undef,
37272             'patcount' => 1,
37273             'actcount' => 0,
37274             'items' => [
37275             bless( {
37276             'pattern' => 'NULLS\\s+FIRST',
37277             'hashname' => '__PATTERN1__',
37278             'description' => '/NULLS\\\\s+FIRST/i',
37279             'lookahead' => 0,
37280             'rdelim' => '/',
37281             'line' => 628,
37282             'mod' => 'i',
37283             'ldelim' => '/'
37284             }, 'Parse::RecDescent::Token' )
37285             ],
37286             'line' => undef
37287             }, 'Parse::RecDescent::Production' ),
37288             bless( {
37289             'number' => '1',
37290             'strcount' => 0,
37291             'dircount' => 0,
37292             'uncommit' => undef,
37293             'error' => undef,
37294             'patcount' => 1,
37295             'actcount' => 0,
37296             'items' => [
37297             bless( {
37298             'pattern' => 'NULLS\\s+LAST',
37299             'hashname' => '__PATTERN1__',
37300             'description' => '/NULLS\\\\s+LAST/i',
37301             'lookahead' => 0,
37302             'rdelim' => '/',
37303             'line' => 628,
37304             'mod' => 'i',
37305             'ldelim' => '/'
37306             }, 'Parse::RecDescent::Token' )
37307             ],
37308             'line' => 628
37309             }, 'Parse::RecDescent::Production' )
37310             ],
37311             'name' => '_alternation_1_of_production_1_of_rule_desc_option',
37312             'vars' => '',
37313             'line' => 628
37314             }, 'Parse::RecDescent::Rule' ),
37315             'view_name' => bless( {
37316             'impcount' => 0,
37317             'calls' => [
37318             'SCHEMA',
37319             'NAME'
37320             ],
37321             'changed' => 0,
37322             'opcount' => 0,
37323             'prods' => [
37324             bless( {
37325             'number' => '0',
37326             'strcount' => 1,
37327             'dircount' => 0,
37328             'uncommit' => undef,
37329             'error' => undef,
37330             'patcount' => 0,
37331             'actcount' => 1,
37332             'items' => [
37333             bless( {
37334             'subrule' => 'SCHEMA',
37335             'matchrule' => 0,
37336             'implicit' => undef,
37337             'argcode' => undef,
37338             'lookahead' => 0,
37339             'line' => 129
37340             }, 'Parse::RecDescent::Subrule' ),
37341             bless( {
37342             'pattern' => '.',
37343             'hashname' => '__STRING1__',
37344             'description' => '\'.\'',
37345             'lookahead' => 0,
37346             'line' => 129
37347             }, 'Parse::RecDescent::Literal' ),
37348             bless( {
37349             'subrule' => 'NAME',
37350             'matchrule' => 0,
37351             'implicit' => undef,
37352             'argcode' => undef,
37353             'lookahead' => 0,
37354             'line' => 129
37355             }, 'Parse::RecDescent::Subrule' ),
37356             bless( {
37357             'hashname' => '__ACTION1__',
37358             'lookahead' => 0,
37359             'line' => 130,
37360             'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
37361             }, 'Parse::RecDescent::Action' )
37362             ],
37363             'line' => undef
37364             }, 'Parse::RecDescent::Production' ),
37365             bless( {
37366             'number' => '1',
37367             'strcount' => 0,
37368             'dircount' => 0,
37369             'uncommit' => undef,
37370             'error' => undef,
37371             'patcount' => 0,
37372             'actcount' => 1,
37373             'items' => [
37374             bless( {
37375             'subrule' => 'NAME',
37376             'matchrule' => 0,
37377             'implicit' => undef,
37378             'argcode' => undef,
37379             'lookahead' => 0,
37380             'line' => 131
37381             }, 'Parse::RecDescent::Subrule' ),
37382             bless( {
37383             'hashname' => '__ACTION1__',
37384             'lookahead' => 0,
37385             'line' => 132,
37386             'code' => '{ $return = { name => $item[1] } }'
37387             }, 'Parse::RecDescent::Action' )
37388             ],
37389             'line' => 131
37390             }, 'Parse::RecDescent::Production' )
37391             ],
37392             'name' => 'view_name',
37393             'vars' => '',
37394             'line' => 129
37395             }, 'Parse::RecDescent::Rule' ),
37396             '_alternation_1_of_production_1_of_rule_cond' => bless( {
37397             'impcount' => 0,
37398             'calls' => [],
37399             'changed' => 0,
37400             'opcount' => 0,
37401             'prods' => [
37402             bless( {
37403             'number' => '0',
37404             'strcount' => 0,
37405             'dircount' => 0,
37406             'uncommit' => undef,
37407             'error' => undef,
37408             'patcount' => 1,
37409             'actcount' => 0,
37410             'items' => [
37411             bless( {
37412             'pattern' => 'AND',
37413             'hashname' => '__PATTERN1__',
37414             'description' => '/AND/i',
37415             'lookahead' => 0,
37416             'rdelim' => '/',
37417             'line' => 628,
37418             'mod' => 'i',
37419             'ldelim' => '/'
37420             }, 'Parse::RecDescent::Token' )
37421             ],
37422             'line' => undef
37423             }, 'Parse::RecDescent::Production' ),
37424             bless( {
37425             'number' => '1',
37426             'strcount' => 0,
37427             'dircount' => 0,
37428             'uncommit' => undef,
37429             'error' => undef,
37430             'patcount' => 1,
37431             'actcount' => 0,
37432             'items' => [
37433             bless( {
37434             'pattern' => 'OR',
37435             'hashname' => '__PATTERN1__',
37436             'description' => '/OR/i',
37437             'lookahead' => 0,
37438             'rdelim' => '/',
37439             'line' => 628,
37440             'mod' => 'i',
37441             'ldelim' => '/'
37442             }, 'Parse::RecDescent::Token' )
37443             ],
37444             'line' => 628
37445             }, 'Parse::RecDescent::Production' )
37446             ],
37447             'name' => '_alternation_1_of_production_1_of_rule_cond',
37448             'vars' => '',
37449             'line' => 628
37450             }, 'Parse::RecDescent::Rule' ),
37451             'numbering_function' => bless( {
37452             'impcount' => 2,
37453             'calls' => [
37454             'window_partition_clause',
37455             '_alternation_1_of_production_1_of_rule_numbering_function',
37456             '_alternation_2_of_production_1_of_rule_numbering_function'
37457             ],
37458             'changed' => 0,
37459             'opcount' => 0,
37460             'prods' => [
37461             bless( {
37462             'number' => '0',
37463             'strcount' => 3,
37464             'dircount' => 0,
37465             'uncommit' => undef,
37466             'error' => undef,
37467             'patcount' => 2,
37468             'actcount' => 0,
37469             'items' => [
37470             bless( {
37471             'pattern' => 'ROW_NUMBER|ROWNUMBER',
37472             'hashname' => '__PATTERN1__',
37473             'description' => '/ROW_NUMBER|ROWNUMBER/i',
37474             'lookahead' => 0,
37475             'rdelim' => '/',
37476             'line' => 546,
37477             'mod' => 'i',
37478             'ldelim' => '/'
37479             }, 'Parse::RecDescent::Token' ),
37480             bless( {
37481             'pattern' => '()',
37482             'hashname' => '__STRING1__',
37483             'description' => '\'()\'',
37484             'lookahead' => 0,
37485             'line' => 546
37486             }, 'Parse::RecDescent::Literal' ),
37487             bless( {
37488             'pattern' => 'OVER',
37489             'hashname' => '__PATTERN2__',
37490             'description' => '/OVER/i',
37491             'lookahead' => 0,
37492             'rdelim' => '/',
37493             'line' => 546,
37494             'mod' => 'i',
37495             'ldelim' => '/'
37496             }, 'Parse::RecDescent::Token' ),
37497             bless( {
37498             'pattern' => '(',
37499             'hashname' => '__STRING2__',
37500             'description' => '\'(\'',
37501             'lookahead' => 0,
37502             'line' => 546
37503             }, 'Parse::RecDescent::Literal' ),
37504             bless( {
37505             'subrule' => 'window_partition_clause',
37506             'expected' => undef,
37507             'min' => 0,
37508             'argcode' => undef,
37509             'max' => 1,
37510             'matchrule' => 0,
37511             'repspec' => '?',
37512             'lookahead' => 0,
37513             'line' => 546
37514             }, 'Parse::RecDescent::Repetition' ),
37515             bless( {
37516             'subrule' => '_alternation_1_of_production_1_of_rule_numbering_function',
37517             'expected' => 'window_order_clause',
37518             'min' => 0,
37519             'argcode' => undef,
37520             'max' => 1,
37521             'matchrule' => 0,
37522             'repspec' => '?',
37523             'lookahead' => 0,
37524             'line' => 548
37525             }, 'Parse::RecDescent::Repetition' ),
37526             bless( {
37527             'subrule' => '_alternation_2_of_production_1_of_rule_numbering_function',
37528             'expected' => '/RANGE\\\\s+BETWEEN\\\\s+UNBOUNDED\\\\s+PRECEDING\\\\s+AND\\\\s+UNBBOUNDED\\\\s+FOLLOWING/i, or window_aggregation_group_clause',
37529             'min' => 0,
37530             'argcode' => undef,
37531             'max' => 1,
37532             'matchrule' => 0,
37533             'repspec' => '?',
37534             'lookahead' => 0,
37535             'line' => 551
37536             }, 'Parse::RecDescent::Repetition' ),
37537             bless( {
37538             'pattern' => ')',
37539             'hashname' => '__STRING3__',
37540             'description' => '\')\'',
37541             'lookahead' => 0,
37542             'line' => 551
37543             }, 'Parse::RecDescent::Literal' )
37544             ],
37545             'line' => undef
37546             }, 'Parse::RecDescent::Production' )
37547             ],
37548             'name' => 'numbering_function',
37549             'vars' => '',
37550             'line' => 546
37551             }, 'Parse::RecDescent::Rule' ),
37552             '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause' => bless( {
37553             'impcount' => 0,
37554             'calls' => [],
37555             'changed' => 0,
37556             'opcount' => 0,
37557             'prods' => [
37558             bless( {
37559             'number' => '0',
37560             'strcount' => 0,
37561             'dircount' => 0,
37562             'uncommit' => undef,
37563             'error' => undef,
37564             'patcount' => 1,
37565             'actcount' => 0,
37566             'items' => [
37567             bless( {
37568             'pattern' => 'ROWS',
37569             'hashname' => '__PATTERN1__',
37570             'description' => '/ROWS/i',
37571             'lookahead' => 0,
37572             'rdelim' => '/',
37573             'line' => 626,
37574             'mod' => 'i',
37575             'ldelim' => '/'
37576             }, 'Parse::RecDescent::Token' )
37577             ],
37578             'line' => undef
37579             }, 'Parse::RecDescent::Production' ),
37580             bless( {
37581             'number' => '1',
37582             'strcount' => 0,
37583             'dircount' => 0,
37584             'uncommit' => undef,
37585             'error' => undef,
37586             'patcount' => 1,
37587             'actcount' => 0,
37588             'items' => [
37589             bless( {
37590             'pattern' => 'RANGE',
37591             'hashname' => '__PATTERN1__',
37592             'description' => '/RANGE/i',
37593             'lookahead' => 0,
37594             'rdelim' => '/',
37595             'line' => 627,
37596             'mod' => 'i',
37597             'ldelim' => '/'
37598             }, 'Parse::RecDescent::Token' )
37599             ],
37600             'line' => 627
37601             }, 'Parse::RecDescent::Production' )
37602             ],
37603             'name' => '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
37604             'vars' => '',
37605             'line' => 626
37606             }, 'Parse::RecDescent::Rule' ),
37607             'group_bound1' => bless( {
37608             'impcount' => 0,
37609             'calls' => [
37610             'unsigned_constant'
37611             ],
37612             'changed' => 0,
37613             'opcount' => 0,
37614             'prods' => [
37615             bless( {
37616             'number' => '0',
37617             'strcount' => 0,
37618             'dircount' => 0,
37619             'uncommit' => undef,
37620             'error' => undef,
37621             'patcount' => 1,
37622             'actcount' => 0,
37623             'items' => [
37624             bless( {
37625             'pattern' => 'UNBOUNDED\\s+PRECEDING',
37626             'hashname' => '__PATTERN1__',
37627             'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
37628             'lookahead' => 0,
37629             'rdelim' => '/',
37630             'line' => 580,
37631             'mod' => 'i',
37632             'ldelim' => '/'
37633             }, 'Parse::RecDescent::Token' )
37634             ],
37635             'line' => undef
37636             }, 'Parse::RecDescent::Production' ),
37637             bless( {
37638             'number' => '1',
37639             'strcount' => 0,
37640             'dircount' => 0,
37641             'uncommit' => undef,
37642             'error' => undef,
37643             'patcount' => 1,
37644             'actcount' => 0,
37645             'items' => [
37646             bless( {
37647             'subrule' => 'unsigned_constant',
37648             'matchrule' => 0,
37649             'implicit' => undef,
37650             'argcode' => undef,
37651             'lookahead' => 0,
37652             'line' => 581
37653             }, 'Parse::RecDescent::Subrule' ),
37654             bless( {
37655             'pattern' => 'PRECEDING',
37656             'hashname' => '__PATTERN1__',
37657             'description' => '/PRECEDING/i',
37658             'lookahead' => 0,
37659             'rdelim' => '/',
37660             'line' => 581,
37661             'mod' => 'i',
37662             'ldelim' => '/'
37663             }, 'Parse::RecDescent::Token' )
37664             ],
37665             'line' => 581
37666             }, 'Parse::RecDescent::Production' ),
37667             bless( {
37668             'number' => '2',
37669             'strcount' => 0,
37670             'dircount' => 0,
37671             'uncommit' => undef,
37672             'error' => undef,
37673             'patcount' => 1,
37674             'actcount' => 0,
37675             'items' => [
37676             bless( {
37677             'subrule' => 'unsigned_constant',
37678             'matchrule' => 0,
37679             'implicit' => undef,
37680             'argcode' => undef,
37681             'lookahead' => 0,
37682             'line' => 582
37683             }, 'Parse::RecDescent::Subrule' ),
37684             bless( {
37685             'pattern' => 'FOLLOWING',
37686             'hashname' => '__PATTERN1__',
37687             'description' => '/FOLLOWING/i',
37688             'lookahead' => 0,
37689             'rdelim' => '/',
37690             'line' => 582,
37691             'mod' => 'i',
37692             'ldelim' => '/'
37693             }, 'Parse::RecDescent::Token' )
37694             ],
37695             'line' => 582
37696             }, 'Parse::RecDescent::Production' ),
37697             bless( {
37698             'number' => '3',
37699             'strcount' => 0,
37700             'dircount' => 0,
37701             'uncommit' => undef,
37702             'error' => undef,
37703             'patcount' => 1,
37704             'actcount' => 0,
37705             'items' => [
37706             bless( {
37707             'pattern' => 'CURRENT\\s+ROW',
37708             'hashname' => '__PATTERN1__',
37709             'description' => '/CURRENT\\\\s+ROW/i',
37710             'lookahead' => 0,
37711             'rdelim' => '/',
37712             'line' => 583,
37713             'mod' => 'i',
37714             'ldelim' => '/'
37715             }, 'Parse::RecDescent::Token' )
37716             ],
37717             'line' => 583
37718             }, 'Parse::RecDescent::Production' )
37719             ],
37720             'name' => 'group_bound1',
37721             'vars' => '',
37722             'line' => 580
37723             }, 'Parse::RecDescent::Rule' ),
37724             'OLAP_function' => bless( {
37725             'impcount' => 0,
37726             'calls' => [
37727             'ranking_function',
37728             'numbering_function',
37729             'aggregation_function'
37730             ],
37731             'changed' => 0,
37732             'opcount' => 0,
37733             'prods' => [
37734             bless( {
37735             'number' => '0',
37736             'strcount' => 0,
37737             'dircount' => 0,
37738             'uncommit' => undef,
37739             'error' => undef,
37740             'patcount' => 0,
37741             'actcount' => 0,
37742             'items' => [
37743             bless( {
37744             'subrule' => 'ranking_function',
37745             'matchrule' => 0,
37746             'implicit' => undef,
37747             'argcode' => undef,
37748             'lookahead' => 0,
37749             'line' => 538
37750             }, 'Parse::RecDescent::Subrule' )
37751             ],
37752             'line' => undef
37753             }, 'Parse::RecDescent::Production' ),
37754             bless( {
37755             'number' => '1',
37756             'strcount' => 0,
37757             'dircount' => 0,
37758             'uncommit' => undef,
37759             'error' => undef,
37760             'patcount' => 0,
37761             'actcount' => 0,
37762             'items' => [
37763             bless( {
37764             'subrule' => 'numbering_function',
37765             'matchrule' => 0,
37766             'implicit' => undef,
37767             'argcode' => undef,
37768             'lookahead' => 0,
37769             'line' => 539
37770             }, 'Parse::RecDescent::Subrule' )
37771             ],
37772             'line' => 539
37773             }, 'Parse::RecDescent::Production' ),
37774             bless( {
37775             'number' => '2',
37776             'strcount' => 0,
37777             'dircount' => 0,
37778             'uncommit' => undef,
37779             'error' => undef,
37780             'patcount' => 0,
37781             'actcount' => 0,
37782             'items' => [
37783             bless( {
37784             'subrule' => 'aggregation_function',
37785             'matchrule' => 0,
37786             'implicit' => undef,
37787             'argcode' => undef,
37788             'lookahead' => 0,
37789             'line' => 540
37790             }, 'Parse::RecDescent::Subrule' )
37791             ],
37792             'line' => 540
37793             }, 'Parse::RecDescent::Production' )
37794             ],
37795             'name' => 'OLAP_function',
37796             'vars' => '',
37797             'line' => 538
37798             }, 'Parse::RecDescent::Rule' ),
37799             '_alternation_1_of_production_30_of_rule_sysibm_function' => bless( {
37800             'impcount' => 0,
37801             'calls' => [],
37802             'changed' => 0,
37803             'opcount' => 0,
37804             'prods' => [
37805             bless( {
37806             'number' => '0',
37807             'strcount' => 0,
37808             'dircount' => 0,
37809             'uncommit' => undef,
37810             'error' => undef,
37811             'patcount' => 1,
37812             'actcount' => 0,
37813             'items' => [
37814             bless( {
37815             'pattern' => 'DOUBLE',
37816             'hashname' => '__PATTERN1__',
37817             'description' => '/DOUBLE/i',
37818             'lookahead' => 0,
37819             'rdelim' => '/',
37820             'line' => 628,
37821             'mod' => 'i',
37822             'ldelim' => '/'
37823             }, 'Parse::RecDescent::Token' )
37824             ],
37825             'line' => undef
37826             }, 'Parse::RecDescent::Production' ),
37827             bless( {
37828             'number' => '1',
37829             'strcount' => 0,
37830             'dircount' => 0,
37831             'uncommit' => undef,
37832             'error' => undef,
37833             'patcount' => 1,
37834             'actcount' => 0,
37835             'items' => [
37836             bless( {
37837             'pattern' => 'DOUBLE_PRECISION',
37838             'hashname' => '__PATTERN1__',
37839             'description' => '/DOUBLE_PRECISION/i',
37840             'lookahead' => 0,
37841             'rdelim' => '/',
37842             'line' => 628,
37843             'mod' => 'i',
37844             'ldelim' => '/'
37845             }, 'Parse::RecDescent::Token' )
37846             ],
37847             'line' => 628
37848             }, 'Parse::RecDescent::Production' )
37849             ],
37850             'name' => '_alternation_1_of_production_30_of_rule_sysibm_function',
37851             'vars' => '',
37852             'line' => 628
37853             }, 'Parse::RecDescent::Rule' ),
37854             'FULL' => bless( {
37855             'impcount' => 0,
37856             'calls' => [],
37857             'changed' => 0,
37858             'opcount' => 0,
37859             'prods' => [
37860             bless( {
37861             'number' => '0',
37862             'strcount' => 0,
37863             'dircount' => 0,
37864             'uncommit' => undef,
37865             'error' => undef,
37866             'patcount' => 1,
37867             'actcount' => 0,
37868             'items' => [
37869             bless( {
37870             'pattern' => 'full',
37871             'hashname' => '__PATTERN1__',
37872             'description' => '/full/i',
37873             'lookahead' => 0,
37874             'rdelim' => '/',
37875             'line' => 113,
37876             'mod' => 'i',
37877             'ldelim' => '/'
37878             }, 'Parse::RecDescent::Token' )
37879             ],
37880             'line' => undef
37881             }, 'Parse::RecDescent::Production' )
37882             ],
37883             'name' => 'FULL',
37884             'vars' => '',
37885             'line' => 113
37886             }, 'Parse::RecDescent::Rule' ),
37887             '_alternation_2_of_production_1_of_rule_cast_specification' => bless( {
37888             'impcount' => 1,
37889             'calls' => [
37890             '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification'
37891             ],
37892             'changed' => 0,
37893             'opcount' => 0,
37894             'prods' => [
37895             bless( {
37896             'number' => '0',
37897             'strcount' => 0,
37898             'dircount' => 0,
37899             'uncommit' => undef,
37900             'error' => undef,
37901             'patcount' => 1,
37902             'actcount' => 0,
37903             'items' => [
37904             bless( {
37905             'pattern' => 'SCOPE',
37906             'hashname' => '__PATTERN1__',
37907             'description' => '/SCOPE/',
37908             'lookahead' => 0,
37909             'rdelim' => '/',
37910             'line' => 625,
37911             'mod' => '',
37912             'ldelim' => '/'
37913             }, 'Parse::RecDescent::Token' ),
37914             bless( {
37915             'subrule' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification',
37916             'matchrule' => 0,
37917             'implicit' => 'typed_table_name, or typed_view_name',
37918             'argcode' => undef,
37919             'lookahead' => 0,
37920             'line' => 627
37921             }, 'Parse::RecDescent::Subrule' )
37922             ],
37923             'line' => undef
37924             }, 'Parse::RecDescent::Production' )
37925             ],
37926             'name' => '_alternation_2_of_production_1_of_rule_cast_specification',
37927             'vars' => '',
37928             'line' => 625
37929             }, 'Parse::RecDescent::Rule' ),
37930             'case_expression' => bless( {
37931             'impcount' => 2,
37932             'calls' => [
37933             '_alternation_1_of_production_1_of_rule_case_expression',
37934             '_alternation_2_of_production_1_of_rule_case_expression'
37935             ],
37936             'changed' => 0,
37937             'opcount' => 0,
37938             'prods' => [
37939             bless( {
37940             'number' => '0',
37941             'strcount' => 0,
37942             'dircount' => 0,
37943             'uncommit' => undef,
37944             'error' => undef,
37945             'patcount' => 2,
37946             'actcount' => 0,
37947             'items' => [
37948             bless( {
37949             'pattern' => 'CASE',
37950             'hashname' => '__PATTERN1__',
37951             'description' => '/CASE/i',
37952             'lookahead' => 0,
37953             'rdelim' => '/',
37954             'line' => 496,
37955             'mod' => 'i',
37956             'ldelim' => '/'
37957             }, 'Parse::RecDescent::Token' ),
37958             bless( {
37959             'subrule' => '_alternation_1_of_production_1_of_rule_case_expression',
37960             'matchrule' => 0,
37961             'implicit' => 'searched_when_clause, or simple_when_clause',
37962             'argcode' => undef,
37963             'lookahead' => 0,
37964             'line' => 498
37965             }, 'Parse::RecDescent::Subrule' ),
37966             bless( {
37967             'subrule' => '_alternation_2_of_production_1_of_rule_case_expression',
37968             'expected' => '/ELSE\\\\s+NULL/i, or /ELSE/i',
37969             'min' => 0,
37970             'argcode' => undef,
37971             'max' => 1,
37972             'matchrule' => 0,
37973             'repspec' => '?',
37974             'lookahead' => 0,
37975             'line' => 501
37976             }, 'Parse::RecDescent::Repetition' ),
37977             bless( {
37978             'pattern' => 'END',
37979             'hashname' => '__PATTERN2__',
37980             'description' => '/END/i',
37981             'lookahead' => 0,
37982             'rdelim' => '/',
37983             'line' => 501,
37984             'mod' => 'i',
37985             'ldelim' => '/'
37986             }, 'Parse::RecDescent::Token' )
37987             ],
37988             'line' => undef
37989             }, 'Parse::RecDescent::Production' )
37990             ],
37991             'name' => 'case_expression',
37992             'vars' => '',
37993             'line' => 496
37994             }, 'Parse::RecDescent::Rule' ),
37995             'operator' => bless( {
37996             'impcount' => 0,
37997             'calls' => [
37998             '_alternation_1_of_production_1_of_rule_operator'
37999             ],
38000             'changed' => 0,
38001             'opcount' => 0,
38002             'prods' => [
38003             bless( {
38004             'number' => '0',
38005             'strcount' => 0,
38006             'dircount' => 0,
38007             'uncommit' => undef,
38008             'error' => undef,
38009             'patcount' => 0,
38010             'actcount' => 0,
38011             'items' => [
38012             bless( {
38013             'subrule' => '_alternation_1_of_production_1_of_rule_operator',
38014             'matchrule' => 0,
38015             'implicit' => '/CONCAT/i, or \'||\'',
38016             'argcode' => undef,
38017             'lookahead' => 0,
38018             'line' => 321
38019             }, 'Parse::RecDescent::Subrule' )
38020             ],
38021             'line' => undef
38022             }, 'Parse::RecDescent::Production' ),
38023             bless( {
38024             'number' => '1',
38025             'strcount' => 1,
38026             'dircount' => 0,
38027             'uncommit' => undef,
38028             'error' => undef,
38029             'patcount' => 0,
38030             'actcount' => 0,
38031             'items' => [
38032             bless( {
38033             'pattern' => '/',
38034             'hashname' => '__STRING1__',
38035             'description' => '\'/\'',
38036             'lookahead' => 0,
38037             'line' => 321
38038             }, 'Parse::RecDescent::Literal' )
38039             ],
38040             'line' => 321
38041             }, 'Parse::RecDescent::Production' ),
38042             bless( {
38043             'number' => '2',
38044             'strcount' => 1,
38045             'dircount' => 0,
38046             'uncommit' => undef,
38047             'error' => undef,
38048             'patcount' => 0,
38049             'actcount' => 0,
38050             'items' => [
38051             bless( {
38052             'pattern' => '*',
38053             'hashname' => '__STRING1__',
38054             'description' => '\'*\'',
38055             'lookahead' => 0,
38056             'line' => 321
38057             }, 'Parse::RecDescent::Literal' )
38058             ],
38059             'line' => 321
38060             }, 'Parse::RecDescent::Production' ),
38061             bless( {
38062             'number' => '3',
38063             'strcount' => 1,
38064             'dircount' => 0,
38065             'uncommit' => undef,
38066             'error' => undef,
38067             'patcount' => 0,
38068             'actcount' => 0,
38069             'items' => [
38070             bless( {
38071             'pattern' => '+',
38072             'hashname' => '__STRING1__',
38073             'description' => '\'+\'',
38074             'lookahead' => 0,
38075             'line' => 321
38076             }, 'Parse::RecDescent::Literal' )
38077             ],
38078             'line' => 321
38079             }, 'Parse::RecDescent::Production' ),
38080             bless( {
38081             'number' => '4',
38082             'strcount' => 1,
38083             'dircount' => 0,
38084             'uncommit' => undef,
38085             'error' => undef,
38086             'patcount' => 0,
38087             'actcount' => 0,
38088             'items' => [
38089             bless( {
38090             'pattern' => '-',
38091             'hashname' => '__STRING1__',
38092             'description' => '\'-\'',
38093             'lookahead' => 0,
38094             'line' => 321
38095             }, 'Parse::RecDescent::Literal' )
38096             ],
38097             'line' => 321
38098             }, 'Parse::RecDescent::Production' )
38099             ],
38100             'name' => 'operator',
38101             'vars' => '',
38102             'line' => 321
38103             }, 'Parse::RecDescent::Rule' ),
38104             '_alternation_1_of_production_2_of_rule_type' => bless( {
38105             'impcount' => 0,
38106             'calls' => [],
38107             'changed' => 0,
38108             'opcount' => 0,
38109             'prods' => [
38110             bless( {
38111             'number' => '0',
38112             'strcount' => 0,
38113             'dircount' => 0,
38114             'uncommit' => undef,
38115             'error' => undef,
38116             'patcount' => 1,
38117             'actcount' => 0,
38118             'items' => [
38119             bless( {
38120             'pattern' => 'INSERT',
38121             'hashname' => '__PATTERN1__',
38122             'description' => '/INSERT/i',
38123             'lookahead' => 0,
38124             'rdelim' => '/',
38125             'line' => 628,
38126             'mod' => 'i',
38127             'ldelim' => '/'
38128             }, 'Parse::RecDescent::Token' )
38129             ],
38130             'line' => undef
38131             }, 'Parse::RecDescent::Production' ),
38132             bless( {
38133             'number' => '1',
38134             'strcount' => 0,
38135             'dircount' => 0,
38136             'uncommit' => undef,
38137             'error' => undef,
38138             'patcount' => 1,
38139             'actcount' => 0,
38140             'items' => [
38141             bless( {
38142             'pattern' => 'DELETE',
38143             'hashname' => '__PATTERN1__',
38144             'description' => '/DELETE/i',
38145             'lookahead' => 0,
38146             'rdelim' => '/',
38147             'line' => 628,
38148             'mod' => 'i',
38149             'ldelim' => '/'
38150             }, 'Parse::RecDescent::Token' )
38151             ],
38152             'line' => 628
38153             }, 'Parse::RecDescent::Production' ),
38154             bless( {
38155             'number' => '2',
38156             'strcount' => 0,
38157             'dircount' => 0,
38158             'uncommit' => undef,
38159             'error' => undef,
38160             'patcount' => 1,
38161             'actcount' => 0,
38162             'items' => [
38163             bless( {
38164             'pattern' => 'UPDATE',
38165             'hashname' => '__PATTERN1__',
38166             'description' => '/UPDATE/i',
38167             'lookahead' => 0,
38168             'rdelim' => '/',
38169             'line' => 628,
38170             'mod' => 'i',
38171             'ldelim' => '/'
38172             }, 'Parse::RecDescent::Token' )
38173             ],
38174             'line' => 628
38175             }, 'Parse::RecDescent::Production' )
38176             ],
38177             'name' => '_alternation_1_of_production_2_of_rule_type',
38178             'vars' => '',
38179             'line' => 628
38180             }, 'Parse::RecDescent::Rule' ),
38181             '_alternation_1_of_production_8_of_rule_sysibm_function' => bless( {
38182             'impcount' => 0,
38183             'calls' => [],
38184             'changed' => 0,
38185             'opcount' => 0,
38186             'prods' => [
38187             bless( {
38188             'number' => '0',
38189             'strcount' => 0,
38190             'dircount' => 0,
38191             'uncommit' => undef,
38192             'error' => undef,
38193             'patcount' => 1,
38194             'actcount' => 0,
38195             'items' => [
38196             bless( {
38197             'pattern' => 'CONCAT',
38198             'hashname' => '__PATTERN1__',
38199             'description' => '/CONCAT/',
38200             'lookahead' => 0,
38201             'rdelim' => '/',
38202             'line' => 628,
38203             'mod' => '',
38204             'ldelim' => '/'
38205             }, 'Parse::RecDescent::Token' )
38206             ],
38207             'line' => undef
38208             }, 'Parse::RecDescent::Production' ),
38209             bless( {
38210             'number' => '1',
38211             'strcount' => 1,
38212             'dircount' => 0,
38213             'uncommit' => undef,
38214             'error' => undef,
38215             'patcount' => 0,
38216             'actcount' => 0,
38217             'items' => [
38218             bless( {
38219             'pattern' => '||',
38220             'hashname' => '__STRING1__',
38221             'description' => '\'||\'',
38222             'lookahead' => 0,
38223             'line' => 628
38224             }, 'Parse::RecDescent::Literal' )
38225             ],
38226             'line' => 628
38227             }, 'Parse::RecDescent::Production' )
38228             ],
38229             'name' => '_alternation_1_of_production_8_of_rule_sysibm_function',
38230             'vars' => '',
38231             'line' => 628
38232             }, 'Parse::RecDescent::Rule' ),
38233             'sequence_reference' => bless( {
38234             'impcount' => 0,
38235             'calls' => [
38236             'nextval_expression',
38237             'prevval_expression'
38238             ],
38239             'changed' => 0,
38240             'opcount' => 0,
38241             'prods' => [
38242             bless( {
38243             'number' => '0',
38244             'strcount' => 0,
38245             'dircount' => 0,
38246             'uncommit' => undef,
38247             'error' => undef,
38248             'patcount' => 0,
38249             'actcount' => 0,
38250             'items' => [
38251             bless( {
38252             'subrule' => 'nextval_expression',
38253             'matchrule' => 0,
38254             'implicit' => undef,
38255             'argcode' => undef,
38256             'lookahead' => 0,
38257             'line' => 608
38258             }, 'Parse::RecDescent::Subrule' )
38259             ],
38260             'line' => undef
38261             }, 'Parse::RecDescent::Production' ),
38262             bless( {
38263             'number' => '1',
38264             'strcount' => 0,
38265             'dircount' => 0,
38266             'uncommit' => undef,
38267             'error' => undef,
38268             'patcount' => 0,
38269             'actcount' => 0,
38270             'items' => [
38271             bless( {
38272             'subrule' => 'prevval_expression',
38273             'matchrule' => 0,
38274             'implicit' => undef,
38275             'argcode' => undef,
38276             'lookahead' => 0,
38277             'line' => 609
38278             }, 'Parse::RecDescent::Subrule' )
38279             ],
38280             'line' => 609
38281             }, 'Parse::RecDescent::Production' )
38282             ],
38283             'name' => 'sequence_reference',
38284             'vars' => '',
38285             'line' => 608
38286             }, 'Parse::RecDescent::Rule' ),
38287             'sysibm_function' => bless( {
38288             'impcount' => 0,
38289             'calls' => [
38290             '_alternation_1_of_production_1_of_rule_sysibm_function',
38291             '_alternation_1_of_production_8_of_rule_sysibm_function',
38292             '_alternation_1_of_production_9_of_rule_sysibm_function',
38293             '_alternation_1_of_production_12_of_rule_sysibm_function',
38294             '_alternation_1_of_production_17_of_rule_sysibm_function',
38295             '_alternation_1_of_production_30_of_rule_sysibm_function',
38296             '_alternation_1_of_production_41_of_rule_sysibm_function',
38297             '_alternation_1_of_production_42_of_rule_sysibm_function',
38298             '_alternation_1_of_production_63_of_rule_sysibm_function',
38299             '_alternation_1_of_production_83_of_rule_sysibm_function',
38300             '_alternation_1_of_production_87_of_rule_sysibm_function'
38301             ],
38302             'changed' => 0,
38303             'opcount' => 0,
38304             'prods' => [
38305             bless( {
38306             'number' => '0',
38307             'strcount' => 0,
38308             'dircount' => 0,
38309             'uncommit' => undef,
38310             'error' => undef,
38311             'patcount' => 0,
38312             'actcount' => 0,
38313             'items' => [
38314             bless( {
38315             'subrule' => '_alternation_1_of_production_1_of_rule_sysibm_function',
38316             'matchrule' => 0,
38317             'implicit' => '/ABS/i, or /ABSVAL/i',
38318             'argcode' => undef,
38319             'lookahead' => 0,
38320             'line' => 332
38321             }, 'Parse::RecDescent::Subrule' )
38322             ],
38323             'line' => undef
38324             }, 'Parse::RecDescent::Production' ),
38325             bless( {
38326             'number' => '1',
38327             'strcount' => 0,
38328             'dircount' => 0,
38329             'uncommit' => undef,
38330             'error' => undef,
38331             'patcount' => 1,
38332             'actcount' => 0,
38333             'items' => [
38334             bless( {
38335             'pattern' => 'AVG',
38336             'hashname' => '__PATTERN1__',
38337             'description' => '/AVG/i',
38338             'lookahead' => 0,
38339             'rdelim' => '/',
38340             'line' => 333,
38341             'mod' => 'i',
38342             'ldelim' => '/'
38343             }, 'Parse::RecDescent::Token' )
38344             ],
38345             'line' => 333
38346             }, 'Parse::RecDescent::Production' ),
38347             bless( {
38348             'number' => '2',
38349             'strcount' => 0,
38350             'dircount' => 0,
38351             'uncommit' => undef,
38352             'error' => undef,
38353             'patcount' => 1,
38354             'actcount' => 0,
38355             'items' => [
38356             bless( {
38357             'pattern' => 'BIGINT',
38358             'hashname' => '__PATTERN1__',
38359             'description' => '/BIGINT/i',
38360             'lookahead' => 0,
38361             'rdelim' => '/',
38362             'line' => 334,
38363             'mod' => 'i',
38364             'ldelim' => '/'
38365             }, 'Parse::RecDescent::Token' )
38366             ],
38367             'line' => 334
38368             }, 'Parse::RecDescent::Production' ),
38369             bless( {
38370             'number' => '3',
38371             'strcount' => 0,
38372             'dircount' => 0,
38373             'uncommit' => undef,
38374             'error' => undef,
38375             'patcount' => 1,
38376             'actcount' => 0,
38377             'items' => [
38378             bless( {
38379             'pattern' => 'BLOB',
38380             'hashname' => '__PATTERN1__',
38381             'description' => '/BLOB/i',
38382             'lookahead' => 0,
38383             'rdelim' => '/',
38384             'line' => 335,
38385             'mod' => 'i',
38386             'ldelim' => '/'
38387             }, 'Parse::RecDescent::Token' )
38388             ],
38389             'line' => 335
38390             }, 'Parse::RecDescent::Production' ),
38391             bless( {
38392             'number' => '4',
38393             'strcount' => 0,
38394             'dircount' => 0,
38395             'uncommit' => undef,
38396             'error' => undef,
38397             'patcount' => 1,
38398             'actcount' => 0,
38399             'items' => [
38400             bless( {
38401             'pattern' => 'CHAR',
38402             'hashname' => '__PATTERN1__',
38403             'description' => '/CHAR/i',
38404             'lookahead' => 0,
38405             'rdelim' => '/',
38406             'line' => 336,
38407             'mod' => 'i',
38408             'ldelim' => '/'
38409             }, 'Parse::RecDescent::Token' )
38410             ],
38411             'line' => 336
38412             }, 'Parse::RecDescent::Production' ),
38413             bless( {
38414             'number' => '5',
38415             'strcount' => 0,
38416             'dircount' => 0,
38417             'uncommit' => undef,
38418             'error' => undef,
38419             'patcount' => 1,
38420             'actcount' => 0,
38421             'items' => [
38422             bless( {
38423             'pattern' => 'CLOB',
38424             'hashname' => '__PATTERN1__',
38425             'description' => '/CLOB/i',
38426             'lookahead' => 0,
38427             'rdelim' => '/',
38428             'line' => 337,
38429             'mod' => 'i',
38430             'ldelim' => '/'
38431             }, 'Parse::RecDescent::Token' )
38432             ],
38433             'line' => 337
38434             }, 'Parse::RecDescent::Production' ),
38435             bless( {
38436             'number' => '6',
38437             'strcount' => 0,
38438             'dircount' => 0,
38439             'uncommit' => undef,
38440             'error' => undef,
38441             'patcount' => 1,
38442             'actcount' => 0,
38443             'items' => [
38444             bless( {
38445             'pattern' => 'COALESCE',
38446             'hashname' => '__PATTERN1__',
38447             'description' => '/COALESCE/i',
38448             'lookahead' => 0,
38449             'rdelim' => '/',
38450             'line' => 338,
38451             'mod' => 'i',
38452             'ldelim' => '/'
38453             }, 'Parse::RecDescent::Token' )
38454             ],
38455             'line' => 338
38456             }, 'Parse::RecDescent::Production' ),
38457             bless( {
38458             'number' => '7',
38459             'strcount' => 0,
38460             'dircount' => 0,
38461             'uncommit' => undef,
38462             'error' => undef,
38463             'patcount' => 0,
38464             'actcount' => 0,
38465             'items' => [
38466             bless( {
38467             'subrule' => '_alternation_1_of_production_8_of_rule_sysibm_function',
38468             'matchrule' => 0,
38469             'implicit' => '/CONCAT/, or \'||\'',
38470             'argcode' => undef,
38471             'lookahead' => 0,
38472             'line' => 339
38473             }, 'Parse::RecDescent::Subrule' )
38474             ],
38475             'line' => 339
38476             }, 'Parse::RecDescent::Production' ),
38477             bless( {
38478             'number' => '8',
38479             'strcount' => 0,
38480             'dircount' => 0,
38481             'uncommit' => undef,
38482             'error' => undef,
38483             'patcount' => 0,
38484             'actcount' => 0,
38485             'items' => [
38486             bless( {
38487             'subrule' => '_alternation_1_of_production_9_of_rule_sysibm_function',
38488             'matchrule' => 0,
38489             'implicit' => '/CORRELATION/i, or /CORR/',
38490             'argcode' => undef,
38491             'lookahead' => 0,
38492             'line' => 340
38493             }, 'Parse::RecDescent::Subrule' )
38494             ],
38495             'line' => 340
38496             }, 'Parse::RecDescent::Production' ),
38497             bless( {
38498             'number' => '9',
38499             'strcount' => 0,
38500             'dircount' => 0,
38501             'uncommit' => undef,
38502             'error' => undef,
38503             'patcount' => 1,
38504             'actcount' => 0,
38505             'items' => [
38506             bless( {
38507             'pattern' => 'COUNT',
38508             'hashname' => '__PATTERN1__',
38509             'description' => '/COUNT/i',
38510             'lookahead' => 0,
38511             'rdelim' => '/',
38512             'line' => 341,
38513             'mod' => 'i',
38514             'ldelim' => '/'
38515             }, 'Parse::RecDescent::Token' )
38516             ],
38517             'line' => 341
38518             }, 'Parse::RecDescent::Production' ),
38519             bless( {
38520             'number' => '10',
38521             'strcount' => 0,
38522             'dircount' => 0,
38523             'uncommit' => undef,
38524             'error' => undef,
38525             'patcount' => 1,
38526             'actcount' => 0,
38527             'items' => [
38528             bless( {
38529             'pattern' => 'COUNT_BIG',
38530             'hashname' => '__PATTERN1__',
38531             'description' => '/COUNT_BIG/i',
38532             'lookahead' => 0,
38533             'rdelim' => '/',
38534             'line' => 342,
38535             'mod' => 'i',
38536             'ldelim' => '/'
38537             }, 'Parse::RecDescent::Token' )
38538             ],
38539             'line' => 342
38540             }, 'Parse::RecDescent::Production' ),
38541             bless( {
38542             'number' => '11',
38543             'strcount' => 0,
38544             'dircount' => 0,
38545             'uncommit' => undef,
38546             'error' => undef,
38547             'patcount' => 0,
38548             'actcount' => 0,
38549             'items' => [
38550             bless( {
38551             'subrule' => '_alternation_1_of_production_12_of_rule_sysibm_function',
38552             'matchrule' => 0,
38553             'implicit' => '/COVARIANCE/i, or /COVAR/i',
38554             'argcode' => undef,
38555             'lookahead' => 0,
38556             'line' => 343
38557             }, 'Parse::RecDescent::Subrule' )
38558             ],
38559             'line' => 343
38560             }, 'Parse::RecDescent::Production' ),
38561             bless( {
38562             'number' => '12',
38563             'strcount' => 0,
38564             'dircount' => 0,
38565             'uncommit' => undef,
38566             'error' => undef,
38567             'patcount' => 1,
38568             'actcount' => 0,
38569             'items' => [
38570             bless( {
38571             'pattern' => 'DATE',
38572             'hashname' => '__PATTERN1__',
38573             'description' => '/DATE/i',
38574             'lookahead' => 0,
38575             'rdelim' => '/',
38576             'line' => 344,
38577             'mod' => 'i',
38578             'ldelim' => '/'
38579             }, 'Parse::RecDescent::Token' )
38580             ],
38581             'line' => 344
38582             }, 'Parse::RecDescent::Production' ),
38583             bless( {
38584             'number' => '13',
38585             'strcount' => 0,
38586             'dircount' => 0,
38587             'uncommit' => undef,
38588             'error' => undef,
38589             'patcount' => 1,
38590             'actcount' => 0,
38591             'items' => [
38592             bless( {
38593             'pattern' => 'DAY',
38594             'hashname' => '__PATTERN1__',
38595             'description' => '/DAY/i',
38596             'lookahead' => 0,
38597             'rdelim' => '/',
38598             'line' => 345,
38599             'mod' => 'i',
38600             'ldelim' => '/'
38601             }, 'Parse::RecDescent::Token' )
38602             ],
38603             'line' => 345
38604             }, 'Parse::RecDescent::Production' ),
38605             bless( {
38606             'number' => '14',
38607             'strcount' => 0,
38608             'dircount' => 0,
38609             'uncommit' => undef,
38610             'error' => undef,
38611             'patcount' => 1,
38612             'actcount' => 0,
38613             'items' => [
38614             bless( {
38615             'pattern' => 'DAYS',
38616             'hashname' => '__PATTERN1__',
38617             'description' => '/DAYS/i',
38618             'lookahead' => 0,
38619             'rdelim' => '/',
38620             'line' => 346,
38621             'mod' => 'i',
38622             'ldelim' => '/'
38623             }, 'Parse::RecDescent::Token' )
38624             ],
38625             'line' => 346
38626             }, 'Parse::RecDescent::Production' ),
38627             bless( {
38628             'number' => '15',
38629             'strcount' => 0,
38630             'dircount' => 0,
38631             'uncommit' => undef,
38632             'error' => undef,
38633             'patcount' => 1,
38634             'actcount' => 0,
38635             'items' => [
38636             bless( {
38637             'pattern' => 'DBCLOB',
38638             'hashname' => '__PATTERN1__',
38639             'description' => '/DBCLOB/i',
38640             'lookahead' => 0,
38641             'rdelim' => '/',
38642             'line' => 347,
38643             'mod' => 'i',
38644             'ldelim' => '/'
38645             }, 'Parse::RecDescent::Token' )
38646             ],
38647             'line' => 347
38648             }, 'Parse::RecDescent::Production' ),
38649             bless( {
38650             'number' => '16',
38651             'strcount' => 0,
38652             'dircount' => 0,
38653             'uncommit' => undef,
38654             'error' => undef,
38655             'patcount' => 0,
38656             'actcount' => 0,
38657             'items' => [
38658             bless( {
38659             'subrule' => '_alternation_1_of_production_17_of_rule_sysibm_function',
38660             'matchrule' => 0,
38661             'implicit' => '/DECIMAL/i, or /DEC/i',
38662             'argcode' => undef,
38663             'lookahead' => 0,
38664             'line' => 348
38665             }, 'Parse::RecDescent::Subrule' )
38666             ],
38667             'line' => 348
38668             }, 'Parse::RecDescent::Production' ),
38669             bless( {
38670             'number' => '17',
38671             'strcount' => 0,
38672             'dircount' => 0,
38673             'uncommit' => undef,
38674             'error' => undef,
38675             'patcount' => 1,
38676             'actcount' => 0,
38677             'items' => [
38678             bless( {
38679             'pattern' => 'DECRYPT_BIN',
38680             'hashname' => '__PATTERN1__',
38681             'description' => '/DECRYPT_BIN/i',
38682             'lookahead' => 0,
38683             'rdelim' => '/',
38684             'line' => 349,
38685             'mod' => 'i',
38686             'ldelim' => '/'
38687             }, 'Parse::RecDescent::Token' )
38688             ],
38689             'line' => 349
38690             }, 'Parse::RecDescent::Production' ),
38691             bless( {
38692             'number' => '18',
38693             'strcount' => 0,
38694             'dircount' => 0,
38695             'uncommit' => undef,
38696             'error' => undef,
38697             'patcount' => 1,
38698             'actcount' => 0,
38699             'items' => [
38700             bless( {
38701             'pattern' => 'DECRYPT_CHAR',
38702             'hashname' => '__PATTERN1__',
38703             'description' => '/DECRYPT_CHAR/i',
38704             'lookahead' => 0,
38705             'rdelim' => '/',
38706             'line' => 350,
38707             'mod' => 'i',
38708             'ldelim' => '/'
38709             }, 'Parse::RecDescent::Token' )
38710             ],
38711             'line' => 350
38712             }, 'Parse::RecDescent::Production' ),
38713             bless( {
38714             'number' => '19',
38715             'strcount' => 0,
38716             'dircount' => 0,
38717             'uncommit' => undef,
38718             'error' => undef,
38719             'patcount' => 1,
38720             'actcount' => 0,
38721             'items' => [
38722             bless( {
38723             'pattern' => 'DEREF',
38724             'hashname' => '__PATTERN1__',
38725             'description' => '/DEREF/i',
38726             'lookahead' => 0,
38727             'rdelim' => '/',
38728             'line' => 351,
38729             'mod' => 'i',
38730             'ldelim' => '/'
38731             }, 'Parse::RecDescent::Token' )
38732             ],
38733             'line' => 351
38734             }, 'Parse::RecDescent::Production' ),
38735             bless( {
38736             'number' => '20',
38737             'strcount' => 0,
38738             'dircount' => 0,
38739             'uncommit' => undef,
38740             'error' => undef,
38741             'patcount' => 1,
38742             'actcount' => 0,
38743             'items' => [
38744             bless( {
38745             'pattern' => 'DIGITS',
38746             'hashname' => '__PATTERN1__',
38747             'description' => '/DIGITS/i',
38748             'lookahead' => 0,
38749             'rdelim' => '/',
38750             'line' => 352,
38751             'mod' => 'i',
38752             'ldelim' => '/'
38753             }, 'Parse::RecDescent::Token' )
38754             ],
38755             'line' => 352
38756             }, 'Parse::RecDescent::Production' ),
38757             bless( {
38758             'number' => '21',
38759             'strcount' => 0,
38760             'dircount' => 0,
38761             'uncommit' => undef,
38762             'error' => undef,
38763             'patcount' => 1,
38764             'actcount' => 0,
38765             'items' => [
38766             bless( {
38767             'pattern' => 'DLCOMMENT',
38768             'hashname' => '__PATTERN1__',
38769             'description' => '/DLCOMMENT/i',
38770             'lookahead' => 0,
38771             'rdelim' => '/',
38772             'line' => 353,
38773             'mod' => 'i',
38774             'ldelim' => '/'
38775             }, 'Parse::RecDescent::Token' )
38776             ],
38777             'line' => 353
38778             }, 'Parse::RecDescent::Production' ),
38779             bless( {
38780             'number' => '22',
38781             'strcount' => 0,
38782             'dircount' => 0,
38783             'uncommit' => undef,
38784             'error' => undef,
38785             'patcount' => 1,
38786             'actcount' => 0,
38787             'items' => [
38788             bless( {
38789             'pattern' => 'DLLINKTYPE',
38790             'hashname' => '__PATTERN1__',
38791             'description' => '/DLLINKTYPE/i',
38792             'lookahead' => 0,
38793             'rdelim' => '/',
38794             'line' => 354,
38795             'mod' => 'i',
38796             'ldelim' => '/'
38797             }, 'Parse::RecDescent::Token' )
38798             ],
38799             'line' => 354
38800             }, 'Parse::RecDescent::Production' ),
38801             bless( {
38802             'number' => '23',
38803             'strcount' => 0,
38804             'dircount' => 0,
38805             'uncommit' => undef,
38806             'error' => undef,
38807             'patcount' => 1,
38808             'actcount' => 0,
38809             'items' => [
38810             bless( {
38811             'pattern' => 'DLURLCOMPLETE',
38812             'hashname' => '__PATTERN1__',
38813             'description' => '/DLURLCOMPLETE/i',
38814             'lookahead' => 0,
38815             'rdelim' => '/',
38816             'line' => 355,
38817             'mod' => 'i',
38818             'ldelim' => '/'
38819             }, 'Parse::RecDescent::Token' )
38820             ],
38821             'line' => 355
38822             }, 'Parse::RecDescent::Production' ),
38823             bless( {
38824             'number' => '24',
38825             'strcount' => 0,
38826             'dircount' => 0,
38827             'uncommit' => undef,
38828             'error' => undef,
38829             'patcount' => 1,
38830             'actcount' => 0,
38831             'items' => [
38832             bless( {
38833             'pattern' => 'DLURLPATH',
38834             'hashname' => '__PATTERN1__',
38835             'description' => '/DLURLPATH/i',
38836             'lookahead' => 0,
38837             'rdelim' => '/',
38838             'line' => 356,
38839             'mod' => 'i',
38840             'ldelim' => '/'
38841             }, 'Parse::RecDescent::Token' )
38842             ],
38843             'line' => 356
38844             }, 'Parse::RecDescent::Production' ),
38845             bless( {
38846             'number' => '25',
38847             'strcount' => 0,
38848             'dircount' => 0,
38849             'uncommit' => undef,
38850             'error' => undef,
38851             'patcount' => 1,
38852             'actcount' => 0,
38853             'items' => [
38854             bless( {
38855             'pattern' => 'DLURLPATHONLY',
38856             'hashname' => '__PATTERN1__',
38857             'description' => '/DLURLPATHONLY/i',
38858             'lookahead' => 0,
38859             'rdelim' => '/',
38860             'line' => 357,
38861             'mod' => 'i',
38862             'ldelim' => '/'
38863             }, 'Parse::RecDescent::Token' )
38864             ],
38865             'line' => 357
38866             }, 'Parse::RecDescent::Production' ),
38867             bless( {
38868             'number' => '26',
38869             'strcount' => 0,
38870             'dircount' => 0,
38871             'uncommit' => undef,
38872             'error' => undef,
38873             'patcount' => 1,
38874             'actcount' => 0,
38875             'items' => [
38876             bless( {
38877             'pattern' => 'DLURLSCHEME',
38878             'hashname' => '__PATTERN1__',
38879             'description' => '/DLURLSCHEME/i',
38880             'lookahead' => 0,
38881             'rdelim' => '/',
38882             'line' => 358,
38883             'mod' => 'i',
38884             'ldelim' => '/'
38885             }, 'Parse::RecDescent::Token' )
38886             ],
38887             'line' => 358
38888             }, 'Parse::RecDescent::Production' ),
38889             bless( {
38890             'number' => '27',
38891             'strcount' => 0,
38892             'dircount' => 0,
38893             'uncommit' => undef,
38894             'error' => undef,
38895             'patcount' => 1,
38896             'actcount' => 0,
38897             'items' => [
38898             bless( {
38899             'pattern' => 'DLURLSERVER',
38900             'hashname' => '__PATTERN1__',
38901             'description' => '/DLURLSERVER/i',
38902             'lookahead' => 0,
38903             'rdelim' => '/',
38904             'line' => 359,
38905             'mod' => 'i',
38906             'ldelim' => '/'
38907             }, 'Parse::RecDescent::Token' )
38908             ],
38909             'line' => 359
38910             }, 'Parse::RecDescent::Production' ),
38911             bless( {
38912             'number' => '28',
38913             'strcount' => 0,
38914             'dircount' => 0,
38915             'uncommit' => undef,
38916             'error' => undef,
38917             'patcount' => 1,
38918             'actcount' => 0,
38919             'items' => [
38920             bless( {
38921             'pattern' => 'DLVALUE',
38922             'hashname' => '__PATTERN1__',
38923             'description' => '/DLVALUE/i',
38924             'lookahead' => 0,
38925             'rdelim' => '/',
38926             'line' => 360,
38927             'mod' => 'i',
38928             'ldelim' => '/'
38929             }, 'Parse::RecDescent::Token' )
38930             ],
38931             'line' => 360
38932             }, 'Parse::RecDescent::Production' ),
38933             bless( {
38934             'number' => '29',
38935             'strcount' => 0,
38936             'dircount' => 0,
38937             'uncommit' => undef,
38938             'error' => undef,
38939             'patcount' => 0,
38940             'actcount' => 0,
38941             'items' => [
38942             bless( {
38943             'subrule' => '_alternation_1_of_production_30_of_rule_sysibm_function',
38944             'matchrule' => 0,
38945             'implicit' => '/DOUBLE/i, or /DOUBLE_PRECISION/i',
38946             'argcode' => undef,
38947             'lookahead' => 0,
38948             'line' => 361
38949             }, 'Parse::RecDescent::Subrule' )
38950             ],
38951             'line' => 361
38952             }, 'Parse::RecDescent::Production' ),
38953             bless( {
38954             'number' => '30',
38955             'strcount' => 0,
38956             'dircount' => 0,
38957             'uncommit' => undef,
38958             'error' => undef,
38959             'patcount' => 1,
38960             'actcount' => 0,
38961             'items' => [
38962             bless( {
38963             'pattern' => 'ENCRYPT',
38964             'hashname' => '__PATTERN1__',
38965             'description' => '/ENCRYPT/i',
38966             'lookahead' => 0,
38967             'rdelim' => '/',
38968             'line' => 362,
38969             'mod' => 'i',
38970             'ldelim' => '/'
38971             }, 'Parse::RecDescent::Token' )
38972             ],
38973             'line' => 362
38974             }, 'Parse::RecDescent::Production' ),
38975             bless( {
38976             'number' => '31',
38977             'strcount' => 0,
38978             'dircount' => 0,
38979             'uncommit' => undef,
38980             'error' => undef,
38981             'patcount' => 1,
38982             'actcount' => 0,
38983             'items' => [
38984             bless( {
38985             'pattern' => 'EVENT_MON_STATE',
38986             'hashname' => '__PATTERN1__',
38987             'description' => '/EVENT_MON_STATE/i',
38988             'lookahead' => 0,
38989             'rdelim' => '/',
38990             'line' => 363,
38991             'mod' => 'i',
38992             'ldelim' => '/'
38993             }, 'Parse::RecDescent::Token' )
38994             ],
38995             'line' => 363
38996             }, 'Parse::RecDescent::Production' ),
38997             bless( {
38998             'number' => '32',
38999             'strcount' => 0,
39000             'dircount' => 0,
39001             'uncommit' => undef,
39002             'error' => undef,
39003             'patcount' => 1,
39004             'actcount' => 0,
39005             'items' => [
39006             bless( {
39007             'pattern' => 'FLOAT',
39008             'hashname' => '__PATTERN1__',
39009             'description' => '/FLOAT/i',
39010             'lookahead' => 0,
39011             'rdelim' => '/',
39012             'line' => 364,
39013             'mod' => 'i',
39014             'ldelim' => '/'
39015             }, 'Parse::RecDescent::Token' )
39016             ],
39017             'line' => 364
39018             }, 'Parse::RecDescent::Production' ),
39019             bless( {
39020             'number' => '33',
39021             'strcount' => 0,
39022             'dircount' => 0,
39023             'uncommit' => undef,
39024             'error' => undef,
39025             'patcount' => 1,
39026             'actcount' => 0,
39027             'items' => [
39028             bless( {
39029             'pattern' => 'GETHINT',
39030             'hashname' => '__PATTERN1__',
39031             'description' => '/GETHINT/i',
39032             'lookahead' => 0,
39033             'rdelim' => '/',
39034             'line' => 365,
39035             'mod' => 'i',
39036             'ldelim' => '/'
39037             }, 'Parse::RecDescent::Token' )
39038             ],
39039             'line' => 365
39040             }, 'Parse::RecDescent::Production' ),
39041             bless( {
39042             'number' => '34',
39043             'strcount' => 0,
39044             'dircount' => 0,
39045             'uncommit' => undef,
39046             'error' => undef,
39047             'patcount' => 1,
39048             'actcount' => 0,
39049             'items' => [
39050             bless( {
39051             'pattern' => 'GENERATE_UNIQUE',
39052             'hashname' => '__PATTERN1__',
39053             'description' => '/GENERATE_UNIQUE/i',
39054             'lookahead' => 0,
39055             'rdelim' => '/',
39056             'line' => 366,
39057             'mod' => 'i',
39058             'ldelim' => '/'
39059             }, 'Parse::RecDescent::Token' )
39060             ],
39061             'line' => 366
39062             }, 'Parse::RecDescent::Production' ),
39063             bless( {
39064             'number' => '35',
39065             'strcount' => 0,
39066             'dircount' => 0,
39067             'uncommit' => undef,
39068             'error' => undef,
39069             'patcount' => 1,
39070             'actcount' => 0,
39071             'items' => [
39072             bless( {
39073             'pattern' => 'GRAPHIC',
39074             'hashname' => '__PATTERN1__',
39075             'description' => '/GRAPHIC/i',
39076             'lookahead' => 0,
39077             'rdelim' => '/',
39078             'line' => 367,
39079             'mod' => 'i',
39080             'ldelim' => '/'
39081             }, 'Parse::RecDescent::Token' )
39082             ],
39083             'line' => 367
39084             }, 'Parse::RecDescent::Production' ),
39085             bless( {
39086             'number' => '36',
39087             'strcount' => 0,
39088             'dircount' => 0,
39089             'uncommit' => undef,
39090             'error' => undef,
39091             'patcount' => 1,
39092             'actcount' => 0,
39093             'items' => [
39094             bless( {
39095             'pattern' => 'GROUPING',
39096             'hashname' => '__PATTERN1__',
39097             'description' => '/GROUPING/i',
39098             'lookahead' => 0,
39099             'rdelim' => '/',
39100             'line' => 368,
39101             'mod' => 'i',
39102             'ldelim' => '/'
39103             }, 'Parse::RecDescent::Token' )
39104             ],
39105             'line' => 368
39106             }, 'Parse::RecDescent::Production' ),
39107             bless( {
39108             'number' => '37',
39109             'strcount' => 0,
39110             'dircount' => 0,
39111             'uncommit' => undef,
39112             'error' => undef,
39113             'patcount' => 1,
39114             'actcount' => 0,
39115             'items' => [
39116             bless( {
39117             'pattern' => 'HEX',
39118             'hashname' => '__PATTERN1__',
39119             'description' => '/HEX/i',
39120             'lookahead' => 0,
39121             'rdelim' => '/',
39122             'line' => 369,
39123             'mod' => 'i',
39124             'ldelim' => '/'
39125             }, 'Parse::RecDescent::Token' )
39126             ],
39127             'line' => 369
39128             }, 'Parse::RecDescent::Production' ),
39129             bless( {
39130             'number' => '38',
39131             'strcount' => 0,
39132             'dircount' => 0,
39133             'uncommit' => undef,
39134             'error' => undef,
39135             'patcount' => 1,
39136             'actcount' => 0,
39137             'items' => [
39138             bless( {
39139             'pattern' => 'HOUR',
39140             'hashname' => '__PATTERN1__',
39141             'description' => '/HOUR/i',
39142             'lookahead' => 0,
39143             'rdelim' => '/',
39144             'line' => 370,
39145             'mod' => 'i',
39146             'ldelim' => '/'
39147             }, 'Parse::RecDescent::Token' )
39148             ],
39149             'line' => 370
39150             }, 'Parse::RecDescent::Production' ),
39151             bless( {
39152             'number' => '39',
39153             'strcount' => 0,
39154             'dircount' => 0,
39155             'uncommit' => undef,
39156             'error' => undef,
39157             'patcount' => 1,
39158             'actcount' => 0,
39159             'items' => [
39160             bless( {
39161             'pattern' => 'IDENTITY_VAL_LOCAL',
39162             'hashname' => '__PATTERN1__',
39163             'description' => '/IDENTITY_VAL_LOCAL/i',
39164             'lookahead' => 0,
39165             'rdelim' => '/',
39166             'line' => 371,
39167             'mod' => 'i',
39168             'ldelim' => '/'
39169             }, 'Parse::RecDescent::Token' )
39170             ],
39171             'line' => 371
39172             }, 'Parse::RecDescent::Production' ),
39173             bless( {
39174             'number' => '40',
39175             'strcount' => 0,
39176             'dircount' => 0,
39177             'uncommit' => undef,
39178             'error' => undef,
39179             'patcount' => 0,
39180             'actcount' => 0,
39181             'items' => [
39182             bless( {
39183             'subrule' => '_alternation_1_of_production_41_of_rule_sysibm_function',
39184             'matchrule' => 0,
39185             'implicit' => '/INTEGER/i, or /INT/',
39186             'argcode' => undef,
39187             'lookahead' => 0,
39188             'line' => 372
39189             }, 'Parse::RecDescent::Subrule' )
39190             ],
39191             'line' => 372
39192             }, 'Parse::RecDescent::Production' ),
39193             bless( {
39194             'number' => '41',
39195             'strcount' => 0,
39196             'dircount' => 0,
39197             'uncommit' => undef,
39198             'error' => undef,
39199             'patcount' => 0,
39200             'actcount' => 0,
39201             'items' => [
39202             bless( {
39203             'subrule' => '_alternation_1_of_production_42_of_rule_sysibm_function',
39204             'matchrule' => 0,
39205             'implicit' => '/LCASE/i, or /LOWER/',
39206             'argcode' => undef,
39207             'lookahead' => 0,
39208             'line' => 373
39209             }, 'Parse::RecDescent::Subrule' )
39210             ],
39211             'line' => 373
39212             }, 'Parse::RecDescent::Production' ),
39213             bless( {
39214             'number' => '42',
39215             'strcount' => 0,
39216             'dircount' => 0,
39217             'uncommit' => undef,
39218             'error' => undef,
39219             'patcount' => 1,
39220             'actcount' => 0,
39221             'items' => [
39222             bless( {
39223             'pattern' => 'LENGTH',
39224             'hashname' => '__PATTERN1__',
39225             'description' => '/LENGTH/i',
39226             'lookahead' => 0,
39227             'rdelim' => '/',
39228             'line' => 374,
39229             'mod' => 'i',
39230             'ldelim' => '/'
39231             }, 'Parse::RecDescent::Token' )
39232             ],
39233             'line' => 374
39234             }, 'Parse::RecDescent::Production' ),
39235             bless( {
39236             'number' => '43',
39237             'strcount' => 0,
39238             'dircount' => 0,
39239             'uncommit' => undef,
39240             'error' => undef,
39241             'patcount' => 1,
39242             'actcount' => 0,
39243             'items' => [
39244             bless( {
39245             'pattern' => 'LONG_VARCHAR',
39246             'hashname' => '__PATTERN1__',
39247             'description' => '/LONG_VARCHAR/i',
39248             'lookahead' => 0,
39249             'rdelim' => '/',
39250             'line' => 375,
39251             'mod' => 'i',
39252             'ldelim' => '/'
39253             }, 'Parse::RecDescent::Token' )
39254             ],
39255             'line' => 375
39256             }, 'Parse::RecDescent::Production' ),
39257             bless( {
39258             'number' => '44',
39259             'strcount' => 0,
39260             'dircount' => 0,
39261             'uncommit' => undef,
39262             'error' => undef,
39263             'patcount' => 1,
39264             'actcount' => 0,
39265             'items' => [
39266             bless( {
39267             'pattern' => 'LONG_VARGRAPHIC',
39268             'hashname' => '__PATTERN1__',
39269             'description' => '/LONG_VARGRAPHIC/i',
39270             'lookahead' => 0,
39271             'rdelim' => '/',
39272             'line' => 376,
39273             'mod' => 'i',
39274             'ldelim' => '/'
39275             }, 'Parse::RecDescent::Token' )
39276             ],
39277             'line' => 376
39278             }, 'Parse::RecDescent::Production' ),
39279             bless( {
39280             'number' => '45',
39281             'strcount' => 0,
39282             'dircount' => 0,
39283             'uncommit' => undef,
39284             'error' => undef,
39285             'patcount' => 1,
39286             'actcount' => 0,
39287             'items' => [
39288             bless( {
39289             'pattern' => 'LTRIM',
39290             'hashname' => '__PATTERN1__',
39291             'description' => '/LTRIM/i',
39292             'lookahead' => 0,
39293             'rdelim' => '/',
39294             'line' => 377,
39295             'mod' => 'i',
39296             'ldelim' => '/'
39297             }, 'Parse::RecDescent::Token' )
39298             ],
39299             'line' => 377
39300             }, 'Parse::RecDescent::Production' ),
39301             bless( {
39302             'number' => '46',
39303             'strcount' => 0,
39304             'dircount' => 0,
39305             'uncommit' => undef,
39306             'error' => undef,
39307             'patcount' => 1,
39308             'actcount' => 0,
39309             'items' => [
39310             bless( {
39311             'pattern' => 'MAX',
39312             'hashname' => '__PATTERN1__',
39313             'description' => '/MAX/i',
39314             'lookahead' => 0,
39315             'rdelim' => '/',
39316             'line' => 378,
39317             'mod' => 'i',
39318             'ldelim' => '/'
39319             }, 'Parse::RecDescent::Token' )
39320             ],
39321             'line' => 378
39322             }, 'Parse::RecDescent::Production' ),
39323             bless( {
39324             'number' => '47',
39325             'strcount' => 0,
39326             'dircount' => 0,
39327             'uncommit' => undef,
39328             'error' => undef,
39329             'patcount' => 1,
39330             'actcount' => 0,
39331             'items' => [
39332             bless( {
39333             'pattern' => 'MICROSECOND',
39334             'hashname' => '__PATTERN1__',
39335             'description' => '/MICROSECOND/i',
39336             'lookahead' => 0,
39337             'rdelim' => '/',
39338             'line' => 379,
39339             'mod' => 'i',
39340             'ldelim' => '/'
39341             }, 'Parse::RecDescent::Token' )
39342             ],
39343             'line' => 379
39344             }, 'Parse::RecDescent::Production' ),
39345             bless( {
39346             'number' => '48',
39347             'strcount' => 0,
39348             'dircount' => 0,
39349             'uncommit' => undef,
39350             'error' => undef,
39351             'patcount' => 1,
39352             'actcount' => 0,
39353             'items' => [
39354             bless( {
39355             'pattern' => 'MIN',
39356             'hashname' => '__PATTERN1__',
39357             'description' => '/MIN/i',
39358             'lookahead' => 0,
39359             'rdelim' => '/',
39360             'line' => 380,
39361             'mod' => 'i',
39362             'ldelim' => '/'
39363             }, 'Parse::RecDescent::Token' )
39364             ],
39365             'line' => 380
39366             }, 'Parse::RecDescent::Production' ),
39367             bless( {
39368             'number' => '49',
39369             'strcount' => 0,
39370             'dircount' => 0,
39371             'uncommit' => undef,
39372             'error' => undef,
39373             'patcount' => 1,
39374             'actcount' => 0,
39375             'items' => [
39376             bless( {
39377             'pattern' => 'MINUTE',
39378             'hashname' => '__PATTERN1__',
39379             'description' => '/MINUTE/i',
39380             'lookahead' => 0,
39381             'rdelim' => '/',
39382             'line' => 381,
39383             'mod' => 'i',
39384             'ldelim' => '/'
39385             }, 'Parse::RecDescent::Token' )
39386             ],
39387             'line' => 381
39388             }, 'Parse::RecDescent::Production' ),
39389             bless( {
39390             'number' => '50',
39391             'strcount' => 0,
39392             'dircount' => 0,
39393             'uncommit' => undef,
39394             'error' => undef,
39395             'patcount' => 1,
39396             'actcount' => 0,
39397             'items' => [
39398             bless( {
39399             'pattern' => 'MONTH',
39400             'hashname' => '__PATTERN1__',
39401             'description' => '/MONTH/i',
39402             'lookahead' => 0,
39403             'rdelim' => '/',
39404             'line' => 382,
39405             'mod' => 'i',
39406             'ldelim' => '/'
39407             }, 'Parse::RecDescent::Token' )
39408             ],
39409             'line' => 382
39410             }, 'Parse::RecDescent::Production' ),
39411             bless( {
39412             'number' => '51',
39413             'strcount' => 0,
39414             'dircount' => 0,
39415             'uncommit' => undef,
39416             'error' => undef,
39417             'patcount' => 1,
39418             'actcount' => 0,
39419             'items' => [
39420             bless( {
39421             'pattern' => 'MULTIPLY_ACT',
39422             'hashname' => '__PATTERN1__',
39423             'description' => '/MULTIPLY_ACT/i',
39424             'lookahead' => 0,
39425             'rdelim' => '/',
39426             'line' => 383,
39427             'mod' => 'i',
39428             'ldelim' => '/'
39429             }, 'Parse::RecDescent::Token' )
39430             ],
39431             'line' => 383
39432             }, 'Parse::RecDescent::Production' ),
39433             bless( {
39434             'number' => '52',
39435             'strcount' => 0,
39436             'dircount' => 0,
39437             'uncommit' => undef,
39438             'error' => undef,
39439             'patcount' => 1,
39440             'actcount' => 0,
39441             'items' => [
39442             bless( {
39443             'pattern' => 'NODENUMBER',
39444             'hashname' => '__PATTERN1__',
39445             'description' => '/NODENUMBER/i',
39446             'lookahead' => 0,
39447             'rdelim' => '/',
39448             'line' => 384,
39449             'mod' => 'i',
39450             'ldelim' => '/'
39451             }, 'Parse::RecDescent::Token' )
39452             ],
39453             'line' => 384
39454             }, 'Parse::RecDescent::Production' ),
39455             bless( {
39456             'number' => '53',
39457             'strcount' => 0,
39458             'dircount' => 0,
39459             'uncommit' => undef,
39460             'error' => undef,
39461             'patcount' => 1,
39462             'actcount' => 0,
39463             'items' => [
39464             bless( {
39465             'pattern' => 'NULLIF',
39466             'hashname' => '__PATTERN1__',
39467             'description' => '/NULLIF/i',
39468             'lookahead' => 0,
39469             'rdelim' => '/',
39470             'line' => 385,
39471             'mod' => 'i',
39472             'ldelim' => '/'
39473             }, 'Parse::RecDescent::Token' )
39474             ],
39475             'line' => 385
39476             }, 'Parse::RecDescent::Production' ),
39477             bless( {
39478             'number' => '54',
39479             'strcount' => 0,
39480             'dircount' => 0,
39481             'uncommit' => undef,
39482             'error' => undef,
39483             'patcount' => 1,
39484             'actcount' => 0,
39485             'items' => [
39486             bless( {
39487             'pattern' => 'PARTITON',
39488             'hashname' => '__PATTERN1__',
39489             'description' => '/PARTITON/i',
39490             'lookahead' => 0,
39491             'rdelim' => '/',
39492             'line' => 386,
39493             'mod' => 'i',
39494             'ldelim' => '/'
39495             }, 'Parse::RecDescent::Token' )
39496             ],
39497             'line' => 386
39498             }, 'Parse::RecDescent::Production' ),
39499             bless( {
39500             'number' => '55',
39501             'strcount' => 0,
39502             'dircount' => 0,
39503             'uncommit' => undef,
39504             'error' => undef,
39505             'patcount' => 1,
39506             'actcount' => 0,
39507             'items' => [
39508             bless( {
39509             'pattern' => 'POSSTR',
39510             'hashname' => '__PATTERN1__',
39511             'description' => '/POSSTR/i',
39512             'lookahead' => 0,
39513             'rdelim' => '/',
39514             'line' => 387,
39515             'mod' => 'i',
39516             'ldelim' => '/'
39517             }, 'Parse::RecDescent::Token' )
39518             ],
39519             'line' => 387
39520             }, 'Parse::RecDescent::Production' ),
39521             bless( {
39522             'number' => '56',
39523             'strcount' => 0,
39524             'dircount' => 0,
39525             'uncommit' => undef,
39526             'error' => undef,
39527             'patcount' => 1,
39528             'actcount' => 0,
39529             'items' => [
39530             bless( {
39531             'pattern' => 'RAISE_ERROR',
39532             'hashname' => '__PATTERN1__',
39533             'description' => '/RAISE_ERROR/i',
39534             'lookahead' => 0,
39535             'rdelim' => '/',
39536             'line' => 388,
39537             'mod' => 'i',
39538             'ldelim' => '/'
39539             }, 'Parse::RecDescent::Token' )
39540             ],
39541             'line' => 388
39542             }, 'Parse::RecDescent::Production' ),
39543             bless( {
39544             'number' => '57',
39545             'strcount' => 0,
39546             'dircount' => 0,
39547             'uncommit' => undef,
39548             'error' => undef,
39549             'patcount' => 1,
39550             'actcount' => 0,
39551             'items' => [
39552             bless( {
39553             'pattern' => 'REAL',
39554             'hashname' => '__PATTERN1__',
39555             'description' => '/REAL/i',
39556             'lookahead' => 0,
39557             'rdelim' => '/',
39558             'line' => 389,
39559             'mod' => 'i',
39560             'ldelim' => '/'
39561             }, 'Parse::RecDescent::Token' )
39562             ],
39563             'line' => 389
39564             }, 'Parse::RecDescent::Production' ),
39565             bless( {
39566             'number' => '58',
39567             'strcount' => 0,
39568             'dircount' => 0,
39569             'uncommit' => undef,
39570             'error' => undef,
39571             'patcount' => 1,
39572             'actcount' => 0,
39573             'items' => [
39574             bless( {
39575             'pattern' => 'REC2XML',
39576             'hashname' => '__PATTERN1__',
39577             'description' => '/REC2XML/i',
39578             'lookahead' => 0,
39579             'rdelim' => '/',
39580             'line' => 390,
39581             'mod' => 'i',
39582             'ldelim' => '/'
39583             }, 'Parse::RecDescent::Token' )
39584             ],
39585             'line' => 390
39586             }, 'Parse::RecDescent::Production' ),
39587             bless( {
39588             'number' => '59',
39589             'strcount' => 0,
39590             'dircount' => 0,
39591             'uncommit' => undef,
39592             'error' => undef,
39593             'patcount' => 1,
39594             'actcount' => 0,
39595             'items' => [
39596             bless( {
39597             'pattern' => 'REGR_AVGX',
39598             'hashname' => '__PATTERN1__',
39599             'description' => '/REGR_AVGX/i',
39600             'lookahead' => 0,
39601             'rdelim' => '/',
39602             'line' => 391,
39603             'mod' => 'i',
39604             'ldelim' => '/'
39605             }, 'Parse::RecDescent::Token' )
39606             ],
39607             'line' => 391
39608             }, 'Parse::RecDescent::Production' ),
39609             bless( {
39610             'number' => '60',
39611             'strcount' => 0,
39612             'dircount' => 0,
39613             'uncommit' => undef,
39614             'error' => undef,
39615             'patcount' => 1,
39616             'actcount' => 0,
39617             'items' => [
39618             bless( {
39619             'pattern' => 'REGR_AVGY',
39620             'hashname' => '__PATTERN1__',
39621             'description' => '/REGR_AVGY/i',
39622             'lookahead' => 0,
39623             'rdelim' => '/',
39624             'line' => 392,
39625             'mod' => 'i',
39626             'ldelim' => '/'
39627             }, 'Parse::RecDescent::Token' )
39628             ],
39629             'line' => 392
39630             }, 'Parse::RecDescent::Production' ),
39631             bless( {
39632             'number' => '61',
39633             'strcount' => 0,
39634             'dircount' => 0,
39635             'uncommit' => undef,
39636             'error' => undef,
39637             'patcount' => 1,
39638             'actcount' => 0,
39639             'items' => [
39640             bless( {
39641             'pattern' => 'REGR_COUNT',
39642             'hashname' => '__PATTERN1__',
39643             'description' => '/REGR_COUNT/i',
39644             'lookahead' => 0,
39645             'rdelim' => '/',
39646             'line' => 393,
39647             'mod' => 'i',
39648             'ldelim' => '/'
39649             }, 'Parse::RecDescent::Token' )
39650             ],
39651             'line' => 393
39652             }, 'Parse::RecDescent::Production' ),
39653             bless( {
39654             'number' => '62',
39655             'strcount' => 0,
39656             'dircount' => 0,
39657             'uncommit' => undef,
39658             'error' => undef,
39659             'patcount' => 0,
39660             'actcount' => 0,
39661             'items' => [
39662             bless( {
39663             'subrule' => '_alternation_1_of_production_63_of_rule_sysibm_function',
39664             'matchrule' => 0,
39665             'implicit' => '/REGR_INTERCEPT/i, or /REGR_ICPT/i',
39666             'argcode' => undef,
39667             'lookahead' => 0,
39668             'line' => 394
39669             }, 'Parse::RecDescent::Subrule' )
39670             ],
39671             'line' => 394
39672             }, 'Parse::RecDescent::Production' ),
39673             bless( {
39674             'number' => '63',
39675             'strcount' => 0,
39676             'dircount' => 0,
39677             'uncommit' => undef,
39678             'error' => undef,
39679             'patcount' => 1,
39680             'actcount' => 0,
39681             'items' => [
39682             bless( {
39683             'pattern' => 'REGR_R2',
39684             'hashname' => '__PATTERN1__',
39685             'description' => '/REGR_R2/i',
39686             'lookahead' => 0,
39687             'rdelim' => '/',
39688             'line' => 395,
39689             'mod' => 'i',
39690             'ldelim' => '/'
39691             }, 'Parse::RecDescent::Token' )
39692             ],
39693             'line' => 395
39694             }, 'Parse::RecDescent::Production' ),
39695             bless( {
39696             'number' => '64',
39697             'strcount' => 0,
39698             'dircount' => 0,
39699             'uncommit' => undef,
39700             'error' => undef,
39701             'patcount' => 1,
39702             'actcount' => 0,
39703             'items' => [
39704             bless( {
39705             'pattern' => 'REGR_SLOPE',
39706             'hashname' => '__PATTERN1__',
39707             'description' => '/REGR_SLOPE/i',
39708             'lookahead' => 0,
39709             'rdelim' => '/',
39710             'line' => 396,
39711             'mod' => 'i',
39712             'ldelim' => '/'
39713             }, 'Parse::RecDescent::Token' )
39714             ],
39715             'line' => 396
39716             }, 'Parse::RecDescent::Production' ),
39717             bless( {
39718             'number' => '65',
39719             'strcount' => 0,
39720             'dircount' => 0,
39721             'uncommit' => undef,
39722             'error' => undef,
39723             'patcount' => 1,
39724             'actcount' => 0,
39725             'items' => [
39726             bless( {
39727             'pattern' => 'REGR_SXX',
39728             'hashname' => '__PATTERN1__',
39729             'description' => '/REGR_SXX/i',
39730             'lookahead' => 0,
39731             'rdelim' => '/',
39732             'line' => 397,
39733             'mod' => 'i',
39734             'ldelim' => '/'
39735             }, 'Parse::RecDescent::Token' )
39736             ],
39737             'line' => 397
39738             }, 'Parse::RecDescent::Production' ),
39739             bless( {
39740             'number' => '66',
39741             'strcount' => 0,
39742             'dircount' => 0,
39743             'uncommit' => undef,
39744             'error' => undef,
39745             'patcount' => 1,
39746             'actcount' => 0,
39747             'items' => [
39748             bless( {
39749             'pattern' => 'REGR_SXY',
39750             'hashname' => '__PATTERN1__',
39751             'description' => '/REGR_SXY/i',
39752             'lookahead' => 0,
39753             'rdelim' => '/',
39754             'line' => 398,
39755             'mod' => 'i',
39756             'ldelim' => '/'
39757             }, 'Parse::RecDescent::Token' )
39758             ],
39759             'line' => 398
39760             }, 'Parse::RecDescent::Production' ),
39761             bless( {
39762             'number' => '67',
39763             'strcount' => 0,
39764             'dircount' => 0,
39765             'uncommit' => undef,
39766             'error' => undef,
39767             'patcount' => 1,
39768             'actcount' => 0,
39769             'items' => [
39770             bless( {
39771             'pattern' => 'REGR_SYY',
39772             'hashname' => '__PATTERN1__',
39773             'description' => '/REGR_SYY/i',
39774             'lookahead' => 0,
39775             'rdelim' => '/',
39776             'line' => 399,
39777             'mod' => 'i',
39778             'ldelim' => '/'
39779             }, 'Parse::RecDescent::Token' )
39780             ],
39781             'line' => 399
39782             }, 'Parse::RecDescent::Production' ),
39783             bless( {
39784             'number' => '68',
39785             'strcount' => 0,
39786             'dircount' => 0,
39787             'uncommit' => undef,
39788             'error' => undef,
39789             'patcount' => 1,
39790             'actcount' => 0,
39791             'items' => [
39792             bless( {
39793             'pattern' => 'RTRIM',
39794             'hashname' => '__PATTERN1__',
39795             'description' => '/RTRIM/i',
39796             'lookahead' => 0,
39797             'rdelim' => '/',
39798             'line' => 400,
39799             'mod' => 'i',
39800             'ldelim' => '/'
39801             }, 'Parse::RecDescent::Token' )
39802             ],
39803             'line' => 400
39804             }, 'Parse::RecDescent::Production' ),
39805             bless( {
39806             'number' => '69',
39807             'strcount' => 0,
39808             'dircount' => 0,
39809             'uncommit' => undef,
39810             'error' => undef,
39811             'patcount' => 1,
39812             'actcount' => 0,
39813             'items' => [
39814             bless( {
39815             'pattern' => 'SECOND',
39816             'hashname' => '__PATTERN1__',
39817             'description' => '/SECOND/i',
39818             'lookahead' => 0,
39819             'rdelim' => '/',
39820             'line' => 401,
39821             'mod' => 'i',
39822             'ldelim' => '/'
39823             }, 'Parse::RecDescent::Token' )
39824             ],
39825             'line' => 401
39826             }, 'Parse::RecDescent::Production' ),
39827             bless( {
39828             'number' => '70',
39829             'strcount' => 0,
39830             'dircount' => 0,
39831             'uncommit' => undef,
39832             'error' => undef,
39833             'patcount' => 1,
39834             'actcount' => 0,
39835             'items' => [
39836             bless( {
39837             'pattern' => 'SMALLINT',
39838             'hashname' => '__PATTERN1__',
39839             'description' => '/SMALLINT/i',
39840             'lookahead' => 0,
39841             'rdelim' => '/',
39842             'line' => 402,
39843             'mod' => 'i',
39844             'ldelim' => '/'
39845             }, 'Parse::RecDescent::Token' )
39846             ],
39847             'line' => 402
39848             }, 'Parse::RecDescent::Production' ),
39849             bless( {
39850             'number' => '71',
39851             'strcount' => 0,
39852             'dircount' => 0,
39853             'uncommit' => undef,
39854             'error' => undef,
39855             'patcount' => 1,
39856             'actcount' => 0,
39857             'items' => [
39858             bless( {
39859             'pattern' => 'STDDEV',
39860             'hashname' => '__PATTERN1__',
39861             'description' => '/STDDEV/i',
39862             'lookahead' => 0,
39863             'rdelim' => '/',
39864             'line' => 403,
39865             'mod' => 'i',
39866             'ldelim' => '/'
39867             }, 'Parse::RecDescent::Token' )
39868             ],
39869             'line' => 403
39870             }, 'Parse::RecDescent::Production' ),
39871             bless( {
39872             'number' => '72',
39873             'strcount' => 0,
39874             'dircount' => 0,
39875             'uncommit' => undef,
39876             'error' => undef,
39877             'patcount' => 1,
39878             'actcount' => 0,
39879             'items' => [
39880             bless( {
39881             'pattern' => 'SUBSTR',
39882             'hashname' => '__PATTERN1__',
39883             'description' => '/SUBSTR/i',
39884             'lookahead' => 0,
39885             'rdelim' => '/',
39886             'line' => 404,
39887             'mod' => 'i',
39888             'ldelim' => '/'
39889             }, 'Parse::RecDescent::Token' )
39890             ],
39891             'line' => 404
39892             }, 'Parse::RecDescent::Production' ),
39893             bless( {
39894             'number' => '73',
39895             'strcount' => 0,
39896             'dircount' => 0,
39897             'uncommit' => undef,
39898             'error' => undef,
39899             'patcount' => 1,
39900             'actcount' => 0,
39901             'items' => [
39902             bless( {
39903             'pattern' => 'SUM',
39904             'hashname' => '__PATTERN1__',
39905             'description' => '/SUM/i',
39906             'lookahead' => 0,
39907             'rdelim' => '/',
39908             'line' => 405,
39909             'mod' => 'i',
39910             'ldelim' => '/'
39911             }, 'Parse::RecDescent::Token' )
39912             ],
39913             'line' => 405
39914             }, 'Parse::RecDescent::Production' ),
39915             bless( {
39916             'number' => '74',
39917             'strcount' => 0,
39918             'dircount' => 0,
39919             'uncommit' => undef,
39920             'error' => undef,
39921             'patcount' => 1,
39922             'actcount' => 0,
39923             'items' => [
39924             bless( {
39925             'pattern' => 'TABLE_NAME',
39926             'hashname' => '__PATTERN1__',
39927             'description' => '/TABLE_NAME/i',
39928             'lookahead' => 0,
39929             'rdelim' => '/',
39930             'line' => 406,
39931             'mod' => 'i',
39932             'ldelim' => '/'
39933             }, 'Parse::RecDescent::Token' )
39934             ],
39935             'line' => 406
39936             }, 'Parse::RecDescent::Production' ),
39937             bless( {
39938             'number' => '75',
39939             'strcount' => 0,
39940             'dircount' => 0,
39941             'uncommit' => undef,
39942             'error' => undef,
39943             'patcount' => 1,
39944             'actcount' => 0,
39945             'items' => [
39946             bless( {
39947             'pattern' => 'TABLE_SCHEMA',
39948             'hashname' => '__PATTERN1__',
39949             'description' => '/TABLE_SCHEMA/i',
39950             'lookahead' => 0,
39951             'rdelim' => '/',
39952             'line' => 407,
39953             'mod' => 'i',
39954             'ldelim' => '/'
39955             }, 'Parse::RecDescent::Token' )
39956             ],
39957             'line' => 407
39958             }, 'Parse::RecDescent::Production' ),
39959             bless( {
39960             'number' => '76',
39961             'strcount' => 0,
39962             'dircount' => 0,
39963             'uncommit' => undef,
39964             'error' => undef,
39965             'patcount' => 1,
39966             'actcount' => 0,
39967             'items' => [
39968             bless( {
39969             'pattern' => 'TIME',
39970             'hashname' => '__PATTERN1__',
39971             'description' => '/TIME/i',
39972             'lookahead' => 0,
39973             'rdelim' => '/',
39974             'line' => 408,
39975             'mod' => 'i',
39976             'ldelim' => '/'
39977             }, 'Parse::RecDescent::Token' )
39978             ],
39979             'line' => 408
39980             }, 'Parse::RecDescent::Production' ),
39981             bless( {
39982             'number' => '77',
39983             'strcount' => 0,
39984             'dircount' => 0,
39985             'uncommit' => undef,
39986             'error' => undef,
39987             'patcount' => 1,
39988             'actcount' => 0,
39989             'items' => [
39990             bless( {
39991             'pattern' => 'TIMESTAMP',
39992             'hashname' => '__PATTERN1__',
39993             'description' => '/TIMESTAMP/i',
39994             'lookahead' => 0,
39995             'rdelim' => '/',
39996             'line' => 409,
39997             'mod' => 'i',
39998             'ldelim' => '/'
39999             }, 'Parse::RecDescent::Token' )
40000             ],
40001             'line' => 409
40002             }, 'Parse::RecDescent::Production' ),
40003             bless( {
40004             'number' => '78',
40005             'strcount' => 0,
40006             'dircount' => 0,
40007             'uncommit' => undef,
40008             'error' => undef,
40009             'patcount' => 1,
40010             'actcount' => 0,
40011             'items' => [
40012             bless( {
40013             'pattern' => 'TRANSLATE',
40014             'hashname' => '__PATTERN1__',
40015             'description' => '/TRANSLATE/i',
40016             'lookahead' => 0,
40017             'rdelim' => '/',
40018             'line' => 410,
40019             'mod' => 'i',
40020             'ldelim' => '/'
40021             }, 'Parse::RecDescent::Token' )
40022             ],
40023             'line' => 410
40024             }, 'Parse::RecDescent::Production' ),
40025             bless( {
40026             'number' => '79',
40027             'strcount' => 0,
40028             'dircount' => 0,
40029             'uncommit' => undef,
40030             'error' => undef,
40031             'patcount' => 1,
40032             'actcount' => 0,
40033             'items' => [
40034             bless( {
40035             'pattern' => 'TYPE_ID',
40036             'hashname' => '__PATTERN1__',
40037             'description' => '/TYPE_ID/i',
40038             'lookahead' => 0,
40039             'rdelim' => '/',
40040             'line' => 411,
40041             'mod' => 'i',
40042             'ldelim' => '/'
40043             }, 'Parse::RecDescent::Token' )
40044             ],
40045             'line' => 411
40046             }, 'Parse::RecDescent::Production' ),
40047             bless( {
40048             'number' => '80',
40049             'strcount' => 0,
40050             'dircount' => 0,
40051             'uncommit' => undef,
40052             'error' => undef,
40053             'patcount' => 1,
40054             'actcount' => 0,
40055             'items' => [
40056             bless( {
40057             'pattern' => 'TYPE_NAME',
40058             'hashname' => '__PATTERN1__',
40059             'description' => '/TYPE_NAME/i',
40060             'lookahead' => 0,
40061             'rdelim' => '/',
40062             'line' => 412,
40063             'mod' => 'i',
40064             'ldelim' => '/'
40065             }, 'Parse::RecDescent::Token' )
40066             ],
40067             'line' => 412
40068             }, 'Parse::RecDescent::Production' ),
40069             bless( {
40070             'number' => '81',
40071             'strcount' => 0,
40072             'dircount' => 0,
40073             'uncommit' => undef,
40074             'error' => undef,
40075             'patcount' => 1,
40076             'actcount' => 0,
40077             'items' => [
40078             bless( {
40079             'pattern' => 'TYPE_SCHEMA',
40080             'hashname' => '__PATTERN1__',
40081             'description' => '/TYPE_SCHEMA/i',
40082             'lookahead' => 0,
40083             'rdelim' => '/',
40084             'line' => 413,
40085             'mod' => 'i',
40086             'ldelim' => '/'
40087             }, 'Parse::RecDescent::Token' )
40088             ],
40089             'line' => 413
40090             }, 'Parse::RecDescent::Production' ),
40091             bless( {
40092             'number' => '82',
40093             'strcount' => 0,
40094             'dircount' => 0,
40095             'uncommit' => undef,
40096             'error' => undef,
40097             'patcount' => 0,
40098             'actcount' => 0,
40099             'items' => [
40100             bless( {
40101             'subrule' => '_alternation_1_of_production_83_of_rule_sysibm_function',
40102             'matchrule' => 0,
40103             'implicit' => '/UCASE/i, or /UPPER/i',
40104             'argcode' => undef,
40105             'lookahead' => 0,
40106             'line' => 414
40107             }, 'Parse::RecDescent::Subrule' )
40108             ],
40109             'line' => 414
40110             }, 'Parse::RecDescent::Production' ),
40111             bless( {
40112             'number' => '83',
40113             'strcount' => 0,
40114             'dircount' => 0,
40115             'uncommit' => undef,
40116             'error' => undef,
40117             'patcount' => 1,
40118             'actcount' => 0,
40119             'items' => [
40120             bless( {
40121             'pattern' => 'VALUE',
40122             'hashname' => '__PATTERN1__',
40123             'description' => '/VALUE/i',
40124             'lookahead' => 0,
40125             'rdelim' => '/',
40126             'line' => 415,
40127             'mod' => 'i',
40128             'ldelim' => '/'
40129             }, 'Parse::RecDescent::Token' )
40130             ],
40131             'line' => 415
40132             }, 'Parse::RecDescent::Production' ),
40133             bless( {
40134             'number' => '84',
40135             'strcount' => 0,
40136             'dircount' => 0,
40137             'uncommit' => undef,
40138             'error' => undef,
40139             'patcount' => 1,
40140             'actcount' => 0,
40141             'items' => [
40142             bless( {
40143             'pattern' => 'VARCHAR',
40144             'hashname' => '__PATTERN1__',
40145             'description' => '/VARCHAR/i',
40146             'lookahead' => 0,
40147             'rdelim' => '/',
40148             'line' => 416,
40149             'mod' => 'i',
40150             'ldelim' => '/'
40151             }, 'Parse::RecDescent::Token' )
40152             ],
40153             'line' => 416
40154             }, 'Parse::RecDescent::Production' ),
40155             bless( {
40156             'number' => '85',
40157             'strcount' => 0,
40158             'dircount' => 0,
40159             'uncommit' => undef,
40160             'error' => undef,
40161             'patcount' => 1,
40162             'actcount' => 0,
40163             'items' => [
40164             bless( {
40165             'pattern' => 'VARGRAPHIC',
40166             'hashname' => '__PATTERN1__',
40167             'description' => '/VARGRAPHIC/i',
40168             'lookahead' => 0,
40169             'rdelim' => '/',
40170             'line' => 417,
40171             'mod' => 'i',
40172             'ldelim' => '/'
40173             }, 'Parse::RecDescent::Token' )
40174             ],
40175             'line' => 417
40176             }, 'Parse::RecDescent::Production' ),
40177             bless( {
40178             'number' => '86',
40179             'strcount' => 0,
40180             'dircount' => 0,
40181             'uncommit' => undef,
40182             'error' => undef,
40183             'patcount' => 0,
40184             'actcount' => 0,
40185             'items' => [
40186             bless( {
40187             'subrule' => '_alternation_1_of_production_87_of_rule_sysibm_function',
40188             'matchrule' => 0,
40189             'implicit' => '/VARIANCE/i, or /VAR/i',
40190             'argcode' => undef,
40191             'lookahead' => 0,
40192             'line' => 418
40193             }, 'Parse::RecDescent::Subrule' )
40194             ],
40195             'line' => 418
40196             }, 'Parse::RecDescent::Production' ),
40197             bless( {
40198             'number' => '87',
40199             'strcount' => 0,
40200             'dircount' => 0,
40201             'uncommit' => undef,
40202             'error' => undef,
40203             'patcount' => 1,
40204             'actcount' => 0,
40205             'items' => [
40206             bless( {
40207             'pattern' => 'YEAR',
40208             'hashname' => '__PATTERN1__',
40209             'description' => '/YEAR/i',
40210             'lookahead' => 0,
40211             'rdelim' => '/',
40212             'line' => 419,
40213             'mod' => 'i',
40214             'ldelim' => '/'
40215             }, 'Parse::RecDescent::Token' )
40216             ],
40217             'line' => 419
40218             }, 'Parse::RecDescent::Production' )
40219             ],
40220             'name' => 'sysibm_function',
40221             'vars' => '',
40222             'line' => 332
40223             }, 'Parse::RecDescent::Rule' ),
40224             'window_partition_clause' => bless( {
40225             'impcount' => 0,
40226             'calls' => [
40227             'partitioning_expression'
40228             ],
40229             'changed' => 0,
40230             'opcount' => 0,
40231             'prods' => [
40232             bless( {
40233             'number' => '0',
40234             'strcount' => 0,
40235             'dircount' => 1,
40236             'uncommit' => undef,
40237             'error' => undef,
40238             'patcount' => 2,
40239             'actcount' => 0,
40240             'op' => [],
40241             'items' => [
40242             bless( {
40243             'pattern' => 'PARTITION\\s+BY',
40244             'hashname' => '__PATTERN1__',
40245             'description' => '/PARTITION\\\\s+BY/i',
40246             'lookahead' => 0,
40247             'rdelim' => '/',
40248             'line' => 553,
40249             'mod' => 'i',
40250             'ldelim' => '/'
40251             }, 'Parse::RecDescent::Token' ),
40252             bless( {
40253             'expected' => '',
40254             'min' => 1,
40255             'name' => '\'partitioning_expression(s)\'',
40256             'max' => 100000000,
40257             'leftarg' => bless( {
40258             'subrule' => 'partitioning_expression',
40259             'matchrule' => 0,
40260             'implicit' => undef,
40261             'argcode' => undef,
40262             'lookahead' => 0,
40263             'line' => 553
40264             }, 'Parse::RecDescent::Subrule' ),
40265             'rightarg' => bless( {
40266             'subrule' => 'partitioning_expression',
40267             'matchrule' => 0,
40268             'implicit' => undef,
40269             'argcode' => undef,
40270             'lookahead' => 0,
40271             'line' => 553
40272             }, 'Parse::RecDescent::Subrule' ),
40273             'hashname' => '__DIRECTIVE1__',
40274             'type' => 'leftop',
40275             'op' => bless( {
40276             'pattern' => ',',
40277             'hashname' => '__PATTERN2__',
40278             'description' => '/,/',
40279             'lookahead' => 0,
40280             'rdelim' => '/',
40281             'line' => 553,
40282             'mod' => '',
40283             'ldelim' => '/'
40284             }, 'Parse::RecDescent::Token' )
40285             }, 'Parse::RecDescent::Operator' )
40286             ],
40287             'line' => undef
40288             }, 'Parse::RecDescent::Production' )
40289             ],
40290             'name' => 'window_partition_clause',
40291             'vars' => '',
40292             'line' => 553
40293             }, 'Parse::RecDescent::Rule' ),
40294             'WHERE' => bless( {
40295             'impcount' => 0,
40296             'calls' => [],
40297             'changed' => 0,
40298             'opcount' => 0,
40299             'prods' => [
40300             bless( {
40301             'number' => '0',
40302             'strcount' => 0,
40303             'dircount' => 0,
40304             'uncommit' => undef,
40305             'error' => undef,
40306             'patcount' => 1,
40307             'actcount' => 0,
40308             'items' => [
40309             bless( {
40310             'pattern' => 'where',
40311             'hashname' => '__PATTERN1__',
40312             'description' => '/where/i',
40313             'lookahead' => 0,
40314             'rdelim' => '/',
40315             'line' => 117,
40316             'mod' => 'i',
40317             'ldelim' => '/'
40318             }, 'Parse::RecDescent::Token' )
40319             ],
40320             'line' => undef
40321             }, 'Parse::RecDescent::Production' )
40322             ],
40323             'name' => 'WHERE',
40324             'vars' => '',
40325             'line' => 117
40326             }, 'Parse::RecDescent::Rule' ),
40327             'CREATE' => bless( {
40328             'impcount' => 0,
40329             'calls' => [],
40330             'changed' => 0,
40331             'opcount' => 0,
40332             'prods' => [
40333             bless( {
40334             'number' => '0',
40335             'strcount' => 0,
40336             'dircount' => 0,
40337             'uncommit' => undef,
40338             'error' => undef,
40339             'patcount' => 1,
40340             'actcount' => 0,
40341             'items' => [
40342             bless( {
40343             'pattern' => 'create',
40344             'hashname' => '__PATTERN1__',
40345             'description' => '/create/i',
40346             'lookahead' => 0,
40347             'rdelim' => '/',
40348             'line' => 101,
40349             'mod' => 'i',
40350             'ldelim' => '/'
40351             }, 'Parse::RecDescent::Token' )
40352             ],
40353             'line' => undef
40354             }, 'Parse::RecDescent::Production' )
40355             ],
40356             'name' => 'CREATE',
40357             'vars' => '',
40358             'line' => 101
40359             }, 'Parse::RecDescent::Rule' ),
40360             '_alternation_1_of_production_1_of_rule_sysfun' => bless( {
40361             'impcount' => 0,
40362             'calls' => [],
40363             'changed' => 0,
40364             'opcount' => 0,
40365             'prods' => [
40366             bless( {
40367             'number' => '0',
40368             'strcount' => 0,
40369             'dircount' => 0,
40370             'uncommit' => undef,
40371             'error' => undef,
40372             'patcount' => 1,
40373             'actcount' => 0,
40374             'items' => [
40375             bless( {
40376             'pattern' => 'ABS',
40377             'hashname' => '__PATTERN1__',
40378             'description' => '/ABS/i',
40379             'lookahead' => 0,
40380             'rdelim' => '/',
40381             'line' => 628,
40382             'mod' => 'i',
40383             'ldelim' => '/'
40384             }, 'Parse::RecDescent::Token' )
40385             ],
40386             'line' => undef
40387             }, 'Parse::RecDescent::Production' ),
40388             bless( {
40389             'number' => '1',
40390             'strcount' => 0,
40391             'dircount' => 0,
40392             'uncommit' => undef,
40393             'error' => undef,
40394             'patcount' => 1,
40395             'actcount' => 0,
40396             'items' => [
40397             bless( {
40398             'pattern' => 'ABSVAL',
40399             'hashname' => '__PATTERN1__',
40400             'description' => '/ABSVAL/i',
40401             'lookahead' => 0,
40402             'rdelim' => '/',
40403             'line' => 628,
40404             'mod' => 'i',
40405             'ldelim' => '/'
40406             }, 'Parse::RecDescent::Token' )
40407             ],
40408             'line' => 628
40409             }, 'Parse::RecDescent::Production' )
40410             ],
40411             'name' => '_alternation_1_of_production_1_of_rule_sysfun',
40412             'vars' => '',
40413             'line' => 628
40414             }, 'Parse::RecDescent::Rule' ),
40415             '_alternation_1_of_production_1_of_rule_function' => bless( {
40416             'impcount' => 0,
40417             'calls' => [
40418             'sysibm_function',
40419             'sysfun_function',
40420             'userdefined_function'
40421             ],
40422             'changed' => 0,
40423             'opcount' => 0,
40424             'prods' => [
40425             bless( {
40426             'number' => '0',
40427             'strcount' => 0,
40428             'dircount' => 0,
40429             'uncommit' => undef,
40430             'error' => undef,
40431             'patcount' => 1,
40432             'actcount' => 0,
40433             'items' => [
40434             bless( {
40435             'pattern' => 'SYSIBM\\.|',
40436             'hashname' => '__PATTERN1__',
40437             'description' => '/SYSIBM\\\\.|/i',
40438             'lookahead' => 0,
40439             'rdelim' => '/',
40440             'line' => 625,
40441             'mod' => 'i',
40442             'ldelim' => '/'
40443             }, 'Parse::RecDescent::Token' ),
40444             bless( {
40445             'subrule' => 'sysibm_function',
40446             'matchrule' => 0,
40447             'implicit' => undef,
40448             'argcode' => undef,
40449             'lookahead' => 0,
40450             'line' => 625
40451             }, 'Parse::RecDescent::Subrule' )
40452             ],
40453             'line' => undef
40454             }, 'Parse::RecDescent::Production' ),
40455             bless( {
40456             'number' => '1',
40457             'strcount' => 0,
40458             'dircount' => 0,
40459             'uncommit' => undef,
40460             'error' => undef,
40461             'patcount' => 1,
40462             'actcount' => 0,
40463             'items' => [
40464             bless( {
40465             'pattern' => 'SYSFUN\\.|',
40466             'hashname' => '__PATTERN1__',
40467             'description' => '/SYSFUN\\\\.|/i',
40468             'lookahead' => 0,
40469             'rdelim' => '/',
40470             'line' => 626,
40471             'mod' => 'i',
40472             'ldelim' => '/'
40473             }, 'Parse::RecDescent::Token' ),
40474             bless( {
40475             'subrule' => 'sysfun_function',
40476             'matchrule' => 0,
40477             'implicit' => undef,
40478             'argcode' => undef,
40479             'lookahead' => 0,
40480             'line' => 626
40481             }, 'Parse::RecDescent::Subrule' )
40482             ],
40483             'line' => 626
40484             }, 'Parse::RecDescent::Production' ),
40485             bless( {
40486             'number' => '2',
40487             'strcount' => 0,
40488             'dircount' => 0,
40489             'uncommit' => undef,
40490             'error' => undef,
40491             'patcount' => 0,
40492             'actcount' => 0,
40493             'items' => [
40494             bless( {
40495             'subrule' => 'userdefined_function',
40496             'matchrule' => 0,
40497             'implicit' => undef,
40498             'argcode' => undef,
40499             'lookahead' => 0,
40500             'line' => 627
40501             }, 'Parse::RecDescent::Subrule' )
40502             ],
40503             'line' => 627
40504             }, 'Parse::RecDescent::Production' )
40505             ],
40506             'name' => '_alternation_1_of_production_1_of_rule_function',
40507             'vars' => '',
40508             'line' => 625
40509             }, 'Parse::RecDescent::Rule' ),
40510             'identifier' => bless( {
40511             'impcount' => 0,
40512             'calls' => [
40513             'NAME'
40514             ],
40515             'changed' => 0,
40516             'opcount' => 0,
40517             'prods' => [
40518             bless( {
40519             'number' => '0',
40520             'strcount' => 0,
40521             'dircount' => 0,
40522             'uncommit' => undef,
40523             'error' => undef,
40524             'patcount' => 0,
40525             'actcount' => 0,
40526             'items' => [
40527             bless( {
40528             'subrule' => 'NAME',
40529             'matchrule' => 0,
40530             'implicit' => undef,
40531             'argcode' => undef,
40532             'lookahead' => 0,
40533             'line' => 136
40534             }, 'Parse::RecDescent::Subrule' )
40535             ],
40536             'line' => undef
40537             }, 'Parse::RecDescent::Production' )
40538             ],
40539             'name' => 'identifier',
40540             'vars' => '',
40541             'line' => 136
40542             }, 'Parse::RecDescent::Rule' ),
40543             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause' => bless( {
40544             'impcount' => 0,
40545             'calls' => [
40546             'asc_option',
40547             'desc_option'
40548             ],
40549             'changed' => 0,
40550             'opcount' => 0,
40551             'prods' => [
40552             bless( {
40553             'number' => '0',
40554             'strcount' => 0,
40555             'dircount' => 0,
40556             'uncommit' => undef,
40557             'error' => undef,
40558             'patcount' => 0,
40559             'actcount' => 0,
40560             'items' => [
40561             bless( {
40562             'subrule' => 'asc_option',
40563             'matchrule' => 0,
40564             'implicit' => undef,
40565             'argcode' => undef,
40566             'lookahead' => 0,
40567             'line' => 626
40568             }, 'Parse::RecDescent::Subrule' )
40569             ],
40570             'line' => undef
40571             }, 'Parse::RecDescent::Production' ),
40572             bless( {
40573             'number' => '1',
40574             'strcount' => 0,
40575             'dircount' => 0,
40576             'uncommit' => undef,
40577             'error' => undef,
40578             'patcount' => 0,
40579             'actcount' => 0,
40580             'items' => [
40581             bless( {
40582             'subrule' => 'desc_option',
40583             'matchrule' => 0,
40584             'implicit' => undef,
40585             'argcode' => undef,
40586             'lookahead' => 0,
40587             'line' => 627
40588             }, 'Parse::RecDescent::Subrule' )
40589             ],
40590             'line' => 627
40591             }, 'Parse::RecDescent::Production' )
40592             ],
40593             'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause',
40594             'vars' => '',
40595             'line' => 626
40596             }, 'Parse::RecDescent::Rule' ),
40597             'result_expression' => bless( {
40598             'impcount' => 0,
40599             'calls' => [
40600             'expression'
40601             ],
40602             'changed' => 0,
40603             'opcount' => 0,
40604             'prods' => [
40605             bless( {
40606             'number' => '0',
40607             'strcount' => 0,
40608             'dircount' => 0,
40609             'uncommit' => undef,
40610             'error' => undef,
40611             'patcount' => 0,
40612             'actcount' => 0,
40613             'items' => [
40614             bless( {
40615             'subrule' => 'expression',
40616             'matchrule' => 0,
40617             'implicit' => undef,
40618             'argcode' => undef,
40619             'lookahead' => 0,
40620             'line' => 515
40621             }, 'Parse::RecDescent::Subrule' )
40622             ],
40623             'line' => undef
40624             }, 'Parse::RecDescent::Production' )
40625             ],
40626             'name' => 'result_expression',
40627             'vars' => '',
40628             'line' => 515
40629             }, 'Parse::RecDescent::Rule' ),
40630             'scoped_reference_expression' => bless( {
40631             'impcount' => 0,
40632             'calls' => [
40633             'expression'
40634             ],
40635             'changed' => 0,
40636             'opcount' => 0,
40637             'prods' => [
40638             bless( {
40639             'number' => '0',
40640             'strcount' => 0,
40641             'dircount' => 0,
40642             'uncommit' => undef,
40643             'error' => undef,
40644             'patcount' => 0,
40645             'actcount' => 1,
40646             'items' => [
40647             bless( {
40648             'subrule' => 'expression',
40649             'matchrule' => 0,
40650             'implicit' => undef,
40651             'argcode' => undef,
40652             'lookahead' => 0,
40653             'line' => 532
40654             }, 'Parse::RecDescent::Subrule' ),
40655             bless( {
40656             'hashname' => '__ACTION1__',
40657             'lookahead' => 0,
40658             'line' => 533,
40659             'code' => '{ # scoped, reference
40660             }'
40661             }, 'Parse::RecDescent::Action' )
40662             ],
40663             'line' => undef
40664             }, 'Parse::RecDescent::Production' )
40665             ],
40666             'name' => 'scoped_reference_expression',
40667             'vars' => '',
40668             'line' => 528
40669             }, 'Parse::RecDescent::Rule' ),
40670             '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification' => bless( {
40671             'impcount' => 0,
40672             'calls' => [
40673             'typed_table_name',
40674             'typed_view_name'
40675             ],
40676             'changed' => 0,
40677             'opcount' => 0,
40678             'prods' => [
40679             bless( {
40680             'number' => '0',
40681             'strcount' => 0,
40682             'dircount' => 0,
40683             'uncommit' => undef,
40684             'error' => undef,
40685             'patcount' => 0,
40686             'actcount' => 0,
40687             'items' => [
40688             bless( {
40689             'subrule' => 'typed_table_name',
40690             'matchrule' => 0,
40691             'implicit' => undef,
40692             'argcode' => undef,
40693             'lookahead' => 0,
40694             'line' => 626
40695             }, 'Parse::RecDescent::Subrule' )
40696             ],
40697             'line' => undef
40698             }, 'Parse::RecDescent::Production' ),
40699             bless( {
40700             'number' => '1',
40701             'strcount' => 0,
40702             'dircount' => 0,
40703             'uncommit' => undef,
40704             'error' => undef,
40705             'patcount' => 0,
40706             'actcount' => 0,
40707             'items' => [
40708             bless( {
40709             'subrule' => 'typed_view_name',
40710             'matchrule' => 0,
40711             'implicit' => undef,
40712             'argcode' => undef,
40713             'lookahead' => 0,
40714             'line' => 627
40715             }, 'Parse::RecDescent::Subrule' )
40716             ],
40717             'line' => 627
40718             }, 'Parse::RecDescent::Production' )
40719             ],
40720             'name' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification',
40721             'vars' => '',
40722             'line' => 626
40723             }, 'Parse::RecDescent::Rule' ),
40724             'when_clause' => bless( {
40725             'impcount' => 0,
40726             'calls' => [
40727             'search_condition'
40728             ],
40729             'changed' => 0,
40730             'opcount' => 0,
40731             'prods' => [
40732             bless( {
40733             'number' => '0',
40734             'strcount' => 2,
40735             'dircount' => 0,
40736             'uncommit' => undef,
40737             'error' => undef,
40738             'patcount' => 1,
40739             'actcount' => 1,
40740             'items' => [
40741             bless( {
40742             'pattern' => 'WHEN',
40743             'hashname' => '__PATTERN1__',
40744             'description' => '/WHEN/i',
40745             'lookahead' => 0,
40746             'rdelim' => '/',
40747             'line' => 261,
40748             'mod' => 'i',
40749             'ldelim' => '/'
40750             }, 'Parse::RecDescent::Token' ),
40751             bless( {
40752             'pattern' => '(',
40753             'hashname' => '__STRING1__',
40754             'description' => '\'(\'',
40755             'lookahead' => 0,
40756             'line' => 261
40757             }, 'Parse::RecDescent::Literal' ),
40758             bless( {
40759             'subrule' => 'search_condition',
40760             'matchrule' => 0,
40761             'implicit' => undef,
40762             'argcode' => undef,
40763             'lookahead' => 0,
40764             'line' => 261
40765             }, 'Parse::RecDescent::Subrule' ),
40766             bless( {
40767             'pattern' => ')',
40768             'hashname' => '__STRING2__',
40769             'description' => '\')\'',
40770             'lookahead' => 0,
40771             'line' => 261
40772             }, 'Parse::RecDescent::Literal' ),
40773             bless( {
40774             'hashname' => '__ACTION1__',
40775             'lookahead' => 0,
40776             'line' => 261,
40777             'code' => '{$return = $item[3]}'
40778             }, 'Parse::RecDescent::Action' )
40779             ],
40780             'line' => undef
40781             }, 'Parse::RecDescent::Production' )
40782             ],
40783             'name' => 'when_clause',
40784             'vars' => '',
40785             'line' => 259
40786             }, 'Parse::RecDescent::Rule' ),
40787             '_alternation_1_of_production_1_of_rule_asc_option' => bless( {
40788             'impcount' => 0,
40789             'calls' => [],
40790             'changed' => 0,
40791             'opcount' => 0,
40792             'prods' => [
40793             bless( {
40794             'number' => '0',
40795             'strcount' => 0,
40796             'dircount' => 0,
40797             'uncommit' => undef,
40798             'error' => undef,
40799             'patcount' => 1,
40800             'actcount' => 0,
40801             'items' => [
40802             bless( {
40803             'pattern' => 'NULLS\\s+FIRST',
40804             'hashname' => '__PATTERN1__',
40805             'description' => '/NULLS\\\\s+FIRST/i',
40806             'lookahead' => 0,
40807             'rdelim' => '/',
40808             'line' => 628,
40809             'mod' => 'i',
40810             'ldelim' => '/'
40811             }, 'Parse::RecDescent::Token' )
40812             ],
40813             'line' => undef
40814             }, 'Parse::RecDescent::Production' ),
40815             bless( {
40816             'number' => '1',
40817             'strcount' => 0,
40818             'dircount' => 0,
40819             'uncommit' => undef,
40820             'error' => undef,
40821             'patcount' => 1,
40822             'actcount' => 0,
40823             'items' => [
40824             bless( {
40825             'pattern' => 'NULLS\\s+LAST',
40826             'hashname' => '__PATTERN1__',
40827             'description' => '/NULLS\\\\s+LAST/i',
40828             'lookahead' => 0,
40829             'rdelim' => '/',
40830             'line' => 628,
40831             'mod' => 'i',
40832             'ldelim' => '/'
40833             }, 'Parse::RecDescent::Token' )
40834             ],
40835             'line' => 628
40836             }, 'Parse::RecDescent::Production' )
40837             ],
40838             'name' => '_alternation_1_of_production_1_of_rule_asc_option',
40839             'vars' => '',
40840             'line' => 628
40841             }, 'Parse::RecDescent::Rule' ),
40842             'sequence_name' => bless( {
40843             'impcount' => 0,
40844             'calls' => [
40845             'NAME'
40846             ],
40847             'changed' => 0,
40848             'opcount' => 0,
40849             'prods' => [
40850             bless( {
40851             'number' => '0',
40852             'strcount' => 0,
40853             'dircount' => 0,
40854             'uncommit' => undef,
40855             'error' => undef,
40856             'patcount' => 0,
40857             'actcount' => 0,
40858             'items' => [
40859             bless( {
40860             'subrule' => 'NAME',
40861             'matchrule' => 0,
40862             'implicit' => undef,
40863             'argcode' => undef,
40864             'lookahead' => 0,
40865             'line' => 615
40866             }, 'Parse::RecDescent::Subrule' )
40867             ],
40868             'line' => undef
40869             }, 'Parse::RecDescent::Production' )
40870             ],
40871             'name' => 'sequence_name',
40872             'vars' => '',
40873             'line' => 615
40874             }, 'Parse::RecDescent::Rule' ),
40875             'ld_duration' => bless( {
40876             'impcount' => 0,
40877             'calls' => [],
40878             'changed' => 0,
40879             'opcount' => 0,
40880             'prods' => [
40881             bless( {
40882             'number' => '0',
40883             'strcount' => 0,
40884             'dircount' => 0,
40885             'uncommit' => undef,
40886             'error' => undef,
40887             'patcount' => 1,
40888             'actcount' => 0,
40889             'items' => [
40890             bless( {
40891             'pattern' => 'YEARS?',
40892             'hashname' => '__PATTERN1__',
40893             'description' => '/YEARS?/i',
40894             'lookahead' => 0,
40895             'rdelim' => '/',
40896             'line' => 488,
40897             'mod' => 'i',
40898             'ldelim' => '/'
40899             }, 'Parse::RecDescent::Token' )
40900             ],
40901             'line' => undef
40902             }, 'Parse::RecDescent::Production' ),
40903             bless( {
40904             'number' => '1',
40905             'strcount' => 0,
40906             'dircount' => 0,
40907             'uncommit' => undef,
40908             'error' => undef,
40909             'patcount' => 1,
40910             'actcount' => 0,
40911             'items' => [
40912             bless( {
40913             'pattern' => 'MONTHS?',
40914             'hashname' => '__PATTERN1__',
40915             'description' => '/MONTHS?/i',
40916             'lookahead' => 0,
40917             'rdelim' => '/',
40918             'line' => 489,
40919             'mod' => 'i',
40920             'ldelim' => '/'
40921             }, 'Parse::RecDescent::Token' )
40922             ],
40923             'line' => 489
40924             }, 'Parse::RecDescent::Production' ),
40925             bless( {
40926             'number' => '2',
40927             'strcount' => 0,
40928             'dircount' => 0,
40929             'uncommit' => undef,
40930             'error' => undef,
40931             'patcount' => 1,
40932             'actcount' => 0,
40933             'items' => [
40934             bless( {
40935             'pattern' => 'DAYS?',
40936             'hashname' => '__PATTERN1__',
40937             'description' => '/DAYS?/i',
40938             'lookahead' => 0,
40939             'rdelim' => '/',
40940             'line' => 490,
40941             'mod' => 'i',
40942             'ldelim' => '/'
40943             }, 'Parse::RecDescent::Token' )
40944             ],
40945             'line' => 490
40946             }, 'Parse::RecDescent::Production' ),
40947             bless( {
40948             'number' => '3',
40949             'strcount' => 0,
40950             'dircount' => 0,
40951             'uncommit' => undef,
40952             'error' => undef,
40953             'patcount' => 1,
40954             'actcount' => 0,
40955             'items' => [
40956             bless( {
40957             'pattern' => 'HOURS?',
40958             'hashname' => '__PATTERN1__',
40959             'description' => '/HOURS?/i',
40960             'lookahead' => 0,
40961             'rdelim' => '/',
40962             'line' => 491,
40963             'mod' => 'i',
40964             'ldelim' => '/'
40965             }, 'Parse::RecDescent::Token' )
40966             ],
40967             'line' => 491
40968             }, 'Parse::RecDescent::Production' ),
40969             bless( {
40970             'number' => '4',
40971             'strcount' => 0,
40972             'dircount' => 0,
40973             'uncommit' => undef,
40974             'error' => undef,
40975             'patcount' => 1,
40976             'actcount' => 0,
40977             'items' => [
40978             bless( {
40979             'pattern' => 'MINUTES?',
40980             'hashname' => '__PATTERN1__',
40981             'description' => '/MINUTES?/i',
40982             'lookahead' => 0,
40983             'rdelim' => '/',
40984             'line' => 492,
40985             'mod' => 'i',
40986             'ldelim' => '/'
40987             }, 'Parse::RecDescent::Token' )
40988             ],
40989             'line' => 492
40990             }, 'Parse::RecDescent::Production' ),
40991             bless( {
40992             'number' => '5',
40993             'strcount' => 0,
40994             'dircount' => 0,
40995             'uncommit' => undef,
40996             'error' => undef,
40997             'patcount' => 1,
40998             'actcount' => 0,
40999             'items' => [
41000             bless( {
41001             'pattern' => 'SECONDS?',
41002             'hashname' => '__PATTERN1__',
41003             'description' => '/SECONDS?/i',
41004             'lookahead' => 0,
41005             'rdelim' => '/',
41006             'line' => 493,
41007             'mod' => 'i',
41008             'ldelim' => '/'
41009             }, 'Parse::RecDescent::Token' )
41010             ],
41011             'line' => 493
41012             }, 'Parse::RecDescent::Production' ),
41013             bless( {
41014             'number' => '6',
41015             'strcount' => 0,
41016             'dircount' => 0,
41017             'uncommit' => undef,
41018             'error' => undef,
41019             'patcount' => 1,
41020             'actcount' => 0,
41021             'items' => [
41022             bless( {
41023             'pattern' => 'MICROSECONDS?',
41024             'hashname' => '__PATTERN1__',
41025             'description' => '/MICROSECONDS?/i',
41026             'lookahead' => 0,
41027             'rdelim' => '/',
41028             'line' => 494,
41029             'mod' => 'i',
41030             'ldelim' => '/'
41031             }, 'Parse::RecDescent::Token' )
41032             ],
41033             'line' => 494
41034             }, 'Parse::RecDescent::Production' )
41035             ],
41036             'name' => 'ld_duration',
41037             'vars' => '',
41038             'line' => 488
41039             }, 'Parse::RecDescent::Rule' ),
41040             'reference_a' => bless( {
41041             'impcount' => 0,
41042             'calls' => [
41043             'old_new_corr',
41044             'old_new_table'
41045             ],
41046             'changed' => 0,
41047             'opcount' => 0,
41048             'prods' => [
41049             bless( {
41050             'number' => '0',
41051             'strcount' => 0,
41052             'dircount' => 0,
41053             'uncommit' => undef,
41054             'error' => undef,
41055             'patcount' => 1,
41056             'actcount' => 1,
41057             'items' => [
41058             bless( {
41059             'pattern' => 'REFERENCING',
41060             'hashname' => '__PATTERN1__',
41061             'description' => '/REFERENCING/i',
41062             'lookahead' => 0,
41063             'rdelim' => '/',
41064             'line' => 283,
41065             'mod' => 'i',
41066             'ldelim' => '/'
41067             }, 'Parse::RecDescent::Token' ),
41068             bless( {
41069             'subrule' => 'old_new_corr',
41070             'expected' => undef,
41071             'min' => 0,
41072             'argcode' => undef,
41073             'max' => 2,
41074             'matchrule' => 0,
41075             'repspec' => '0..2',
41076             'lookahead' => 0,
41077             'line' => 283
41078             }, 'Parse::RecDescent::Repetition' ),
41079             bless( {
41080             'subrule' => 'old_new_table',
41081             'expected' => undef,
41082             'min' => 0,
41083             'argcode' => undef,
41084             'max' => 2,
41085             'matchrule' => 0,
41086             'repspec' => '0..2',
41087             'lookahead' => 0,
41088             'line' => 283
41089             }, 'Parse::RecDescent::Repetition' ),
41090             bless( {
41091             'hashname' => '__ACTION1__',
41092             'lookahead' => 0,
41093             'line' => 284,
41094             'code' => '{ $return = join(\' \', $item[1], join(\' \', @{$item[2]}), join(\' \', @{$item[3]}) ) }'
41095             }, 'Parse::RecDescent::Action' )
41096             ],
41097             'line' => undef
41098             }, 'Parse::RecDescent::Production' )
41099             ],
41100             'name' => 'reference_a',
41101             'vars' => '',
41102             'line' => 283
41103             }, 'Parse::RecDescent::Rule' ),
41104             'cast_specification' => bless( {
41105             'impcount' => 2,
41106             'calls' => [
41107             '_alternation_1_of_production_1_of_rule_cast_specification',
41108             'data_type',
41109             '_alternation_2_of_production_1_of_rule_cast_specification'
41110             ],
41111             'changed' => 0,
41112             'opcount' => 0,
41113             'prods' => [
41114             bless( {
41115             'number' => '0',
41116             'strcount' => 2,
41117             'dircount' => 0,
41118             'uncommit' => undef,
41119             'error' => undef,
41120             'patcount' => 2,
41121             'actcount' => 0,
41122             'items' => [
41123             bless( {
41124             'pattern' => 'CAST',
41125             'hashname' => '__PATTERN1__',
41126             'description' => '/CAST/i',
41127             'lookahead' => 0,
41128             'rdelim' => '/',
41129             'line' => 517,
41130             'mod' => 'i',
41131             'ldelim' => '/'
41132             }, 'Parse::RecDescent::Token' ),
41133             bless( {
41134             'pattern' => '(',
41135             'hashname' => '__STRING1__',
41136             'description' => '\'(\'',
41137             'lookahead' => 0,
41138             'line' => 517
41139             }, 'Parse::RecDescent::Literal' ),
41140             bless( {
41141             'subrule' => '_alternation_1_of_production_1_of_rule_cast_specification',
41142             'matchrule' => 0,
41143             'implicit' => 'expression, or /NULL/i, or parameter_marker',
41144             'argcode' => undef,
41145             'lookahead' => 0,
41146             'line' => 520
41147             }, 'Parse::RecDescent::Subrule' ),
41148             bless( {
41149             'pattern' => 'AS',
41150             'hashname' => '__PATTERN2__',
41151             'description' => '/AS/i',
41152             'lookahead' => 0,
41153             'rdelim' => '/',
41154             'line' => 520,
41155             'mod' => 'i',
41156             'ldelim' => '/'
41157             }, 'Parse::RecDescent::Token' ),
41158             bless( {
41159             'subrule' => 'data_type',
41160             'matchrule' => 0,
41161             'implicit' => undef,
41162             'argcode' => undef,
41163             'lookahead' => 0,
41164             'line' => 520
41165             }, 'Parse::RecDescent::Subrule' ),
41166             bless( {
41167             'subrule' => '_alternation_2_of_production_1_of_rule_cast_specification',
41168             'expected' => '/SCOPE/',
41169             'min' => 0,
41170             'argcode' => undef,
41171             'max' => 1,
41172             'matchrule' => 0,
41173             'repspec' => '?',
41174             'lookahead' => 0,
41175             'line' => 524
41176             }, 'Parse::RecDescent::Repetition' ),
41177             bless( {
41178             'pattern' => ')',
41179             'hashname' => '__STRING2__',
41180             'description' => '\')\'',
41181             'lookahead' => 0,
41182             'line' => 524
41183             }, 'Parse::RecDescent::Literal' )
41184             ],
41185             'line' => undef
41186             }, 'Parse::RecDescent::Production' )
41187             ],
41188             'name' => 'cast_specification',
41189             'vars' => '',
41190             'line' => 517
41191             }, 'Parse::RecDescent::Rule' ),
41192             'type' => bless( {
41193             'impcount' => 1,
41194             'calls' => [
41195             'column_name',
41196             '_alternation_1_of_production_2_of_rule_type'
41197             ],
41198             'changed' => 0,
41199             'opcount' => 0,
41200             'prods' => [
41201             bless( {
41202             'number' => '0',
41203             'strcount' => 0,
41204             'dircount' => 1,
41205             'uncommit' => undef,
41206             'error' => undef,
41207             'patcount' => 3,
41208             'actcount' => 1,
41209             'op' => [],
41210             'items' => [
41211             bless( {
41212             'pattern' => 'UPDATE',
41213             'hashname' => '__PATTERN1__',
41214             'description' => '/UPDATE/i',
41215             'lookahead' => 0,
41216             'rdelim' => '/',
41217             'line' => 272,
41218             'mod' => 'i',
41219             'ldelim' => '/'
41220             }, 'Parse::RecDescent::Token' ),
41221             bless( {
41222             'pattern' => 'OF',
41223             'hashname' => '__PATTERN2__',
41224             'description' => '/OF/i',
41225             'lookahead' => 0,
41226             'rdelim' => '/',
41227             'line' => 272,
41228             'mod' => 'i',
41229             'ldelim' => '/'
41230             }, 'Parse::RecDescent::Token' ),
41231             bless( {
41232             'expected' => '',
41233             'min' => 1,
41234             'name' => '\'column_name(s)\'',
41235             'max' => 100000000,
41236             'leftarg' => bless( {
41237             'subrule' => 'column_name',
41238             'matchrule' => 0,
41239             'implicit' => undef,
41240             'argcode' => undef,
41241             'lookahead' => 0,
41242             'line' => 272
41243             }, 'Parse::RecDescent::Subrule' ),
41244             'rightarg' => bless( {
41245             'subrule' => 'column_name',
41246             'matchrule' => 0,
41247             'implicit' => undef,
41248             'argcode' => undef,
41249             'lookahead' => 0,
41250             'line' => 272
41251             }, 'Parse::RecDescent::Subrule' ),
41252             'hashname' => '__DIRECTIVE1__',
41253             'type' => 'leftop',
41254             'op' => bless( {
41255             'pattern' => ',',
41256             'hashname' => '__PATTERN3__',
41257             'description' => '/,/',
41258             'lookahead' => 0,
41259             'rdelim' => '/',
41260             'line' => 272,
41261             'mod' => '',
41262             'ldelim' => '/'
41263             }, 'Parse::RecDescent::Token' )
41264             }, 'Parse::RecDescent::Operator' ),
41265             bless( {
41266             'hashname' => '__ACTION1__',
41267             'lookahead' => 0,
41268             'line' => 273,
41269             'code' => '{ $return = { event => \'update_on\',
41270             fields => $item[3] }
41271             }'
41272             }, 'Parse::RecDescent::Action' )
41273             ],
41274             'line' => undef
41275             }, 'Parse::RecDescent::Production' ),
41276             bless( {
41277             'number' => '1',
41278             'strcount' => 0,
41279             'dircount' => 0,
41280             'uncommit' => undef,
41281             'error' => undef,
41282             'patcount' => 0,
41283             'actcount' => 1,
41284             'items' => [
41285             bless( {
41286             'subrule' => '_alternation_1_of_production_2_of_rule_type',
41287             'matchrule' => 0,
41288             'implicit' => '/INSERT/i, or /DELETE/i, or /UPDATE/i',
41289             'argcode' => undef,
41290             'lookahead' => 0,
41291             'line' => 277
41292             }, 'Parse::RecDescent::Subrule' ),
41293             bless( {
41294             'hashname' => '__ACTION1__',
41295             'lookahead' => 0,
41296             'line' => 278,
41297             'code' => '{ $return = { event => $item[1] } }'
41298             }, 'Parse::RecDescent::Action' )
41299             ],
41300             'line' => undef
41301             }, 'Parse::RecDescent::Production' )
41302             ],
41303             'name' => 'type',
41304             'vars' => '',
41305             'line' => 272
41306             }, 'Parse::RecDescent::Rule' ),
41307             '_alternation_1_of_production_12_of_rule_sysibm_function' => bless( {
41308             'impcount' => 0,
41309             'calls' => [],
41310             'changed' => 0,
41311             'opcount' => 0,
41312             'prods' => [
41313             bless( {
41314             'number' => '0',
41315             'strcount' => 0,
41316             'dircount' => 0,
41317             'uncommit' => undef,
41318             'error' => undef,
41319             'patcount' => 1,
41320             'actcount' => 0,
41321             'items' => [
41322             bless( {
41323             'pattern' => 'COVARIANCE',
41324             'hashname' => '__PATTERN1__',
41325             'description' => '/COVARIANCE/i',
41326             'lookahead' => 0,
41327             'rdelim' => '/',
41328             'line' => 628,
41329             'mod' => 'i',
41330             'ldelim' => '/'
41331             }, 'Parse::RecDescent::Token' )
41332             ],
41333             'line' => undef
41334             }, 'Parse::RecDescent::Production' ),
41335             bless( {
41336             'number' => '1',
41337             'strcount' => 0,
41338             'dircount' => 0,
41339             'uncommit' => undef,
41340             'error' => undef,
41341             'patcount' => 1,
41342             'actcount' => 0,
41343             'items' => [
41344             bless( {
41345             'pattern' => 'COVAR',
41346             'hashname' => '__PATTERN1__',
41347             'description' => '/COVAR/i',
41348             'lookahead' => 0,
41349             'rdelim' => '/',
41350             'line' => 628,
41351             'mod' => 'i',
41352             'ldelim' => '/'
41353             }, 'Parse::RecDescent::Token' )
41354             ],
41355             'line' => 628
41356             }, 'Parse::RecDescent::Production' )
41357             ],
41358             'name' => '_alternation_1_of_production_12_of_rule_sysibm_function',
41359             'vars' => '',
41360             'line' => 628
41361             }, 'Parse::RecDescent::Rule' ),
41362             'scalar_fullselect' => bless( {
41363             'impcount' => 0,
41364             'calls' => [
41365             'fullselect'
41366             ],
41367             'changed' => 0,
41368             'opcount' => 0,
41369             'prods' => [
41370             bless( {
41371             'number' => '0',
41372             'strcount' => 2,
41373             'dircount' => 0,
41374             'uncommit' => undef,
41375             'error' => undef,
41376             'patcount' => 0,
41377             'actcount' => 0,
41378             'items' => [
41379             bless( {
41380             'pattern' => '(',
41381             'hashname' => '__STRING1__',
41382             'description' => '\'(\'',
41383             'lookahead' => 0,
41384             'line' => 478
41385             }, 'Parse::RecDescent::Literal' ),
41386             bless( {
41387             'subrule' => 'fullselect',
41388             'matchrule' => 0,
41389             'implicit' => undef,
41390             'argcode' => undef,
41391             'lookahead' => 0,
41392             'line' => 478
41393             }, 'Parse::RecDescent::Subrule' ),
41394             bless( {
41395             'pattern' => ')',
41396             'hashname' => '__STRING2__',
41397             'description' => '\')\'',
41398             'lookahead' => 0,
41399             'line' => 478
41400             }, 'Parse::RecDescent::Literal' )
41401             ],
41402             'line' => undef
41403             }, 'Parse::RecDescent::Production' )
41404             ],
41405             'name' => 'scalar_fullselect',
41406             'vars' => '',
41407             'line' => 478
41408             }, 'Parse::RecDescent::Rule' ),
41409             '_alternation_1_of_production_1_of_rule_options' => bless( {
41410             'impcount' => 0,
41411             'calls' => [],
41412             'changed' => 0,
41413             'opcount' => 0,
41414             'prods' => [
41415             bless( {
41416             'number' => '0',
41417             'strcount' => 0,
41418             'dircount' => 0,
41419             'uncommit' => undef,
41420             'error' => undef,
41421             'patcount' => 1,
41422             'actcount' => 0,
41423             'items' => [
41424             bless( {
41425             'pattern' => 'CASCADED',
41426             'hashname' => '__PATTERN1__',
41427             'description' => '/CASCADED/i',
41428             'lookahead' => 0,
41429             'rdelim' => '/',
41430             'line' => 628,
41431             'mod' => 'i',
41432             'ldelim' => '/'
41433             }, 'Parse::RecDescent::Token' )
41434             ],
41435             'line' => undef
41436             }, 'Parse::RecDescent::Production' ),
41437             bless( {
41438             'number' => '1',
41439             'strcount' => 0,
41440             'dircount' => 0,
41441             'uncommit' => undef,
41442             'error' => undef,
41443             'patcount' => 1,
41444             'actcount' => 0,
41445             'items' => [
41446             bless( {
41447             'pattern' => 'LOCAL',
41448             'hashname' => '__PATTERN1__',
41449             'description' => '/LOCAL/i',
41450             'lookahead' => 0,
41451             'rdelim' => '/',
41452             'line' => 628,
41453             'mod' => 'i',
41454             'ldelim' => '/'
41455             }, 'Parse::RecDescent::Token' )
41456             ],
41457             'line' => 628
41458             }, 'Parse::RecDescent::Production' )
41459             ],
41460             'name' => '_alternation_1_of_production_1_of_rule_options',
41461             'vars' => '',
41462             'line' => 628
41463             }, 'Parse::RecDescent::Rule' ),
41464             'func_args' => bless( {
41465             'impcount' => 0,
41466             'calls' => [
41467             'expression'
41468             ],
41469             'changed' => 0,
41470             'opcount' => 0,
41471             'prods' => [
41472             bless( {
41473             'number' => '0',
41474             'strcount' => 0,
41475             'dircount' => 0,
41476             'uncommit' => undef,
41477             'error' => undef,
41478             'patcount' => 0,
41479             'actcount' => 0,
41480             'items' => [
41481             bless( {
41482             'subrule' => 'expression',
41483             'matchrule' => 0,
41484             'implicit' => undef,
41485             'argcode' => undef,
41486             'lookahead' => 0,
41487             'line' => 330
41488             }, 'Parse::RecDescent::Subrule' )
41489             ],
41490             'line' => undef
41491             }, 'Parse::RecDescent::Production' )
41492             ],
41493             'name' => 'func_args',
41494             'vars' => '',
41495             'line' => 330
41496             }, 'Parse::RecDescent::Rule' ),
41497             'trigger_name' => bless( {
41498             'impcount' => 0,
41499             'calls' => [
41500             'SCHEMA',
41501             'NAME'
41502             ],
41503             'changed' => 0,
41504             'opcount' => 0,
41505             'prods' => [
41506             bless( {
41507             'number' => '0',
41508             'strcount' => 1,
41509             'dircount' => 0,
41510             'uncommit' => undef,
41511             'error' => undef,
41512             'patcount' => 0,
41513             'actcount' => 1,
41514             'items' => [
41515             bless( {
41516             'subrule' => 'SCHEMA',
41517             'matchrule' => 0,
41518             'implicit' => undef,
41519             'argcode' => undef,
41520             'lookahead' => 0,
41521             'line' => 119
41522             }, 'Parse::RecDescent::Subrule' ),
41523             bless( {
41524             'pattern' => '.',
41525             'hashname' => '__STRING1__',
41526             'description' => '\'.\'',
41527             'lookahead' => 0,
41528             'line' => 119
41529             }, 'Parse::RecDescent::Literal' ),
41530             bless( {
41531             'subrule' => 'NAME',
41532             'matchrule' => 0,
41533             'implicit' => undef,
41534             'argcode' => undef,
41535             'lookahead' => 0,
41536             'line' => 119
41537             }, 'Parse::RecDescent::Subrule' ),
41538             bless( {
41539             'hashname' => '__ACTION1__',
41540             'lookahead' => 0,
41541             'line' => 120,
41542             'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
41543             }, 'Parse::RecDescent::Action' )
41544             ],
41545             'line' => undef
41546             }, 'Parse::RecDescent::Production' ),
41547             bless( {
41548             'number' => '1',
41549             'strcount' => 0,
41550             'dircount' => 0,
41551             'uncommit' => undef,
41552             'error' => undef,
41553             'patcount' => 0,
41554             'actcount' => 1,
41555             'items' => [
41556             bless( {
41557             'subrule' => 'NAME',
41558             'matchrule' => 0,
41559             'implicit' => undef,
41560             'argcode' => undef,
41561             'lookahead' => 0,
41562             'line' => 121
41563             }, 'Parse::RecDescent::Subrule' ),
41564             bless( {
41565             'hashname' => '__ACTION1__',
41566             'lookahead' => 0,
41567             'line' => 122,
41568             'code' => '{ $return = { name => $item[1] } }'
41569             }, 'Parse::RecDescent::Action' )
41570             ],
41571             'line' => 121
41572             }, 'Parse::RecDescent::Production' )
41573             ],
41574             'name' => 'trigger_name',
41575             'vars' => '',
41576             'line' => 119
41577             }, 'Parse::RecDescent::Rule' ),
41578             '_alternation_2_of_production_1_of_rule_numbering_function' => bless( {
41579             'impcount' => 0,
41580             'calls' => [
41581             'window_aggregation_group_clause'
41582             ],
41583             'changed' => 0,
41584             'opcount' => 0,
41585             'prods' => [
41586             bless( {
41587             'number' => '0',
41588             'strcount' => 0,
41589             'dircount' => 0,
41590             'uncommit' => undef,
41591             'error' => undef,
41592             'patcount' => 1,
41593             'actcount' => 0,
41594             'items' => [
41595             bless( {
41596             'pattern' => 'RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING',
41597             'hashname' => '__PATTERN1__',
41598             'description' => '/RANGE\\\\s+BETWEEN\\\\s+UNBOUNDED\\\\s+PRECEDING\\\\s+AND\\\\s+UNBBOUNDED\\\\s+FOLLOWING/i',
41599             'lookahead' => 0,
41600             'rdelim' => '/',
41601             'line' => 626,
41602             'mod' => 'i',
41603             'ldelim' => '/'
41604             }, 'Parse::RecDescent::Token' )
41605             ],
41606             'line' => undef
41607             }, 'Parse::RecDescent::Production' ),
41608             bless( {
41609             'number' => '1',
41610             'strcount' => 0,
41611             'dircount' => 0,
41612             'uncommit' => undef,
41613             'error' => undef,
41614             'patcount' => 0,
41615             'actcount' => 0,
41616             'items' => [
41617             bless( {
41618             'subrule' => 'window_aggregation_group_clause',
41619             'matchrule' => 0,
41620             'implicit' => undef,
41621             'argcode' => undef,
41622             'lookahead' => 0,
41623             'line' => 627
41624             }, 'Parse::RecDescent::Subrule' )
41625             ],
41626             'line' => 627
41627             }, 'Parse::RecDescent::Production' )
41628             ],
41629             'name' => '_alternation_2_of_production_1_of_rule_numbering_function',
41630             'vars' => '',
41631             'line' => 626
41632             }, 'Parse::RecDescent::Rule' ),
41633             'method_name' => bless( {
41634             'impcount' => 0,
41635             'calls' => [
41636             'NAME'
41637             ],
41638             'changed' => 0,
41639             'opcount' => 0,
41640             'prods' => [
41641             bless( {
41642             'number' => '0',
41643             'strcount' => 0,
41644             'dircount' => 0,
41645             'uncommit' => undef,
41646             'error' => undef,
41647             'patcount' => 0,
41648             'actcount' => 1,
41649             'items' => [
41650             bless( {
41651             'subrule' => 'NAME',
41652             'matchrule' => 0,
41653             'implicit' => undef,
41654             'argcode' => undef,
41655             'lookahead' => 0,
41656             'line' => 602
41657             }, 'Parse::RecDescent::Subrule' ),
41658             bless( {
41659             'hashname' => '__ACTION1__',
41660             'lookahead' => 0,
41661             'line' => 603,
41662             'code' => '{ # must be a method of subject_expression
41663             }'
41664             }, 'Parse::RecDescent::Action' )
41665             ],
41666             'line' => undef
41667             }, 'Parse::RecDescent::Production' )
41668             ],
41669             'name' => 'method_name',
41670             'vars' => '',
41671             'line' => 602
41672             }, 'Parse::RecDescent::Rule' ),
41673             'quantified_p' => bless( {
41674             'impcount' => 0,
41675             'calls' => [
41676             'expression1',
41677             'fullselect'
41678             ],
41679             'changed' => 0,
41680             'opcount' => 0,
41681             'prods' => [
41682             bless( {
41683             'number' => '0',
41684             'strcount' => 2,
41685             'dircount' => 0,
41686             'uncommit' => undef,
41687             'error' => undef,
41688             'patcount' => 2,
41689             'actcount' => 0,
41690             'items' => [
41691             bless( {
41692             'subrule' => 'expression1',
41693             'matchrule' => 0,
41694             'implicit' => undef,
41695             'argcode' => undef,
41696             'lookahead' => 0,
41697             'line' => 626
41698             }, 'Parse::RecDescent::Subrule' ),
41699             bless( {
41700             'pattern' => '(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)',
41701             'hashname' => '__PATTERN1__',
41702             'description' => '/(=|<>|<|>|<=|=>|\\\\^=|\\\\^<|\\\\^>|\\\\!=)/',
41703             'lookahead' => 0,
41704             'rdelim' => '/',
41705             'line' => 626,
41706             'mod' => '',
41707             'ldelim' => '/'
41708             }, 'Parse::RecDescent::Token' ),
41709             bless( {
41710             'pattern' => 'SOME|ANY|ALL',
41711             'hashname' => '__PATTERN2__',
41712             'description' => '/SOME|ANY|ALL/i',
41713             'lookahead' => 0,
41714             'rdelim' => '/',
41715             'line' => 626,
41716             'mod' => 'i',
41717             'ldelim' => '/'
41718             }, 'Parse::RecDescent::Token' ),
41719             bless( {
41720             'pattern' => '(',
41721             'hashname' => '__STRING1__',
41722             'description' => '\'(\'',
41723             'lookahead' => 0,
41724             'line' => 626
41725             }, 'Parse::RecDescent::Literal' ),
41726             bless( {
41727             'subrule' => 'fullselect',
41728             'matchrule' => 0,
41729             'implicit' => undef,
41730             'argcode' => undef,
41731             'lookahead' => 0,
41732             'line' => 626
41733             }, 'Parse::RecDescent::Subrule' ),
41734             bless( {
41735             'pattern' => ')',
41736             'hashname' => '__STRING2__',
41737             'description' => '\')\'',
41738             'lookahead' => 0,
41739             'line' => 626
41740             }, 'Parse::RecDescent::Literal' )
41741             ],
41742             'line' => undef
41743             }, 'Parse::RecDescent::Production' )
41744             ],
41745             'name' => 'quantified_p',
41746             'vars' => '',
41747             'line' => 626
41748             }, 'Parse::RecDescent::Rule' ),
41749             'common_table_expression' => bless( {
41750             'impcount' => 0,
41751             'calls' => [
41752             'table_name',
41753             'column_list',
41754             'get_bracketed',
41755             'fullselect'
41756             ],
41757             'changed' => 0,
41758             'opcount' => 0,
41759             'prods' => [
41760             bless( {
41761             'number' => '0',
41762             'strcount' => 0,
41763             'dircount' => 0,
41764             'uncommit' => undef,
41765             'error' => undef,
41766             'patcount' => 1,
41767             'actcount' => 1,
41768             'items' => [
41769             bless( {
41770             'subrule' => 'table_name',
41771             'matchrule' => 0,
41772             'implicit' => undef,
41773             'argcode' => undef,
41774             'lookahead' => 0,
41775             'line' => 162
41776             }, 'Parse::RecDescent::Subrule' ),
41777             bless( {
41778             'subrule' => 'column_list',
41779             'matchrule' => 0,
41780             'implicit' => undef,
41781             'argcode' => undef,
41782             'lookahead' => 0,
41783             'line' => 162
41784             }, 'Parse::RecDescent::Subrule' ),
41785             bless( {
41786             'pattern' => 'AS',
41787             'hashname' => '__PATTERN1__',
41788             'description' => '/AS/i',
41789             'lookahead' => 0,
41790             'rdelim' => '/',
41791             'line' => 162,
41792             'mod' => 'i',
41793             'ldelim' => '/'
41794             }, 'Parse::RecDescent::Token' ),
41795             bless( {
41796             'subrule' => 'get_bracketed',
41797             'matchrule' => 0,
41798             'implicit' => undef,
41799             'argcode' => undef,
41800             'lookahead' => 0,
41801             'line' => 162
41802             }, 'Parse::RecDescent::Subrule' ),
41803             bless( {
41804             'hashname' => '__ACTION1__',
41805             'lookahead' => 0,
41806             'line' => 163,
41807             'code' => '{
41808             $return = { name => $item{table_name}{name},
41809             query => $item[4]
41810             };
41811             }'
41812             }, 'Parse::RecDescent::Action' )
41813             ],
41814             'line' => undef
41815             }, 'Parse::RecDescent::Production' ),
41816             bless( {
41817             'number' => '1',
41818             'strcount' => 2,
41819             'dircount' => 0,
41820             'uncommit' => undef,
41821             'error' => undef,
41822             'patcount' => 1,
41823             'actcount' => 0,
41824             'items' => [
41825             bless( {
41826             'subrule' => 'table_name',
41827             'matchrule' => 0,
41828             'implicit' => undef,
41829             'argcode' => undef,
41830             'lookahead' => 0,
41831             'line' => 174
41832             }, 'Parse::RecDescent::Subrule' ),
41833             bless( {
41834             'subrule' => 'column_list',
41835             'matchrule' => 0,
41836             'implicit' => undef,
41837             'argcode' => undef,
41838             'lookahead' => 0,
41839             'line' => 174
41840             }, 'Parse::RecDescent::Subrule' ),
41841             bless( {
41842             'pattern' => 'AS',
41843             'hashname' => '__PATTERN1__',
41844             'description' => '/AS/i',
41845             'lookahead' => 0,
41846             'rdelim' => '/',
41847             'line' => 174,
41848             'mod' => 'i',
41849             'ldelim' => '/'
41850             }, 'Parse::RecDescent::Token' ),
41851             bless( {
41852             'pattern' => '(',
41853             'hashname' => '__STRING1__',
41854             'description' => '\'(\'',
41855             'lookahead' => 0,
41856             'line' => 174
41857             }, 'Parse::RecDescent::Literal' ),
41858             bless( {
41859             'subrule' => 'fullselect',
41860             'matchrule' => 0,
41861             'implicit' => undef,
41862             'argcode' => undef,
41863             'lookahead' => 0,
41864             'line' => 174
41865             }, 'Parse::RecDescent::Subrule' ),
41866             bless( {
41867             'pattern' => ')',
41868             'hashname' => '__STRING2__',
41869             'description' => '\')\'',
41870             'lookahead' => 0,
41871             'line' => 174
41872             }, 'Parse::RecDescent::Literal' )
41873             ],
41874             'line' => undef
41875             }, 'Parse::RecDescent::Production' )
41876             ],
41877             'name' => 'common_table_expression',
41878             'vars' => '',
41879             'line' => 160
41880             }, 'Parse::RecDescent::Rule' ),
41881             'after' => bless( {
41882             'impcount' => 0,
41883             'calls' => [],
41884             'changed' => 0,
41885             'opcount' => 0,
41886             'prods' => [
41887             bless( {
41888             'number' => '0',
41889             'strcount' => 0,
41890             'dircount' => 0,
41891             'uncommit' => undef,
41892             'error' => undef,
41893             'patcount' => 1,
41894             'actcount' => 0,
41895             'items' => [
41896             bless( {
41897             'pattern' => 'AFTER',
41898             'hashname' => '__PATTERN1__',
41899             'description' => '/AFTER/i',
41900             'lookahead' => 0,
41901             'rdelim' => '/',
41902             'line' => 270,
41903             'mod' => 'i',
41904             'ldelim' => '/'
41905             }, 'Parse::RecDescent::Token' )
41906             ],
41907             'line' => undef
41908             }, 'Parse::RecDescent::Production' )
41909             ],
41910             'name' => 'after',
41911             'vars' => '',
41912             'line' => 270
41913             }, 'Parse::RecDescent::Rule' ),
41914             'predicate' => bless( {
41915             'impcount' => 0,
41916             'calls' => [
41917             'basic_p',
41918             'quantified_p',
41919             'between_p',
41920             'exists_p',
41921             'in_p',
41922             'like_p',
41923             'null_p',
41924             'type_p'
41925             ],
41926             'changed' => 0,
41927             'opcount' => 0,
41928             'prods' => [
41929             bless( {
41930             'number' => '0',
41931             'strcount' => 0,
41932             'dircount' => 0,
41933             'uncommit' => undef,
41934             'error' => undef,
41935             'patcount' => 0,
41936             'actcount' => 0,
41937             'items' => [
41938             bless( {
41939             'subrule' => 'basic_p',
41940             'matchrule' => 0,
41941             'implicit' => undef,
41942             'argcode' => undef,
41943             'lookahead' => 0,
41944             'line' => 622
41945             }, 'Parse::RecDescent::Subrule' )
41946             ],
41947             'line' => undef
41948             }, 'Parse::RecDescent::Production' ),
41949             bless( {
41950             'number' => '1',
41951             'strcount' => 0,
41952             'dircount' => 0,
41953             'uncommit' => undef,
41954             'error' => undef,
41955             'patcount' => 0,
41956             'actcount' => 0,
41957             'items' => [
41958             bless( {
41959             'subrule' => 'quantified_p',
41960             'matchrule' => 0,
41961             'implicit' => undef,
41962             'argcode' => undef,
41963             'lookahead' => 0,
41964             'line' => 622
41965             }, 'Parse::RecDescent::Subrule' )
41966             ],
41967             'line' => 622
41968             }, 'Parse::RecDescent::Production' ),
41969             bless( {
41970             'number' => '2',
41971             'strcount' => 0,
41972             'dircount' => 0,
41973             'uncommit' => undef,
41974             'error' => undef,
41975             'patcount' => 0,
41976             'actcount' => 0,
41977             'items' => [
41978             bless( {
41979             'subrule' => 'between_p',
41980             'matchrule' => 0,
41981             'implicit' => undef,
41982             'argcode' => undef,
41983             'lookahead' => 0,
41984             'line' => 622
41985             }, 'Parse::RecDescent::Subrule' )
41986             ],
41987             'line' => 622
41988             }, 'Parse::RecDescent::Production' ),
41989             bless( {
41990             'number' => '3',
41991             'strcount' => 0,
41992             'dircount' => 0,
41993             'uncommit' => undef,
41994             'error' => undef,
41995             'patcount' => 0,
41996             'actcount' => 0,
41997             'items' => [
41998             bless( {
41999             'subrule' => 'exists_p',
42000             'matchrule' => 0,
42001             'implicit' => undef,
42002             'argcode' => undef,
42003             'lookahead' => 0,
42004             'line' => 622
42005             }, 'Parse::RecDescent::Subrule' )
42006             ],
42007             'line' => 622
42008             }, 'Parse::RecDescent::Production' ),
42009             bless( {
42010             'number' => '4',
42011             'strcount' => 0,
42012             'dircount' => 0,
42013             'uncommit' => undef,
42014             'error' => undef,
42015             'patcount' => 0,
42016             'actcount' => 0,
42017             'items' => [
42018             bless( {
42019             'subrule' => 'in_p',
42020             'matchrule' => 0,
42021             'implicit' => undef,
42022             'argcode' => undef,
42023             'lookahead' => 0,
42024             'line' => 622
42025             }, 'Parse::RecDescent::Subrule' )
42026             ],
42027             'line' => 622
42028             }, 'Parse::RecDescent::Production' ),
42029             bless( {
42030             'number' => '5',
42031             'strcount' => 0,
42032             'dircount' => 0,
42033             'uncommit' => undef,
42034             'error' => undef,
42035             'patcount' => 0,
42036             'actcount' => 0,
42037             'items' => [
42038             bless( {
42039             'subrule' => 'like_p',
42040             'matchrule' => 0,
42041             'implicit' => undef,
42042             'argcode' => undef,
42043             'lookahead' => 0,
42044             'line' => 622
42045             }, 'Parse::RecDescent::Subrule' )
42046             ],
42047             'line' => 622
42048             }, 'Parse::RecDescent::Production' ),
42049             bless( {
42050             'number' => '6',
42051             'strcount' => 0,
42052             'dircount' => 0,
42053             'uncommit' => undef,
42054             'error' => undef,
42055             'patcount' => 0,
42056             'actcount' => 0,
42057             'items' => [
42058             bless( {
42059             'subrule' => 'null_p',
42060             'matchrule' => 0,
42061             'implicit' => undef,
42062             'argcode' => undef,
42063             'lookahead' => 0,
42064             'line' => 622
42065             }, 'Parse::RecDescent::Subrule' )
42066             ],
42067             'line' => 622
42068             }, 'Parse::RecDescent::Production' ),
42069             bless( {
42070             'number' => '7',
42071             'strcount' => 0,
42072             'dircount' => 0,
42073             'uncommit' => undef,
42074             'error' => undef,
42075             'patcount' => 0,
42076             'actcount' => 0,
42077             'items' => [
42078             bless( {
42079             'subrule' => 'type_p',
42080             'matchrule' => 0,
42081             'implicit' => undef,
42082             'argcode' => undef,
42083             'lookahead' => 0,
42084             'line' => 622
42085             }, 'Parse::RecDescent::Subrule' )
42086             ],
42087             'line' => 622
42088             }, 'Parse::RecDescent::Production' )
42089             ],
42090             'name' => 'predicate',
42091             'vars' => '',
42092             'line' => 622
42093             }, 'Parse::RecDescent::Rule' ),
42094             'column_name' => bless( {
42095             'impcount' => 0,
42096             'calls' => [
42097             'NAME'
42098             ],
42099             'changed' => 0,
42100             'opcount' => 0,
42101             'prods' => [
42102             bless( {
42103             'number' => '0',
42104             'strcount' => 0,
42105             'dircount' => 0,
42106             'uncommit' => undef,
42107             'error' => undef,
42108             'patcount' => 0,
42109             'actcount' => 0,
42110             'items' => [
42111             bless( {
42112             'subrule' => 'NAME',
42113             'matchrule' => 0,
42114             'implicit' => undef,
42115             'argcode' => undef,
42116             'lookahead' => 0,
42117             'line' => 134
42118             }, 'Parse::RecDescent::Subrule' )
42119             ],
42120             'line' => undef
42121             }, 'Parse::RecDescent::Production' )
42122             ],
42123             'name' => 'column_name',
42124             'vars' => '',
42125             'line' => 134
42126             }, 'Parse::RecDescent::Rule' ),
42127             'method_invocation' => bless( {
42128             'impcount' => 1,
42129             'calls' => [
42130             'subject_expression',
42131             'method_name',
42132             '_alternation_1_of_production_1_of_rule_method_invocation'
42133             ],
42134             'changed' => 0,
42135             'opcount' => 0,
42136             'prods' => [
42137             bless( {
42138             'number' => '0',
42139             'strcount' => 1,
42140             'dircount' => 0,
42141             'uncommit' => undef,
42142             'error' => undef,
42143             'patcount' => 0,
42144             'actcount' => 0,
42145             'items' => [
42146             bless( {
42147             'subrule' => 'subject_expression',
42148             'matchrule' => 0,
42149             'implicit' => undef,
42150             'argcode' => undef,
42151             'lookahead' => 0,
42152             'line' => 593
42153             }, 'Parse::RecDescent::Subrule' ),
42154             bless( {
42155             'pattern' => '..',
42156             'hashname' => '__STRING1__',
42157             'description' => '\'..\'',
42158             'lookahead' => 0,
42159             'line' => 593
42160             }, 'Parse::RecDescent::Literal' ),
42161             bless( {
42162             'subrule' => 'method_name',
42163             'matchrule' => 0,
42164             'implicit' => undef,
42165             'argcode' => undef,
42166             'lookahead' => 0,
42167             'line' => 593
42168             }, 'Parse::RecDescent::Subrule' ),
42169             bless( {
42170             'subrule' => '_alternation_1_of_production_1_of_rule_method_invocation',
42171             'expected' => '\'(\'',
42172             'min' => 0,
42173             'argcode' => undef,
42174             'max' => 1,
42175             'matchrule' => 0,
42176             'repspec' => '?',
42177             'lookahead' => 0,
42178             'line' => 596
42179             }, 'Parse::RecDescent::Repetition' )
42180             ],
42181             'line' => undef
42182             }, 'Parse::RecDescent::Production' )
42183             ],
42184             'name' => 'method_invocation',
42185             'vars' => '',
42186             'line' => 593
42187             }, 'Parse::RecDescent::Rule' ),
42188             '_alternation_1_of_production_1_of_rule_dereference_operation' => bless( {
42189             'impcount' => 0,
42190             'calls' => [
42191             'expression'
42192             ],
42193             'changed' => 0,
42194             'opcount' => 0,
42195             'prods' => [
42196             bless( {
42197             'number' => '0',
42198             'strcount' => 2,
42199             'dircount' => 0,
42200             'uncommit' => undef,
42201             'error' => undef,
42202             'patcount' => 0,
42203             'actcount' => 0,
42204             'items' => [
42205             bless( {
42206             'pattern' => '(',
42207             'hashname' => '__STRING1__',
42208             'description' => '\'(\'',
42209             'lookahead' => 0,
42210             'line' => 628
42211             }, 'Parse::RecDescent::Literal' ),
42212             bless( {
42213             'subrule' => 'expression',
42214             'expected' => undef,
42215             'min' => 1,
42216             'argcode' => undef,
42217             'max' => 100000000,
42218             'matchrule' => 0,
42219             'repspec' => 's',
42220             'lookahead' => 0,
42221             'line' => 628
42222             }, 'Parse::RecDescent::Repetition' ),
42223             bless( {
42224             'pattern' => ')',
42225             'hashname' => '__STRING2__',
42226             'description' => '\')\'',
42227             'lookahead' => 0,
42228             'line' => 628
42229             }, 'Parse::RecDescent::Literal' )
42230             ],
42231             'line' => undef
42232             }, 'Parse::RecDescent::Production' )
42233             ],
42234             'name' => '_alternation_1_of_production_1_of_rule_dereference_operation',
42235             'vars' => '',
42236             'line' => 628
42237             }, 'Parse::RecDescent::Rule' ),
42238             '_alternation_1_of_production_1_of_rule_searched_when_clause' => bless( {
42239             'impcount' => 1,
42240             'calls' => [
42241             'search_condition',
42242             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause'
42243             ],
42244             'changed' => 0,
42245             'opcount' => 0,
42246             'prods' => [
42247             bless( {
42248             'number' => '0',
42249             'strcount' => 0,
42250             'dircount' => 0,
42251             'uncommit' => undef,
42252             'error' => undef,
42253             'patcount' => 2,
42254             'actcount' => 0,
42255             'items' => [
42256             bless( {
42257             'pattern' => 'WHEN',
42258             'hashname' => '__PATTERN1__',
42259             'description' => '/WHEN/i',
42260             'lookahead' => 0,
42261             'rdelim' => '/',
42262             'line' => 624,
42263             'mod' => 'i',
42264             'ldelim' => '/'
42265             }, 'Parse::RecDescent::Token' ),
42266             bless( {
42267             'subrule' => 'search_condition',
42268             'matchrule' => 0,
42269             'implicit' => undef,
42270             'argcode' => undef,
42271             'lookahead' => 0,
42272             'line' => 624
42273             }, 'Parse::RecDescent::Subrule' ),
42274             bless( {
42275             'pattern' => 'THEN',
42276             'hashname' => '__PATTERN2__',
42277             'description' => '/THEN/i',
42278             'lookahead' => 0,
42279             'rdelim' => '/',
42280             'line' => 624,
42281             'mod' => 'i',
42282             'ldelim' => '/'
42283             }, 'Parse::RecDescent::Token' ),
42284             bless( {
42285             'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause',
42286             'matchrule' => 0,
42287             'implicit' => 'result_expression, or /NULL/i',
42288             'argcode' => undef,
42289             'lookahead' => 0,
42290             'line' => 627
42291             }, 'Parse::RecDescent::Subrule' )
42292             ],
42293             'line' => undef
42294             }, 'Parse::RecDescent::Production' )
42295             ],
42296             'name' => '_alternation_1_of_production_1_of_rule_searched_when_clause',
42297             'vars' => '',
42298             'line' => 624
42299             }, 'Parse::RecDescent::Rule' ),
42300             'group_bound2' => bless( {
42301             'impcount' => 0,
42302             'calls' => [
42303             'unsigned_constant'
42304             ],
42305             'changed' => 0,
42306             'opcount' => 0,
42307             'prods' => [
42308             bless( {
42309             'number' => '0',
42310             'strcount' => 0,
42311             'dircount' => 0,
42312             'uncommit' => undef,
42313             'error' => undef,
42314             'patcount' => 1,
42315             'actcount' => 0,
42316             'items' => [
42317             bless( {
42318             'pattern' => 'UNBOUNDED\\s+PRECEDING',
42319             'hashname' => '__PATTERN1__',
42320             'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
42321             'lookahead' => 0,
42322             'rdelim' => '/',
42323             'line' => 585,
42324             'mod' => 'i',
42325             'ldelim' => '/'
42326             }, 'Parse::RecDescent::Token' )
42327             ],
42328             'line' => undef
42329             }, 'Parse::RecDescent::Production' ),
42330             bless( {
42331             'number' => '1',
42332             'strcount' => 0,
42333             'dircount' => 0,
42334             'uncommit' => undef,
42335             'error' => undef,
42336             'patcount' => 1,
42337             'actcount' => 0,
42338             'items' => [
42339             bless( {
42340             'subrule' => 'unsigned_constant',
42341             'matchrule' => 0,
42342             'implicit' => undef,
42343             'argcode' => undef,
42344             'lookahead' => 0,
42345             'line' => 586
42346             }, 'Parse::RecDescent::Subrule' ),
42347             bless( {
42348             'pattern' => 'PRECEDING',
42349             'hashname' => '__PATTERN1__',
42350             'description' => '/PRECEDING/i',
42351             'lookahead' => 0,
42352             'rdelim' => '/',
42353             'line' => 586,
42354             'mod' => 'i',
42355             'ldelim' => '/'
42356             }, 'Parse::RecDescent::Token' )
42357             ],
42358             'line' => 586
42359             }, 'Parse::RecDescent::Production' ),
42360             bless( {
42361             'number' => '2',
42362             'strcount' => 0,
42363             'dircount' => 0,
42364             'uncommit' => undef,
42365             'error' => undef,
42366             'patcount' => 1,
42367             'actcount' => 0,
42368             'items' => [
42369             bless( {
42370             'subrule' => 'unsigned_constant',
42371             'matchrule' => 0,
42372             'implicit' => undef,
42373             'argcode' => undef,
42374             'lookahead' => 0,
42375             'line' => 587
42376             }, 'Parse::RecDescent::Subrule' ),
42377             bless( {
42378             'pattern' => 'FOLLOWING',
42379             'hashname' => '__PATTERN1__',
42380             'description' => '/FOLLOWING/i',
42381             'lookahead' => 0,
42382             'rdelim' => '/',
42383             'line' => 587,
42384             'mod' => 'i',
42385             'ldelim' => '/'
42386             }, 'Parse::RecDescent::Token' )
42387             ],
42388             'line' => 587
42389             }, 'Parse::RecDescent::Production' ),
42390             bless( {
42391             'number' => '3',
42392             'strcount' => 0,
42393             'dircount' => 0,
42394             'uncommit' => undef,
42395             'error' => undef,
42396             'patcount' => 1,
42397             'actcount' => 0,
42398             'items' => [
42399             bless( {
42400             'pattern' => 'CURRENT\\s+ROW',
42401             'hashname' => '__PATTERN1__',
42402             'description' => '/CURRENT\\\\s+ROW/i',
42403             'lookahead' => 0,
42404             'rdelim' => '/',
42405             'line' => 588,
42406             'mod' => 'i',
42407             'ldelim' => '/'
42408             }, 'Parse::RecDescent::Token' )
42409             ],
42410             'line' => 588
42411             }, 'Parse::RecDescent::Production' )
42412             ],
42413             'name' => 'group_bound2',
42414             'vars' => '',
42415             'line' => 585
42416             }, 'Parse::RecDescent::Rule' ),
42417             'searched_when_clause' => bless( {
42418             'impcount' => 1,
42419             'calls' => [
42420             '_alternation_1_of_production_1_of_rule_searched_when_clause'
42421             ],
42422             'changed' => 0,
42423             'opcount' => 0,
42424             'prods' => [
42425             bless( {
42426             'number' => '0',
42427             'strcount' => 0,
42428             'dircount' => 0,
42429             'uncommit' => undef,
42430             'error' => undef,
42431             'patcount' => 0,
42432             'actcount' => 0,
42433             'items' => [
42434             bless( {
42435             'subrule' => '_alternation_1_of_production_1_of_rule_searched_when_clause',
42436             'expected' => '/WHEN/i',
42437             'min' => 1,
42438             'argcode' => undef,
42439             'max' => 100000000,
42440             'matchrule' => 0,
42441             'repspec' => 's',
42442             'lookahead' => 0,
42443             'line' => 507
42444             }, 'Parse::RecDescent::Repetition' )
42445             ],
42446             'line' => undef
42447             }, 'Parse::RecDescent::Production' )
42448             ],
42449             'name' => 'searched_when_clause',
42450             'vars' => '',
42451             'line' => 503
42452             }, 'Parse::RecDescent::Rule' ),
42453             'basic_p' => bless( {
42454             'impcount' => 0,
42455             'calls' => [
42456             'expression'
42457             ],
42458             'changed' => 0,
42459             'opcount' => 0,
42460             'prods' => [
42461             bless( {
42462             'number' => '0',
42463             'strcount' => 0,
42464             'dircount' => 0,
42465             'uncommit' => undef,
42466             'error' => undef,
42467             'patcount' => 1,
42468             'actcount' => 0,
42469             'items' => [
42470             bless( {
42471             'subrule' => 'expression',
42472             'matchrule' => 0,
42473             'implicit' => undef,
42474             'argcode' => undef,
42475             'lookahead' => 0,
42476             'line' => 624
42477             }, 'Parse::RecDescent::Subrule' ),
42478             bless( {
42479             'pattern' => '(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)',
42480             'hashname' => '__PATTERN1__',
42481             'description' => '/(=|<>|<|>|<=|=>|\\\\^=|\\\\^<|\\\\^>|\\\\!=)/',
42482             'lookahead' => 0,
42483             'rdelim' => '/',
42484             'line' => 624,
42485             'mod' => '',
42486             'ldelim' => '/'
42487             }, 'Parse::RecDescent::Token' ),
42488             bless( {
42489             'subrule' => 'expression',
42490             'matchrule' => 0,
42491             'implicit' => undef,
42492             'argcode' => undef,
42493             'lookahead' => 0,
42494             'line' => 624
42495             }, 'Parse::RecDescent::Subrule' )
42496             ],
42497             'line' => undef
42498             }, 'Parse::RecDescent::Production' )
42499             ],
42500             'name' => 'basic_p',
42501             'vars' => '',
42502             'line' => 624
42503             }, 'Parse::RecDescent::Rule' ),
42504             'asc_option' => bless( {
42505             'impcount' => 1,
42506             'calls' => [
42507             '_alternation_1_of_production_1_of_rule_asc_option'
42508             ],
42509             'changed' => 0,
42510             'opcount' => 0,
42511             'prods' => [
42512             bless( {
42513             'number' => '0',
42514             'strcount' => 0,
42515             'dircount' => 0,
42516             'uncommit' => undef,
42517             'error' => undef,
42518             'patcount' => 1,
42519             'actcount' => 0,
42520             'items' => [
42521             bless( {
42522             'pattern' => 'ASC',
42523             'hashname' => '__PATTERN1__',
42524             'description' => '/ASC/i',
42525             'lookahead' => 0,
42526             'rdelim' => '/',
42527             'line' => 562,
42528             'mod' => 'i',
42529             'ldelim' => '/'
42530             }, 'Parse::RecDescent::Token' ),
42531             bless( {
42532             'subrule' => '_alternation_1_of_production_1_of_rule_asc_option',
42533             'expected' => '/NULLS\\\\s+FIRST/i, or /NULLS\\\\s+LAST/i',
42534             'min' => 0,
42535             'argcode' => undef,
42536             'max' => 1,
42537             'matchrule' => 0,
42538             'repspec' => '?',
42539             'lookahead' => 0,
42540             'line' => 562
42541             }, 'Parse::RecDescent::Repetition' )
42542             ],
42543             'line' => undef
42544             }, 'Parse::RecDescent::Production' )
42545             ],
42546             'name' => 'asc_option',
42547             'vars' => '',
42548             'line' => 562
42549             }, 'Parse::RecDescent::Rule' ),
42550             'search_condition' => bless( {
42551             'impcount' => 1,
42552             'calls' => [
42553             '_alternation_1_of_production_2_of_rule_search_condition',
42554             'cond'
42555             ],
42556             'changed' => 0,
42557             'opcount' => 0,
42558             'prods' => [
42559             bless( {
42560             'number' => '0',
42561             'strcount' => 0,
42562             'dircount' => 0,
42563             'uncommit' => undef,
42564             'error' => undef,
42565             'patcount' => 1,
42566             'actcount' => 0,
42567             'items' => [
42568             bless( {
42569             'pattern' => '[^)]+',
42570             'hashname' => '__PATTERN1__',
42571             'description' => '/[^)]+/',
42572             'lookahead' => 0,
42573             'rdelim' => '/',
42574             'line' => 297,
42575             'mod' => '',
42576             'ldelim' => '/'
42577             }, 'Parse::RecDescent::Token' )
42578             ],
42579             'line' => undef
42580             }, 'Parse::RecDescent::Production' ),
42581             bless( {
42582             'number' => '1',
42583             'strcount' => 0,
42584             'dircount' => 0,
42585             'uncommit' => undef,
42586             'error' => undef,
42587             'patcount' => 1,
42588             'actcount' => 0,
42589             'items' => [
42590             bless( {
42591             'pattern' => 'NOT|',
42592             'hashname' => '__PATTERN1__',
42593             'description' => '/NOT|/i',
42594             'lookahead' => 0,
42595             'rdelim' => '/',
42596             'line' => 618,
42597             'mod' => 'i',
42598             'ldelim' => '/'
42599             }, 'Parse::RecDescent::Token' ),
42600             bless( {
42601             'subrule' => '_alternation_1_of_production_2_of_rule_search_condition',
42602             'matchrule' => 0,
42603             'implicit' => 'predicate, or \'(\'',
42604             'argcode' => undef,
42605             'lookahead' => 0,
42606             'line' => 618
42607             }, 'Parse::RecDescent::Subrule' ),
42608             bless( {
42609             'subrule' => 'cond',
42610             'expected' => undef,
42611             'min' => 0,
42612             'argcode' => undef,
42613             'max' => 100000000,
42614             'matchrule' => 0,
42615             'repspec' => 's?',
42616             'lookahead' => 0,
42617             'line' => 618
42618             }, 'Parse::RecDescent::Repetition' )
42619             ],
42620             'line' => undef
42621             }, 'Parse::RecDescent::Production' )
42622             ],
42623             'name' => 'search_condition',
42624             'vars' => '',
42625             'line' => 296
42626             }, 'Parse::RecDescent::Rule' ),
42627             '_alternation_1_of_production_1_of_rule_operator' => bless( {
42628             'impcount' => 0,
42629             'calls' => [],
42630             'changed' => 0,
42631             'opcount' => 0,
42632             'prods' => [
42633             bless( {
42634             'number' => '0',
42635             'strcount' => 0,
42636             'dircount' => 0,
42637             'uncommit' => undef,
42638             'error' => undef,
42639             'patcount' => 1,
42640             'actcount' => 0,
42641             'items' => [
42642             bless( {
42643             'pattern' => 'CONCAT',
42644             'hashname' => '__PATTERN1__',
42645             'description' => '/CONCAT/i',
42646             'lookahead' => 0,
42647             'rdelim' => '/',
42648             'line' => 628,
42649             'mod' => 'i',
42650             'ldelim' => '/'
42651             }, 'Parse::RecDescent::Token' )
42652             ],
42653             'line' => undef
42654             }, 'Parse::RecDescent::Production' ),
42655             bless( {
42656             'number' => '1',
42657             'strcount' => 1,
42658             'dircount' => 0,
42659             'uncommit' => undef,
42660             'error' => undef,
42661             'patcount' => 0,
42662             'actcount' => 0,
42663             'items' => [
42664             bless( {
42665             'pattern' => '||',
42666             'hashname' => '__STRING1__',
42667             'description' => '\'||\'',
42668             'lookahead' => 0,
42669             'line' => 628
42670             }, 'Parse::RecDescent::Literal' )
42671             ],
42672             'line' => 628
42673             }, 'Parse::RecDescent::Production' )
42674             ],
42675             'name' => '_alternation_1_of_production_1_of_rule_operator',
42676             'vars' => '',
42677             'line' => 628
42678             }, 'Parse::RecDescent::Rule' ),
42679             'simple_when_clause' => bless( {
42680             'impcount' => 1,
42681             'calls' => [
42682             'expression',
42683             '_alternation_1_of_production_1_of_rule_simple_when_clause'
42684             ],
42685             'changed' => 0,
42686             'opcount' => 0,
42687             'prods' => [
42688             bless( {
42689             'number' => '0',
42690             'strcount' => 0,
42691             'dircount' => 0,
42692             'uncommit' => undef,
42693             'error' => undef,
42694             'patcount' => 0,
42695             'actcount' => 0,
42696             'items' => [
42697             bless( {
42698             'subrule' => 'expression',
42699             'matchrule' => 0,
42700             'implicit' => undef,
42701             'argcode' => undef,
42702             'lookahead' => 0,
42703             'line' => 509
42704             }, 'Parse::RecDescent::Subrule' ),
42705             bless( {
42706             'subrule' => '_alternation_1_of_production_1_of_rule_simple_when_clause',
42707             'expected' => '/WHEN/i',
42708             'min' => 1,
42709             'argcode' => undef,
42710             'max' => 100000000,
42711             'matchrule' => 0,
42712             'repspec' => 's',
42713             'lookahead' => 0,
42714             'line' => 513
42715             }, 'Parse::RecDescent::Repetition' )
42716             ],
42717             'line' => undef
42718             }, 'Parse::RecDescent::Production' )
42719             ],
42720             'name' => 'simple_when_clause',
42721             'vars' => '',
42722             'line' => 509
42723             }, 'Parse::RecDescent::Rule' ),
42724             'INNER' => bless( {
42725             'impcount' => 0,
42726             'calls' => [],
42727             'changed' => 0,
42728             'opcount' => 0,
42729             'prods' => [
42730             bless( {
42731             'number' => '0',
42732             'strcount' => 0,
42733             'dircount' => 0,
42734             'uncommit' => undef,
42735             'error' => undef,
42736             'patcount' => 1,
42737             'actcount' => 0,
42738             'items' => [
42739             bless( {
42740             'pattern' => 'inner',
42741             'hashname' => '__PATTERN1__',
42742             'description' => '/inner/i',
42743             'lookahead' => 0,
42744             'rdelim' => '/',
42745             'line' => 107,
42746             'mod' => 'i',
42747             'ldelim' => '/'
42748             }, 'Parse::RecDescent::Token' )
42749             ],
42750             'line' => undef
42751             }, 'Parse::RecDescent::Production' )
42752             ],
42753             'name' => 'INNER',
42754             'vars' => '',
42755             'line' => 107
42756             }, 'Parse::RecDescent::Rule' ),
42757             'eofile' => bless( {
42758             'impcount' => 0,
42759             'calls' => [],
42760             'changed' => 0,
42761             'opcount' => 0,
42762             'prods' => [
42763             bless( {
42764             'number' => '0',
42765             'strcount' => 0,
42766             'dircount' => 0,
42767             'uncommit' => undef,
42768             'error' => undef,
42769             'patcount' => 1,
42770             'actcount' => 0,
42771             'items' => [
42772             bless( {
42773             'pattern' => '^\\Z',
42774             'hashname' => '__PATTERN1__',
42775             'description' => '/^\\\\Z/',
42776             'lookahead' => 0,
42777             'rdelim' => '/',
42778             'line' => 20,
42779             'mod' => '',
42780             'ldelim' => '/'
42781             }, 'Parse::RecDescent::Token' )
42782             ],
42783             'line' => undef
42784             }, 'Parse::RecDescent::Production' )
42785             ],
42786             'name' => 'eofile',
42787             'vars' => '',
42788             'line' => 20
42789             }, 'Parse::RecDescent::Rule' ),
42790             'cond' => bless( {
42791             'impcount' => 2,
42792             'calls' => [
42793             '_alternation_1_of_production_1_of_rule_cond',
42794             '_alternation_2_of_production_1_of_rule_cond'
42795             ],
42796             'changed' => 0,
42797             'opcount' => 0,
42798             'prods' => [
42799             bless( {
42800             'number' => '0',
42801             'strcount' => 0,
42802             'dircount' => 0,
42803             'uncommit' => undef,
42804             'error' => undef,
42805             'patcount' => 1,
42806             'actcount' => 0,
42807             'items' => [
42808             bless( {
42809             'subrule' => '_alternation_1_of_production_1_of_rule_cond',
42810             'matchrule' => 0,
42811             'implicit' => '/AND/i, or /OR/i',
42812             'argcode' => undef,
42813             'lookahead' => 0,
42814             'line' => 620
42815             }, 'Parse::RecDescent::Subrule' ),
42816             bless( {
42817             'pattern' => 'NOT|',
42818             'hashname' => '__PATTERN1__',
42819             'description' => '/NOT|/i',
42820             'lookahead' => 0,
42821             'rdelim' => '/',
42822             'line' => 620,
42823             'mod' => 'i',
42824             'ldelim' => '/'
42825             }, 'Parse::RecDescent::Token' ),
42826             bless( {
42827             'subrule' => '_alternation_2_of_production_1_of_rule_cond',
42828             'matchrule' => 0,
42829             'implicit' => 'predicate, or \'(\'',
42830             'argcode' => undef,
42831             'lookahead' => 0,
42832             'line' => 620
42833             }, 'Parse::RecDescent::Subrule' )
42834             ],
42835             'line' => undef
42836             }, 'Parse::RecDescent::Production' )
42837             ],
42838             'name' => 'cond',
42839             'vars' => '',
42840             'line' => 620
42841             }, 'Parse::RecDescent::Rule' ),
42842             'ld_type' => bless( {
42843             'impcount' => 0,
42844             'calls' => [
42845             'function',
42846             'expression',
42847             'constant',
42848             'column_name',
42849             'host_variable'
42850             ],
42851             'changed' => 0,
42852             'opcount' => 0,
42853             'prods' => [
42854             bless( {
42855             'number' => '0',
42856             'strcount' => 0,
42857             'dircount' => 0,
42858             'uncommit' => undef,
42859             'error' => undef,
42860             'patcount' => 0,
42861             'actcount' => 0,
42862             'items' => [
42863             bless( {
42864             'subrule' => 'function',
42865             'matchrule' => 0,
42866             'implicit' => undef,
42867             'argcode' => undef,
42868             'lookahead' => 0,
42869             'line' => 482
42870             }, 'Parse::RecDescent::Subrule' )
42871             ],
42872             'line' => undef
42873             }, 'Parse::RecDescent::Production' ),
42874             bless( {
42875             'number' => '1',
42876             'strcount' => 2,
42877             'dircount' => 0,
42878             'uncommit' => undef,
42879             'error' => undef,
42880             'patcount' => 0,
42881             'actcount' => 0,
42882             'items' => [
42883             bless( {
42884             'pattern' => '(',
42885             'hashname' => '__STRING1__',
42886             'description' => '\'(\'',
42887             'lookahead' => 0,
42888             'line' => 483
42889             }, 'Parse::RecDescent::Literal' ),
42890             bless( {
42891             'subrule' => 'expression',
42892             'matchrule' => 0,
42893             'implicit' => undef,
42894             'argcode' => undef,
42895             'lookahead' => 0,
42896             'line' => 483
42897             }, 'Parse::RecDescent::Subrule' ),
42898             bless( {
42899             'pattern' => ')',
42900             'hashname' => '__STRING2__',
42901             'description' => '\')\'',
42902             'lookahead' => 0,
42903             'line' => 483
42904             }, 'Parse::RecDescent::Literal' )
42905             ],
42906             'line' => 483
42907             }, 'Parse::RecDescent::Production' ),
42908             bless( {
42909             'number' => '2',
42910             'strcount' => 0,
42911             'dircount' => 0,
42912             'uncommit' => undef,
42913             'error' => undef,
42914             'patcount' => 0,
42915             'actcount' => 0,
42916             'items' => [
42917             bless( {
42918             'subrule' => 'constant',
42919             'matchrule' => 0,
42920             'implicit' => undef,
42921             'argcode' => undef,
42922             'lookahead' => 0,
42923             'line' => 484
42924             }, 'Parse::RecDescent::Subrule' )
42925             ],
42926             'line' => 484
42927             }, 'Parse::RecDescent::Production' ),
42928             bless( {
42929             'number' => '3',
42930             'strcount' => 0,
42931             'dircount' => 0,
42932             'uncommit' => undef,
42933             'error' => undef,
42934             'patcount' => 0,
42935             'actcount' => 0,
42936             'items' => [
42937             bless( {
42938             'subrule' => 'column_name',
42939             'matchrule' => 0,
42940             'implicit' => undef,
42941             'argcode' => undef,
42942             'lookahead' => 0,
42943             'line' => 485
42944             }, 'Parse::RecDescent::Subrule' )
42945             ],
42946             'line' => 485
42947             }, 'Parse::RecDescent::Production' ),
42948             bless( {
42949             'number' => '4',
42950             'strcount' => 0,
42951             'dircount' => 0,
42952             'uncommit' => undef,
42953             'error' => undef,
42954             'patcount' => 0,
42955             'actcount' => 0,
42956             'items' => [
42957             bless( {
42958             'subrule' => 'host_variable',
42959             'matchrule' => 0,
42960             'implicit' => undef,
42961             'argcode' => undef,
42962             'lookahead' => 0,
42963             'line' => 486
42964             }, 'Parse::RecDescent::Subrule' )
42965             ],
42966             'line' => 486
42967             }, 'Parse::RecDescent::Production' )
42968             ],
42969             'name' => 'ld_type',
42970             'vars' => '',
42971             'line' => 482
42972             }, 'Parse::RecDescent::Rule' ),
42973             'RIGHT' => bless( {
42974             'impcount' => 0,
42975             'calls' => [],
42976             'changed' => 0,
42977             'opcount' => 0,
42978             'prods' => [
42979             bless( {
42980             'number' => '0',
42981             'strcount' => 0,
42982             'dircount' => 0,
42983             'uncommit' => undef,
42984             'error' => undef,
42985             'patcount' => 1,
42986             'actcount' => 0,
42987             'items' => [
42988             bless( {
42989             'pattern' => 'right',
42990             'hashname' => '__PATTERN1__',
42991             'description' => '/right/i',
42992             'lookahead' => 0,
42993             'rdelim' => '/',
42994             'line' => 111,
42995             'mod' => 'i',
42996             'ldelim' => '/'
42997             }, 'Parse::RecDescent::Token' )
42998             ],
42999             'line' => undef
43000             }, 'Parse::RecDescent::Production' )
43001             ],
43002             'name' => 'RIGHT',
43003             'vars' => '',
43004             'line' => 111
43005             }, 'Parse::RecDescent::Rule' ),
43006             '_alternation_1_of_production_1_of_rule_method_invocation' => bless( {
43007             'impcount' => 0,
43008             'calls' => [
43009             'expression'
43010             ],
43011             'changed' => 0,
43012             'opcount' => 0,
43013             'prods' => [
43014             bless( {
43015             'number' => '0',
43016             'strcount' => 2,
43017             'dircount' => 0,
43018             'uncommit' => undef,
43019             'error' => undef,
43020             'patcount' => 0,
43021             'actcount' => 0,
43022             'items' => [
43023             bless( {
43024             'pattern' => '(',
43025             'hashname' => '__STRING1__',
43026             'description' => '\'(\'',
43027             'lookahead' => 0,
43028             'line' => 626
43029             }, 'Parse::RecDescent::Literal' ),
43030             bless( {
43031             'subrule' => 'expression',
43032             'expected' => undef,
43033             'min' => 1,
43034             'argcode' => undef,
43035             'max' => 100000000,
43036             'matchrule' => 0,
43037             'repspec' => 's',
43038             'lookahead' => 0,
43039             'line' => 626
43040             }, 'Parse::RecDescent::Repetition' ),
43041             bless( {
43042             'pattern' => ')',
43043             'hashname' => '__STRING2__',
43044             'description' => '\')\'',
43045             'lookahead' => 0,
43046             'line' => 626
43047             }, 'Parse::RecDescent::Literal' )
43048             ],
43049             'line' => undef
43050             }, 'Parse::RecDescent::Production' )
43051             ],
43052             'name' => '_alternation_1_of_production_1_of_rule_method_invocation',
43053             'vars' => '',
43054             'line' => 626
43055             }, 'Parse::RecDescent::Rule' ),
43056             'LEFT' => bless( {
43057             'impcount' => 0,
43058             'calls' => [],
43059             'changed' => 0,
43060             'opcount' => 0,
43061             'prods' => [
43062             bless( {
43063             'number' => '0',
43064             'strcount' => 0,
43065             'dircount' => 0,
43066             'uncommit' => undef,
43067             'error' => undef,
43068             'patcount' => 1,
43069             'actcount' => 0,
43070             'items' => [
43071             bless( {
43072             'pattern' => 'left',
43073             'hashname' => '__PATTERN1__',
43074             'description' => '/left/i',
43075             'lookahead' => 0,
43076             'rdelim' => '/',
43077             'line' => 109,
43078             'mod' => 'i',
43079             'ldelim' => '/'
43080             }, 'Parse::RecDescent::Token' )
43081             ],
43082             'line' => undef
43083             }, 'Parse::RecDescent::Production' )
43084             ],
43085             'name' => 'LEFT',
43086             'vars' => '',
43087             'line' => 109
43088             }, 'Parse::RecDescent::Rule' ),
43089             'table_name' => bless( {
43090             'impcount' => 0,
43091             'calls' => [
43092             'SCHEMA',
43093             'NAME'
43094             ],
43095             'changed' => 0,
43096             'opcount' => 0,
43097             'prods' => [
43098             bless( {
43099             'number' => '0',
43100             'strcount' => 1,
43101             'dircount' => 0,
43102             'uncommit' => undef,
43103             'error' => undef,
43104             'patcount' => 0,
43105             'actcount' => 1,
43106             'items' => [
43107             bless( {
43108             'subrule' => 'SCHEMA',
43109             'matchrule' => 0,
43110             'implicit' => undef,
43111             'argcode' => undef,
43112             'lookahead' => 0,
43113             'line' => 124
43114             }, 'Parse::RecDescent::Subrule' ),
43115             bless( {
43116             'pattern' => '.',
43117             'hashname' => '__STRING1__',
43118             'description' => '\'.\'',
43119             'lookahead' => 0,
43120             'line' => 124
43121             }, 'Parse::RecDescent::Literal' ),
43122             bless( {
43123             'subrule' => 'NAME',
43124             'matchrule' => 0,
43125             'implicit' => undef,
43126             'argcode' => undef,
43127             'lookahead' => 0,
43128             'line' => 124
43129             }, 'Parse::RecDescent::Subrule' ),
43130             bless( {
43131             'hashname' => '__ACTION1__',
43132             'lookahead' => 0,
43133             'line' => 125,
43134             'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
43135             }, 'Parse::RecDescent::Action' )
43136             ],
43137             'line' => undef
43138             }, 'Parse::RecDescent::Production' ),
43139             bless( {
43140             'number' => '1',
43141             'strcount' => 0,
43142             'dircount' => 0,
43143             'uncommit' => undef,
43144             'error' => undef,
43145             'patcount' => 0,
43146             'actcount' => 1,
43147             'items' => [
43148             bless( {
43149             'subrule' => 'NAME',
43150             'matchrule' => 0,
43151             'implicit' => undef,
43152             'argcode' => undef,
43153             'lookahead' => 0,
43154             'line' => 126
43155             }, 'Parse::RecDescent::Subrule' ),
43156             bless( {
43157             'hashname' => '__ACTION1__',
43158             'lookahead' => 0,
43159             'line' => 127,
43160             'code' => '{ $return = { name => $item[1] } }'
43161             }, 'Parse::RecDescent::Action' )
43162             ],
43163             'line' => 126
43164             }, 'Parse::RecDescent::Production' )
43165             ],
43166             'name' => 'table_name',
43167             'vars' => '',
43168             'line' => 124
43169             }, 'Parse::RecDescent::Rule' ),
43170             '_alternation_1_of_production_53_of_rule_sysfun' => bless( {
43171             'impcount' => 0,
43172             'calls' => [],
43173             'changed' => 0,
43174             'opcount' => 0,
43175             'prods' => [
43176             bless( {
43177             'number' => '0',
43178             'strcount' => 0,
43179             'dircount' => 0,
43180             'uncommit' => undef,
43181             'error' => undef,
43182             'patcount' => 1,
43183             'actcount' => 0,
43184             'items' => [
43185             bless( {
43186             'pattern' => 'TRUNCATE',
43187             'hashname' => '__PATTERN1__',
43188             'description' => '/TRUNCATE/i',
43189             'lookahead' => 0,
43190             'rdelim' => '/',
43191             'line' => 628,
43192             'mod' => 'i',
43193             'ldelim' => '/'
43194             }, 'Parse::RecDescent::Token' )
43195             ],
43196             'line' => undef
43197             }, 'Parse::RecDescent::Production' ),
43198             bless( {
43199             'number' => '1',
43200             'strcount' => 0,
43201             'dircount' => 0,
43202             'uncommit' => undef,
43203             'error' => undef,
43204             'patcount' => 1,
43205             'actcount' => 0,
43206             'items' => [
43207             bless( {
43208             'pattern' => 'TRUNC',
43209             'hashname' => '__PATTERN1__',
43210             'description' => '/TRUNC/i',
43211             'lookahead' => 0,
43212             'rdelim' => '/',
43213             'line' => 628,
43214             'mod' => 'i',
43215             'ldelim' => '/'
43216             }, 'Parse::RecDescent::Token' )
43217             ],
43218             'line' => 628
43219             }, 'Parse::RecDescent::Production' )
43220             ],
43221             'name' => '_alternation_1_of_production_53_of_rule_sysfun',
43222             'vars' => '',
43223             'line' => 628
43224             }, 'Parse::RecDescent::Rule' ),
43225             'options' => bless( {
43226             'impcount' => 1,
43227             'calls' => [
43228             '_alternation_1_of_production_1_of_rule_options'
43229             ],
43230             'changed' => 0,
43231             'opcount' => 0,
43232             'prods' => [
43233             bless( {
43234             'number' => '0',
43235             'strcount' => 0,
43236             'dircount' => 0,
43237             'uncommit' => undef,
43238             'error' => undef,
43239             'patcount' => 2,
43240             'actcount' => 0,
43241             'items' => [
43242             bless( {
43243             'pattern' => 'WITH',
43244             'hashname' => '__PATTERN1__',
43245             'description' => '/WITH/i',
43246             'lookahead' => 0,
43247             'rdelim' => '/',
43248             'line' => 150,
43249             'mod' => 'i',
43250             'ldelim' => '/'
43251             }, 'Parse::RecDescent::Token' ),
43252             bless( {
43253             'subrule' => '_alternation_1_of_production_1_of_rule_options',
43254             'matchrule' => 0,
43255             'implicit' => '/CASCADED/i, or /LOCAL/i',
43256             'argcode' => undef,
43257             'lookahead' => 0,
43258             'line' => 150
43259             }, 'Parse::RecDescent::Subrule' ),
43260             bless( {
43261             'pattern' => 'CHECK\\s+OPTION',
43262             'hashname' => '__PATTERN2__',
43263             'description' => '/CHECK\\\\s+OPTION/i',
43264             'lookahead' => 0,
43265             'rdelim' => '/',
43266             'line' => 150,
43267             'mod' => 'i',
43268             'ldelim' => '/'
43269             }, 'Parse::RecDescent::Token' )
43270             ],
43271             'line' => undef
43272             }, 'Parse::RecDescent::Production' )
43273             ],
43274             'name' => 'options',
43275             'vars' => '',
43276             'line' => 150
43277             }, 'Parse::RecDescent::Rule' ),
43278             'function' => bless( {
43279             'impcount' => 1,
43280             'calls' => [
43281             '_alternation_1_of_production_1_of_rule_function',
43282             'func_args'
43283             ],
43284             'changed' => 0,
43285             'opcount' => 0,
43286             'prods' => [
43287             bless( {
43288             'number' => '0',
43289             'strcount' => 2,
43290             'dircount' => 1,
43291             'uncommit' => undef,
43292             'error' => undef,
43293             'patcount' => 1,
43294             'actcount' => 0,
43295             'op' => [],
43296             'items' => [
43297             bless( {
43298             'subrule' => '_alternation_1_of_production_1_of_rule_function',
43299             'matchrule' => 0,
43300             'implicit' => '/SYSIBM\\\\.|/i, or /SYSFUN\\\\.|/i, or userdefined_function',
43301             'argcode' => undef,
43302             'lookahead' => 0,
43303             'line' => 326
43304             }, 'Parse::RecDescent::Subrule' ),
43305             bless( {
43306             'pattern' => '(',
43307             'hashname' => '__STRING1__',
43308             'description' => '\'(\'',
43309             'lookahead' => 0,
43310             'line' => 326
43311             }, 'Parse::RecDescent::Literal' ),
43312             bless( {
43313             'expected' => '',
43314             'min' => 1,
43315             'name' => '\'func_args(s)\'',
43316             'max' => 100000000,
43317             'leftarg' => bless( {
43318             'subrule' => 'func_args',
43319             'matchrule' => 0,
43320             'implicit' => undef,
43321             'argcode' => undef,
43322             'lookahead' => 0,
43323             'line' => 326
43324             }, 'Parse::RecDescent::Subrule' ),
43325             'rightarg' => bless( {
43326             'subrule' => 'func_args',
43327             'matchrule' => 0,
43328             'implicit' => undef,
43329             'argcode' => undef,
43330             'lookahead' => 0,
43331             'line' => 326
43332             }, 'Parse::RecDescent::Subrule' ),
43333             'hashname' => '__DIRECTIVE1__',
43334             'type' => 'leftop',
43335             'op' => bless( {
43336             'pattern' => ',',
43337             'hashname' => '__PATTERN1__',
43338             'description' => '/,/',
43339             'lookahead' => 0,
43340             'rdelim' => '/',
43341             'line' => 326,
43342             'mod' => '',
43343             'ldelim' => '/'
43344             }, 'Parse::RecDescent::Token' )
43345             }, 'Parse::RecDescent::Operator' ),
43346             bless( {
43347             'pattern' => ')',
43348             'hashname' => '__STRING2__',
43349             'description' => '\')\'',
43350             'lookahead' => 0,
43351             'line' => 326
43352             }, 'Parse::RecDescent::Literal' )
43353             ],
43354             'line' => undef
43355             }, 'Parse::RecDescent::Production' )
43356             ],
43357             'name' => 'function',
43358             'vars' => '',
43359             'line' => 323
43360             }, 'Parse::RecDescent::Rule' ),
43361             '_alternation_1_of_production_41_of_rule_sysibm_function' => bless( {
43362             'impcount' => 0,
43363             'calls' => [],
43364             'changed' => 0,
43365             'opcount' => 0,
43366             'prods' => [
43367             bless( {
43368             'number' => '0',
43369             'strcount' => 0,
43370             'dircount' => 0,
43371             'uncommit' => undef,
43372             'error' => undef,
43373             'patcount' => 1,
43374             'actcount' => 0,
43375             'items' => [
43376             bless( {
43377             'pattern' => 'INTEGER',
43378             'hashname' => '__PATTERN1__',
43379             'description' => '/INTEGER/i',
43380             'lookahead' => 0,
43381             'rdelim' => '/',
43382             'line' => 628,
43383             'mod' => 'i',
43384             'ldelim' => '/'
43385             }, 'Parse::RecDescent::Token' )
43386             ],
43387             'line' => undef
43388             }, 'Parse::RecDescent::Production' ),
43389             bless( {
43390             'number' => '1',
43391             'strcount' => 0,
43392             'dircount' => 0,
43393             'uncommit' => undef,
43394             'error' => undef,
43395             'patcount' => 1,
43396             'actcount' => 0,
43397             'items' => [
43398             bless( {
43399             'pattern' => 'INT',
43400             'hashname' => '__PATTERN1__',
43401             'description' => '/INT/',
43402             'lookahead' => 0,
43403             'rdelim' => '/',
43404             'line' => 628,
43405             'mod' => '',
43406             'ldelim' => '/'
43407             }, 'Parse::RecDescent::Token' )
43408             ],
43409             'line' => 628
43410             }, 'Parse::RecDescent::Production' )
43411             ],
43412             'name' => '_alternation_1_of_production_41_of_rule_sysibm_function',
43413             'vars' => '',
43414             'line' => 628
43415             }, 'Parse::RecDescent::Rule' ),
43416             '_alternation_1_of_production_1_of_rule_case_expression' => bless( {
43417             'impcount' => 0,
43418             'calls' => [
43419             'searched_when_clause',
43420             'simple_when_clause'
43421             ],
43422             'changed' => 0,
43423             'opcount' => 0,
43424             'prods' => [
43425             bless( {
43426             'number' => '0',
43427             'strcount' => 0,
43428             'dircount' => 0,
43429             'uncommit' => undef,
43430             'error' => undef,
43431             'patcount' => 0,
43432             'actcount' => 0,
43433             'items' => [
43434             bless( {
43435             'subrule' => 'searched_when_clause',
43436             'matchrule' => 0,
43437             'implicit' => undef,
43438             'argcode' => undef,
43439             'lookahead' => 0,
43440             'line' => 626
43441             }, 'Parse::RecDescent::Subrule' )
43442             ],
43443             'line' => undef
43444             }, 'Parse::RecDescent::Production' ),
43445             bless( {
43446             'number' => '1',
43447             'strcount' => 0,
43448             'dircount' => 0,
43449             'uncommit' => undef,
43450             'error' => undef,
43451             'patcount' => 0,
43452             'actcount' => 0,
43453             'items' => [
43454             bless( {
43455             'subrule' => 'simple_when_clause',
43456             'matchrule' => 0,
43457             'implicit' => undef,
43458             'argcode' => undef,
43459             'lookahead' => 0,
43460             'line' => 627
43461             }, 'Parse::RecDescent::Subrule' )
43462             ],
43463             'line' => 627
43464             }, 'Parse::RecDescent::Production' )
43465             ],
43466             'name' => '_alternation_1_of_production_1_of_rule_case_expression',
43467             'vars' => '',
43468             'line' => 626
43469             }, 'Parse::RecDescent::Rule' ),
43470             '_alternation_1_of_production_1_of_rule_window_order_clause' => bless( {
43471             'impcount' => 1,
43472             'calls' => [
43473             'sort_key_expression',
43474             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause'
43475             ],
43476             'changed' => 0,
43477             'opcount' => 0,
43478             'prods' => [
43479             bless( {
43480             'number' => '0',
43481             'strcount' => 0,
43482             'dircount' => 0,
43483             'uncommit' => undef,
43484             'error' => undef,
43485             'patcount' => 0,
43486             'actcount' => 0,
43487             'items' => [
43488             bless( {
43489             'subrule' => 'sort_key_expression',
43490             'matchrule' => 0,
43491             'implicit' => undef,
43492             'argcode' => undef,
43493             'lookahead' => 0,
43494             'line' => 624
43495             }, 'Parse::RecDescent::Subrule' ),
43496             bless( {
43497             'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause',
43498             'expected' => 'asc_option, or desc_option',
43499             'min' => 0,
43500             'argcode' => undef,
43501             'max' => 1,
43502             'matchrule' => 0,
43503             'repspec' => '?',
43504             'lookahead' => 0,
43505             'line' => 627
43506             }, 'Parse::RecDescent::Repetition' )
43507             ],
43508             'line' => undef
43509             }, 'Parse::RecDescent::Production' )
43510             ],
43511             'name' => '_alternation_1_of_production_1_of_rule_window_order_clause',
43512             'vars' => '',
43513             'line' => 624
43514             }, 'Parse::RecDescent::Rule' ),
43515             'create' => bless( {
43516             'impcount' => 0,
43517             'calls' => [
43518             'CREATE',
43519             'TRIGGER',
43520             'trigger_name',
43521             'before',
43522             'type',
43523             'table_name',
43524             'reference_b',
43525             'triggered_action',
43526             'after',
43527             'reference_a',
43528             'VIEW',
43529             'view_name',
43530             'column_list',
43531             'with_expression',
43532             'SQL_procedure_statement'
43533             ],
43534             'changed' => 0,
43535             'opcount' => 0,
43536             'prods' => [
43537             bless( {
43538             'number' => '0',
43539             'strcount' => 1,
43540             'dircount' => 0,
43541             'uncommit' => undef,
43542             'error' => undef,
43543             'patcount' => 2,
43544             'actcount' => 1,
43545             'items' => [
43546             bless( {
43547             'subrule' => 'CREATE',
43548             'matchrule' => 0,
43549             'implicit' => undef,
43550             'argcode' => undef,
43551             'lookahead' => 0,
43552             'line' => 36
43553             }, 'Parse::RecDescent::Subrule' ),
43554             bless( {
43555             'subrule' => 'TRIGGER',
43556             'matchrule' => 0,
43557             'implicit' => undef,
43558             'argcode' => undef,
43559             'lookahead' => 0,
43560             'line' => 36
43561             }, 'Parse::RecDescent::Subrule' ),
43562             bless( {
43563             'subrule' => 'trigger_name',
43564             'matchrule' => 0,
43565             'implicit' => undef,
43566             'argcode' => undef,
43567             'lookahead' => 0,
43568             'line' => 36
43569             }, 'Parse::RecDescent::Subrule' ),
43570             bless( {
43571             'subrule' => 'before',
43572             'matchrule' => 0,
43573             'implicit' => undef,
43574             'argcode' => undef,
43575             'lookahead' => 0,
43576             'line' => 36
43577             }, 'Parse::RecDescent::Subrule' ),
43578             bless( {
43579             'subrule' => 'type',
43580             'matchrule' => 0,
43581             'implicit' => undef,
43582             'argcode' => undef,
43583             'lookahead' => 0,
43584             'line' => 36
43585             }, 'Parse::RecDescent::Subrule' ),
43586             bless( {
43587             'pattern' => 'ON',
43588             'hashname' => '__PATTERN1__',
43589             'description' => '/ON/i',
43590             'lookahead' => 0,
43591             'rdelim' => '/',
43592             'line' => 36,
43593             'mod' => 'i',
43594             'ldelim' => '/'
43595             }, 'Parse::RecDescent::Token' ),
43596             bless( {
43597             'subrule' => 'table_name',
43598             'matchrule' => 0,
43599             'implicit' => undef,
43600             'argcode' => undef,
43601             'lookahead' => 0,
43602             'line' => 36
43603             }, 'Parse::RecDescent::Subrule' ),
43604             bless( {
43605             'subrule' => 'reference_b',
43606             'expected' => undef,
43607             'min' => 0,
43608             'argcode' => undef,
43609             'max' => 1,
43610             'matchrule' => 0,
43611             'repspec' => '?',
43612             'lookahead' => 0,
43613             'line' => 36
43614             }, 'Parse::RecDescent::Repetition' ),
43615             bless( {
43616             'pattern' => 'FOR EACH ROW',
43617             'hashname' => '__PATTERN2__',
43618             'description' => '/FOR EACH ROW/i',
43619             'lookahead' => 0,
43620             'rdelim' => '/',
43621             'line' => 36,
43622             'mod' => 'i',
43623             'ldelim' => '/'
43624             }, 'Parse::RecDescent::Token' ),
43625             bless( {
43626             'pattern' => 'MODE DB2SQL',
43627             'hashname' => '__STRING1__',
43628             'description' => '\'MODE DB2SQL\'',
43629             'lookahead' => 0,
43630             'line' => 36
43631             }, 'Parse::RecDescent::Literal' ),
43632             bless( {
43633             'subrule' => 'triggered_action',
43634             'matchrule' => 0,
43635             'implicit' => undef,
43636             'argcode' => undef,
43637             'lookahead' => 0,
43638             'line' => 36
43639             }, 'Parse::RecDescent::Subrule' ),
43640             bless( {
43641             'hashname' => '__ACTION1__',
43642             'lookahead' => 0,
43643             'line' => 37,
43644             'code' => '{
43645             my $table_name = $item{\'table_name\'}{\'name\'};
43646             $return = {
43647             table => $table_name,
43648             schema => $item{\'trigger_name\'}{\'schema\'},
43649             name => $item{\'trigger_name\'}{\'name\'},
43650             when => \'before\',
43651             db_event => $item{\'type\'}->{\'event\'},
43652             fields => $item{\'type\'}{\'fields\'},
43653             condition => $item{\'triggered_action\'}{\'condition\'},
43654             reference => $item{\'reference_b\'},
43655             granularity => $item[9],
43656             action => $item{\'triggered_action\'}{\'statement\'}
43657             };
43658              
43659             push @triggers, $return;
43660             }'
43661             }, 'Parse::RecDescent::Action' )
43662             ],
43663             'line' => undef
43664             }, 'Parse::RecDescent::Production' ),
43665             bless( {
43666             'number' => '1',
43667             'strcount' => 1,
43668             'dircount' => 0,
43669             'uncommit' => undef,
43670             'error' => undef,
43671             'patcount' => 2,
43672             'actcount' => 1,
43673             'items' => [
43674             bless( {
43675             'subrule' => 'CREATE',
43676             'matchrule' => 0,
43677             'implicit' => undef,
43678             'argcode' => undef,
43679             'lookahead' => 0,
43680             'line' => 55
43681             }, 'Parse::RecDescent::Subrule' ),
43682             bless( {
43683             'subrule' => 'TRIGGER',
43684             'matchrule' => 0,
43685             'implicit' => undef,
43686             'argcode' => undef,
43687             'lookahead' => 0,
43688             'line' => 55
43689             }, 'Parse::RecDescent::Subrule' ),
43690             bless( {
43691             'subrule' => 'trigger_name',
43692             'matchrule' => 0,
43693             'implicit' => undef,
43694             'argcode' => undef,
43695             'lookahead' => 0,
43696             'line' => 55
43697             }, 'Parse::RecDescent::Subrule' ),
43698             bless( {
43699             'subrule' => 'after',
43700             'matchrule' => 0,
43701             'implicit' => undef,
43702             'argcode' => undef,
43703             'lookahead' => 0,
43704             'line' => 55
43705             }, 'Parse::RecDescent::Subrule' ),
43706             bless( {
43707             'subrule' => 'type',
43708             'matchrule' => 0,
43709             'implicit' => undef,
43710             'argcode' => undef,
43711             'lookahead' => 0,
43712             'line' => 55
43713             }, 'Parse::RecDescent::Subrule' ),
43714             bless( {
43715             'pattern' => 'ON',
43716             'hashname' => '__PATTERN1__',
43717             'description' => '/ON/i',
43718             'lookahead' => 0,
43719             'rdelim' => '/',
43720             'line' => 55,
43721             'mod' => 'i',
43722             'ldelim' => '/'
43723             }, 'Parse::RecDescent::Token' ),
43724             bless( {
43725             'subrule' => 'table_name',
43726             'matchrule' => 0,
43727             'implicit' => undef,
43728             'argcode' => undef,
43729             'lookahead' => 0,
43730             'line' => 55
43731             }, 'Parse::RecDescent::Subrule' ),
43732             bless( {
43733             'subrule' => 'reference_a',
43734             'expected' => undef,
43735             'min' => 0,
43736             'argcode' => undef,
43737             'max' => 1,
43738             'matchrule' => 0,
43739             'repspec' => '?',
43740             'lookahead' => 0,
43741             'line' => 55
43742             }, 'Parse::RecDescent::Repetition' ),
43743             bless( {
43744             'pattern' => 'FOR EACH ROW|FOR EACH STATEMENT',
43745             'hashname' => '__PATTERN2__',
43746             'description' => '/FOR EACH ROW|FOR EACH STATEMENT/i',
43747             'lookahead' => 0,
43748             'rdelim' => '/',
43749             'line' => 55,
43750             'mod' => 'i',
43751             'ldelim' => '/'
43752             }, 'Parse::RecDescent::Token' ),
43753             bless( {
43754             'pattern' => 'MODE DB2SQL',
43755             'hashname' => '__STRING1__',
43756             'description' => '\'MODE DB2SQL\'',
43757             'lookahead' => 0,
43758             'line' => 55
43759             }, 'Parse::RecDescent::Literal' ),
43760             bless( {
43761             'subrule' => 'triggered_action',
43762             'matchrule' => 0,
43763             'implicit' => undef,
43764             'argcode' => undef,
43765             'lookahead' => 0,
43766             'line' => 55
43767             }, 'Parse::RecDescent::Subrule' ),
43768             bless( {
43769             'hashname' => '__ACTION1__',
43770             'lookahead' => 0,
43771             'line' => 56,
43772             'code' => '{
43773             my $table_name = $item{\'table_name\'}{\'name\'};
43774             $return = {
43775             table => $table_name,
43776             schema => $item{\'trigger_name\'}{\'schema\'},
43777             name => $item{\'trigger_name\'}{\'name\'},
43778             when => \'after\',
43779             db_event => $item{\'type\'}{\'event\'},
43780             fields => $item{\'type\'}{\'fields\'},
43781             condition => $item{\'triggered_action\'}{\'condition\'},
43782             reference => $item{\'reference_a\'},
43783             granularity => $item[9],
43784             action => $item{\'triggered_action\'}{\'statement\'}
43785             };
43786              
43787             push @triggers, $return;
43788             }'
43789             }, 'Parse::RecDescent::Action' )
43790             ],
43791             'line' => undef
43792             }, 'Parse::RecDescent::Production' ),
43793             bless( {
43794             'number' => '2',
43795             'strcount' => 0,
43796             'dircount' => 0,
43797             'uncommit' => undef,
43798             'error' => undef,
43799             'patcount' => 2,
43800             'actcount' => 1,
43801             'items' => [
43802             bless( {
43803             'subrule' => 'CREATE',
43804             'matchrule' => 0,
43805             'implicit' => undef,
43806             'argcode' => undef,
43807             'lookahead' => 0,
43808             'line' => 74
43809             }, 'Parse::RecDescent::Subrule' ),
43810             bless( {
43811             'pattern' => 'FEDERATED|',
43812             'hashname' => '__PATTERN1__',
43813             'description' => '/FEDERATED|/i',
43814             'lookahead' => 0,
43815             'rdelim' => '/',
43816             'line' => 74,
43817             'mod' => 'i',
43818             'ldelim' => '/'
43819             }, 'Parse::RecDescent::Token' ),
43820             bless( {
43821             'subrule' => 'VIEW',
43822             'matchrule' => 0,
43823             'implicit' => undef,
43824             'argcode' => undef,
43825             'lookahead' => 0,
43826             'line' => 74
43827             }, 'Parse::RecDescent::Subrule' ),
43828             bless( {
43829             'subrule' => 'view_name',
43830             'matchrule' => 0,
43831             'implicit' => undef,
43832             'argcode' => undef,
43833             'lookahead' => 0,
43834             'line' => 74
43835             }, 'Parse::RecDescent::Subrule' ),
43836             bless( {
43837             'subrule' => 'column_list',
43838             'expected' => undef,
43839             'min' => 0,
43840             'argcode' => undef,
43841             'max' => 1,
43842             'matchrule' => 0,
43843             'repspec' => '?',
43844             'lookahead' => 0,
43845             'line' => 74
43846             }, 'Parse::RecDescent::Repetition' ),
43847             bless( {
43848             'pattern' => 'AS',
43849             'hashname' => '__PATTERN2__',
43850             'description' => '/AS/i',
43851             'lookahead' => 0,
43852             'rdelim' => '/',
43853             'line' => 74,
43854             'mod' => 'i',
43855             'ldelim' => '/'
43856             }, 'Parse::RecDescent::Token' ),
43857             bless( {
43858             'subrule' => 'with_expression',
43859             'expected' => undef,
43860             'min' => 0,
43861             'argcode' => undef,
43862             'max' => 1,
43863             'matchrule' => 0,
43864             'repspec' => '?',
43865             'lookahead' => 0,
43866             'line' => 74
43867             }, 'Parse::RecDescent::Repetition' ),
43868             bless( {
43869             'subrule' => 'SQL_procedure_statement',
43870             'matchrule' => 0,
43871             'implicit' => undef,
43872             'argcode' => undef,
43873             'lookahead' => 0,
43874             'line' => 74
43875             }, 'Parse::RecDescent::Subrule' ),
43876             bless( {
43877             'hashname' => '__ACTION1__',
43878             'lookahead' => 0,
43879             'line' => 75,
43880             'code' => '{
43881             $return = {
43882             name => $item{view_name}{name},
43883             sql => $item{SQL_procedure_statement},
43884             with => $item{\'with_expression(?)\'},
43885             fields => $item{\'column_list(?)\'}
43886             };
43887             push @views, $return;
43888             }'
43889             }, 'Parse::RecDescent::Action' )
43890             ],
43891             'line' => undef
43892             }, 'Parse::RecDescent::Production' )
43893             ],
43894             'name' => 'create',
43895             'vars' => '',
43896             'line' => 36
43897             }, 'Parse::RecDescent::Rule' ),
43898             'sysfun' => bless( {
43899             'impcount' => 0,
43900             'calls' => [
43901             '_alternation_1_of_production_1_of_rule_sysfun',
43902             '_alternation_1_of_production_7_of_rule_sysfun',
43903             'I',
43904             '_alternation_1_of_production_53_of_rule_sysfun'
43905             ],
43906             'changed' => 0,
43907             'opcount' => 0,
43908             'prods' => [
43909             bless( {
43910             'number' => '0',
43911             'strcount' => 0,
43912             'dircount' => 0,
43913             'uncommit' => undef,
43914             'error' => undef,
43915             'patcount' => 0,
43916             'actcount' => 0,
43917             'items' => [
43918             bless( {
43919             'subrule' => '_alternation_1_of_production_1_of_rule_sysfun',
43920             'matchrule' => 0,
43921             'implicit' => '/ABS/i, or /ABSVAL/i',
43922             'argcode' => undef,
43923             'lookahead' => 0,
43924             'line' => 421
43925             }, 'Parse::RecDescent::Subrule' )
43926             ],
43927             'line' => undef
43928             }, 'Parse::RecDescent::Production' ),
43929             bless( {
43930             'number' => '1',
43931             'strcount' => 0,
43932             'dircount' => 0,
43933             'uncommit' => undef,
43934             'error' => undef,
43935             'patcount' => 1,
43936             'actcount' => 0,
43937             'items' => [
43938             bless( {
43939             'pattern' => 'ACOS',
43940             'hashname' => '__PATTERN1__',
43941             'description' => '/ACOS/i',
43942             'lookahead' => 0,
43943             'rdelim' => '/',
43944             'line' => 422,
43945             'mod' => 'i',
43946             'ldelim' => '/'
43947             }, 'Parse::RecDescent::Token' )
43948             ],
43949             'line' => 422
43950             }, 'Parse::RecDescent::Production' ),
43951             bless( {
43952             'number' => '2',
43953             'strcount' => 0,
43954             'dircount' => 0,
43955             'uncommit' => undef,
43956             'error' => undef,
43957             'patcount' => 1,
43958             'actcount' => 0,
43959             'items' => [
43960             bless( {
43961             'pattern' => 'ASCII',
43962             'hashname' => '__PATTERN1__',
43963             'description' => '/ASCII/i',
43964             'lookahead' => 0,
43965             'rdelim' => '/',
43966             'line' => 423,
43967             'mod' => 'i',
43968             'ldelim' => '/'
43969             }, 'Parse::RecDescent::Token' )
43970             ],
43971             'line' => 423
43972             }, 'Parse::RecDescent::Production' ),
43973             bless( {
43974             'number' => '3',
43975             'strcount' => 0,
43976             'dircount' => 0,
43977             'uncommit' => undef,
43978             'error' => undef,
43979             'patcount' => 1,
43980             'actcount' => 0,
43981             'items' => [
43982             bless( {
43983             'pattern' => 'ASIN',
43984             'hashname' => '__PATTERN1__',
43985             'description' => '/ASIN/i',
43986             'lookahead' => 0,
43987             'rdelim' => '/',
43988             'line' => 424,
43989             'mod' => 'i',
43990             'ldelim' => '/'
43991             }, 'Parse::RecDescent::Token' )
43992             ],
43993             'line' => 424
43994             }, 'Parse::RecDescent::Production' ),
43995             bless( {
43996             'number' => '4',
43997             'strcount' => 0,
43998             'dircount' => 0,
43999             'uncommit' => undef,
44000             'error' => undef,
44001             'patcount' => 1,
44002             'actcount' => 0,
44003             'items' => [
44004             bless( {
44005             'pattern' => 'ATAN',
44006             'hashname' => '__PATTERN1__',
44007             'description' => '/ATAN/i',
44008             'lookahead' => 0,
44009             'rdelim' => '/',
44010             'line' => 425,
44011             'mod' => 'i',
44012             'ldelim' => '/'
44013             }, 'Parse::RecDescent::Token' )
44014             ],
44015             'line' => 425
44016             }, 'Parse::RecDescent::Production' ),
44017             bless( {
44018             'number' => '5',
44019             'strcount' => 0,
44020             'dircount' => 0,
44021             'uncommit' => undef,
44022             'error' => undef,
44023             'patcount' => 1,
44024             'actcount' => 0,
44025             'items' => [
44026             bless( {
44027             'pattern' => 'ATAN2',
44028             'hashname' => '__PATTERN1__',
44029             'description' => '/ATAN2/i',
44030             'lookahead' => 0,
44031             'rdelim' => '/',
44032             'line' => 426,
44033             'mod' => 'i',
44034             'ldelim' => '/'
44035             }, 'Parse::RecDescent::Token' )
44036             ],
44037             'line' => 426
44038             }, 'Parse::RecDescent::Production' ),
44039             bless( {
44040             'number' => '6',
44041             'strcount' => 0,
44042             'dircount' => 0,
44043             'uncommit' => undef,
44044             'error' => undef,
44045             'patcount' => 0,
44046             'actcount' => 0,
44047             'items' => [
44048             bless( {
44049             'subrule' => '_alternation_1_of_production_7_of_rule_sysfun',
44050             'matchrule' => 0,
44051             'implicit' => '/CEIL/i, or /CEILING/i',
44052             'argcode' => undef,
44053             'lookahead' => 0,
44054             'line' => 427
44055             }, 'Parse::RecDescent::Subrule' )
44056             ],
44057             'line' => 427
44058             }, 'Parse::RecDescent::Production' ),
44059             bless( {
44060             'number' => '7',
44061             'strcount' => 0,
44062             'dircount' => 0,
44063             'uncommit' => undef,
44064             'error' => undef,
44065             'patcount' => 1,
44066             'actcount' => 0,
44067             'items' => [
44068             bless( {
44069             'pattern' => 'CHAR',
44070             'hashname' => '__PATTERN1__',
44071             'description' => '/CHAR/i',
44072             'lookahead' => 0,
44073             'rdelim' => '/',
44074             'line' => 428,
44075             'mod' => 'i',
44076             'ldelim' => '/'
44077             }, 'Parse::RecDescent::Token' )
44078             ],
44079             'line' => 428
44080             }, 'Parse::RecDescent::Production' ),
44081             bless( {
44082             'number' => '8',
44083             'strcount' => 0,
44084             'dircount' => 0,
44085             'uncommit' => undef,
44086             'error' => undef,
44087             'patcount' => 1,
44088             'actcount' => 0,
44089             'items' => [
44090             bless( {
44091             'pattern' => 'CHR',
44092             'hashname' => '__PATTERN1__',
44093             'description' => '/CHR/i',
44094             'lookahead' => 0,
44095             'rdelim' => '/',
44096             'line' => 429,
44097             'mod' => 'i',
44098             'ldelim' => '/'
44099             }, 'Parse::RecDescent::Token' )
44100             ],
44101             'line' => 429
44102             }, 'Parse::RecDescent::Production' ),
44103             bless( {
44104             'number' => '9',
44105             'strcount' => 0,
44106             'dircount' => 0,
44107             'uncommit' => undef,
44108             'error' => undef,
44109             'patcount' => 1,
44110             'actcount' => 0,
44111             'items' => [
44112             bless( {
44113             'pattern' => 'COS',
44114             'hashname' => '__PATTERN1__',
44115             'description' => '/COS/i',
44116             'lookahead' => 0,
44117             'rdelim' => '/',
44118             'line' => 430,
44119             'mod' => 'i',
44120             'ldelim' => '/'
44121             }, 'Parse::RecDescent::Token' )
44122             ],
44123             'line' => 430
44124             }, 'Parse::RecDescent::Production' ),
44125             bless( {
44126             'number' => '10',
44127             'strcount' => 0,
44128             'dircount' => 0,
44129             'uncommit' => undef,
44130             'error' => undef,
44131             'patcount' => 1,
44132             'actcount' => 0,
44133             'items' => [
44134             bless( {
44135             'pattern' => 'COT',
44136             'hashname' => '__PATTERN1__',
44137             'description' => '/COT/i',
44138             'lookahead' => 0,
44139             'rdelim' => '/',
44140             'line' => 431,
44141             'mod' => 'i',
44142             'ldelim' => '/'
44143             }, 'Parse::RecDescent::Token' )
44144             ],
44145             'line' => 431
44146             }, 'Parse::RecDescent::Production' ),
44147             bless( {
44148             'number' => '11',
44149             'strcount' => 0,
44150             'dircount' => 0,
44151             'uncommit' => undef,
44152             'error' => undef,
44153             'patcount' => 1,
44154             'actcount' => 0,
44155             'items' => [
44156             bless( {
44157             'pattern' => 'DAYNAME',
44158             'hashname' => '__PATTERN1__',
44159             'description' => '/DAYNAME/i',
44160             'lookahead' => 0,
44161             'rdelim' => '/',
44162             'line' => 432,
44163             'mod' => 'i',
44164             'ldelim' => '/'
44165             }, 'Parse::RecDescent::Token' )
44166             ],
44167             'line' => 432
44168             }, 'Parse::RecDescent::Production' ),
44169             bless( {
44170             'number' => '12',
44171             'strcount' => 0,
44172             'dircount' => 0,
44173             'uncommit' => undef,
44174             'error' => undef,
44175             'patcount' => 1,
44176             'actcount' => 0,
44177             'items' => [
44178             bless( {
44179             'pattern' => 'DAYOFWEEK',
44180             'hashname' => '__PATTERN1__',
44181             'description' => '/DAYOFWEEK/i',
44182             'lookahead' => 0,
44183             'rdelim' => '/',
44184             'line' => 433,
44185             'mod' => 'i',
44186             'ldelim' => '/'
44187             }, 'Parse::RecDescent::Token' )
44188             ],
44189             'line' => 433
44190             }, 'Parse::RecDescent::Production' ),
44191             bless( {
44192             'number' => '13',
44193             'strcount' => 0,
44194             'dircount' => 0,
44195             'uncommit' => undef,
44196             'error' => undef,
44197             'patcount' => 1,
44198             'actcount' => 0,
44199             'items' => [
44200             bless( {
44201             'pattern' => 'DAYOFWEEK_ISO',
44202             'hashname' => '__PATTERN1__',
44203             'description' => '/DAYOFWEEK_ISO/i',
44204             'lookahead' => 0,
44205             'rdelim' => '/',
44206             'line' => 434,
44207             'mod' => 'i',
44208             'ldelim' => '/'
44209             }, 'Parse::RecDescent::Token' )
44210             ],
44211             'line' => 434
44212             }, 'Parse::RecDescent::Production' ),
44213             bless( {
44214             'number' => '14',
44215             'strcount' => 0,
44216             'dircount' => 0,
44217             'uncommit' => undef,
44218             'error' => undef,
44219             'patcount' => 1,
44220             'actcount' => 0,
44221             'items' => [
44222             bless( {
44223             'pattern' => 'DAYOFYEAR',
44224             'hashname' => '__PATTERN1__',
44225             'description' => '/DAYOFYEAR/i',
44226             'lookahead' => 0,
44227             'rdelim' => '/',
44228             'line' => 435,
44229             'mod' => 'i',
44230             'ldelim' => '/'
44231             }, 'Parse::RecDescent::Token' )
44232             ],
44233             'line' => 435
44234             }, 'Parse::RecDescent::Production' ),
44235             bless( {
44236             'number' => '15',
44237             'strcount' => 0,
44238             'dircount' => 0,
44239             'uncommit' => undef,
44240             'error' => undef,
44241             'patcount' => 1,
44242             'actcount' => 0,
44243             'items' => [
44244             bless( {
44245             'pattern' => 'DEGREES',
44246             'hashname' => '__PATTERN1__',
44247             'description' => '/DEGREES/i',
44248             'lookahead' => 0,
44249             'rdelim' => '/',
44250             'line' => 436,
44251             'mod' => 'i',
44252             'ldelim' => '/'
44253             }, 'Parse::RecDescent::Token' )
44254             ],
44255             'line' => 436
44256             }, 'Parse::RecDescent::Production' ),
44257             bless( {
44258             'number' => '16',
44259             'strcount' => 0,
44260             'dircount' => 0,
44261             'uncommit' => undef,
44262             'error' => undef,
44263             'patcount' => 1,
44264             'actcount' => 0,
44265             'items' => [
44266             bless( {
44267             'pattern' => 'DIFFERENCE',
44268             'hashname' => '__PATTERN1__',
44269             'description' => '/DIFFERENCE/i',
44270             'lookahead' => 0,
44271             'rdelim' => '/',
44272             'line' => 437,
44273             'mod' => 'i',
44274             'ldelim' => '/'
44275             }, 'Parse::RecDescent::Token' )
44276             ],
44277             'line' => 437
44278             }, 'Parse::RecDescent::Production' ),
44279             bless( {
44280             'number' => '17',
44281             'strcount' => 0,
44282             'dircount' => 0,
44283             'uncommit' => undef,
44284             'error' => undef,
44285             'patcount' => 1,
44286             'actcount' => 0,
44287             'items' => [
44288             bless( {
44289             'pattern' => 'DOUBLE',
44290             'hashname' => '__PATTERN1__',
44291             'description' => '/DOUBLE/i',
44292             'lookahead' => 0,
44293             'rdelim' => '/',
44294             'line' => 438,
44295             'mod' => 'i',
44296             'ldelim' => '/'
44297             }, 'Parse::RecDescent::Token' )
44298             ],
44299             'line' => 438
44300             }, 'Parse::RecDescent::Production' ),
44301             bless( {
44302             'number' => '18',
44303             'strcount' => 0,
44304             'dircount' => 0,
44305             'uncommit' => undef,
44306             'error' => undef,
44307             'patcount' => 1,
44308             'actcount' => 0,
44309             'items' => [
44310             bless( {
44311             'pattern' => 'EXP',
44312             'hashname' => '__PATTERN1__',
44313             'description' => '/EXP/i',
44314             'lookahead' => 0,
44315             'rdelim' => '/',
44316             'line' => 439,
44317             'mod' => 'i',
44318             'ldelim' => '/'
44319             }, 'Parse::RecDescent::Token' )
44320             ],
44321             'line' => 439
44322             }, 'Parse::RecDescent::Production' ),
44323             bless( {
44324             'number' => '19',
44325             'strcount' => 0,
44326             'dircount' => 0,
44327             'uncommit' => undef,
44328             'error' => undef,
44329             'patcount' => 1,
44330             'actcount' => 0,
44331             'items' => [
44332             bless( {
44333             'pattern' => 'FLOOR',
44334             'hashname' => '__PATTERN1__',
44335             'description' => '/FLOOR/i',
44336             'lookahead' => 0,
44337             'rdelim' => '/',
44338             'line' => 440,
44339             'mod' => 'i',
44340             'ldelim' => '/'
44341             }, 'Parse::RecDescent::Token' )
44342             ],
44343             'line' => 440
44344             }, 'Parse::RecDescent::Production' ),
44345             bless( {
44346             'number' => '20',
44347             'strcount' => 0,
44348             'dircount' => 0,
44349             'uncommit' => undef,
44350             'error' => undef,
44351             'patcount' => 1,
44352             'actcount' => 0,
44353             'items' => [
44354             bless( {
44355             'pattern' => 'GET_ROUTINE_SAR',
44356             'hashname' => '__PATTERN1__',
44357             'description' => '/GET_ROUTINE_SAR/i',
44358             'lookahead' => 0,
44359             'rdelim' => '/',
44360             'line' => 441,
44361             'mod' => 'i',
44362             'ldelim' => '/'
44363             }, 'Parse::RecDescent::Token' )
44364             ],
44365             'line' => 441
44366             }, 'Parse::RecDescent::Production' ),
44367             bless( {
44368             'number' => '21',
44369             'strcount' => 0,
44370             'dircount' => 0,
44371             'uncommit' => undef,
44372             'error' => undef,
44373             'patcount' => 1,
44374             'actcount' => 0,
44375             'items' => [
44376             bless( {
44377             'pattern' => 'INSERT',
44378             'hashname' => '__PATTERN1__',
44379             'description' => '/INSERT/i',
44380             'lookahead' => 0,
44381             'rdelim' => '/',
44382             'line' => 442,
44383             'mod' => 'i',
44384             'ldelim' => '/'
44385             }, 'Parse::RecDescent::Token' )
44386             ],
44387             'line' => 442
44388             }, 'Parse::RecDescent::Production' ),
44389             bless( {
44390             'number' => '22',
44391             'strcount' => 0,
44392             'dircount' => 0,
44393             'uncommit' => undef,
44394             'error' => undef,
44395             'patcount' => 1,
44396             'actcount' => 0,
44397             'items' => [
44398             bless( {
44399             'pattern' => 'JULIAN_DAY',
44400             'hashname' => '__PATTERN1__',
44401             'description' => '/JULIAN_DAY/i',
44402             'lookahead' => 0,
44403             'rdelim' => '/',
44404             'line' => 443,
44405             'mod' => 'i',
44406             'ldelim' => '/'
44407             }, 'Parse::RecDescent::Token' )
44408             ],
44409             'line' => 443
44410             }, 'Parse::RecDescent::Production' ),
44411             bless( {
44412             'number' => '23',
44413             'strcount' => 0,
44414             'dircount' => 0,
44415             'uncommit' => undef,
44416             'error' => undef,
44417             'patcount' => 1,
44418             'actcount' => 0,
44419             'items' => [
44420             bless( {
44421             'pattern' => 'LCASE',
44422             'hashname' => '__PATTERN1__',
44423             'description' => '/LCASE/i',
44424             'lookahead' => 0,
44425             'rdelim' => '/',
44426             'line' => 444,
44427             'mod' => 'i',
44428             'ldelim' => '/'
44429             }, 'Parse::RecDescent::Token' )
44430             ],
44431             'line' => 444
44432             }, 'Parse::RecDescent::Production' ),
44433             bless( {
44434             'number' => '24',
44435             'strcount' => 0,
44436             'dircount' => 0,
44437             'uncommit' => undef,
44438             'error' => undef,
44439             'patcount' => 1,
44440             'actcount' => 0,
44441             'items' => [
44442             bless( {
44443             'pattern' => 'LEFT',
44444             'hashname' => '__PATTERN1__',
44445             'description' => '/LEFT/i',
44446             'lookahead' => 0,
44447             'rdelim' => '/',
44448             'line' => 445,
44449             'mod' => 'i',
44450             'ldelim' => '/'
44451             }, 'Parse::RecDescent::Token' )
44452             ],
44453             'line' => 445
44454             }, 'Parse::RecDescent::Production' ),
44455             bless( {
44456             'number' => '25',
44457             'strcount' => 0,
44458             'dircount' => 0,
44459             'uncommit' => undef,
44460             'error' => undef,
44461             'patcount' => 1,
44462             'actcount' => 0,
44463             'items' => [
44464             bless( {
44465             'pattern' => 'LN',
44466             'hashname' => '__PATTERN1__',
44467             'description' => '/LN/i',
44468             'lookahead' => 0,
44469             'rdelim' => '/',
44470             'line' => 446,
44471             'mod' => 'i',
44472             'ldelim' => '/'
44473             }, 'Parse::RecDescent::Token' )
44474             ],
44475             'line' => 446
44476             }, 'Parse::RecDescent::Production' ),
44477             bless( {
44478             'number' => '26',
44479             'strcount' => 0,
44480             'dircount' => 0,
44481             'uncommit' => undef,
44482             'error' => undef,
44483             'patcount' => 1,
44484             'actcount' => 0,
44485             'items' => [
44486             bless( {
44487             'pattern' => 'LOCATE',
44488             'hashname' => '__PATTERN1__',
44489             'description' => '/LOCATE/i',
44490             'lookahead' => 0,
44491             'rdelim' => '/',
44492             'line' => 447,
44493             'mod' => 'i',
44494             'ldelim' => '/'
44495             }, 'Parse::RecDescent::Token' )
44496             ],
44497             'line' => 447
44498             }, 'Parse::RecDescent::Production' ),
44499             bless( {
44500             'number' => '27',
44501             'strcount' => 0,
44502             'dircount' => 0,
44503             'uncommit' => undef,
44504             'error' => undef,
44505             'patcount' => 1,
44506             'actcount' => 0,
44507             'items' => [
44508             bless( {
44509             'pattern' => 'LOG',
44510             'hashname' => '__PATTERN1__',
44511             'description' => '/LOG/i',
44512             'lookahead' => 0,
44513             'rdelim' => '/',
44514             'line' => 448,
44515             'mod' => 'i',
44516             'ldelim' => '/'
44517             }, 'Parse::RecDescent::Token' )
44518             ],
44519             'line' => 448
44520             }, 'Parse::RecDescent::Production' ),
44521             bless( {
44522             'number' => '28',
44523             'strcount' => 0,
44524             'dircount' => 0,
44525             'uncommit' => undef,
44526             'error' => undef,
44527             'patcount' => 1,
44528             'actcount' => 0,
44529             'items' => [
44530             bless( {
44531             'pattern' => 'LOG10',
44532             'hashname' => '__PATTERN1__',
44533             'description' => '/LOG10/i',
44534             'lookahead' => 0,
44535             'rdelim' => '/',
44536             'line' => 449,
44537             'mod' => 'i',
44538             'ldelim' => '/'
44539             }, 'Parse::RecDescent::Token' )
44540             ],
44541             'line' => 449
44542             }, 'Parse::RecDescent::Production' ),
44543             bless( {
44544             'number' => '29',
44545             'strcount' => 0,
44546             'dircount' => 0,
44547             'uncommit' => undef,
44548             'error' => undef,
44549             'patcount' => 1,
44550             'actcount' => 0,
44551             'items' => [
44552             bless( {
44553             'pattern' => 'LTRIM',
44554             'hashname' => '__PATTERN1__',
44555             'description' => '/LTRIM/i',
44556             'lookahead' => 0,
44557             'rdelim' => '/',
44558             'line' => 450,
44559             'mod' => 'i',
44560             'ldelim' => '/'
44561             }, 'Parse::RecDescent::Token' )
44562             ],
44563             'line' => 450
44564             }, 'Parse::RecDescent::Production' ),
44565             bless( {
44566             'number' => '30',
44567             'strcount' => 0,
44568             'dircount' => 0,
44569             'uncommit' => undef,
44570             'error' => undef,
44571             'patcount' => 1,
44572             'actcount' => 0,
44573             'items' => [
44574             bless( {
44575             'pattern' => 'MIDNIGHT_SECONDS',
44576             'hashname' => '__PATTERN1__',
44577             'description' => '/MIDNIGHT_SECONDS/i',
44578             'lookahead' => 0,
44579             'rdelim' => '/',
44580             'line' => 451,
44581             'mod' => 'i',
44582             'ldelim' => '/'
44583             }, 'Parse::RecDescent::Token' )
44584             ],
44585             'line' => 451
44586             }, 'Parse::RecDescent::Production' ),
44587             bless( {
44588             'number' => '31',
44589             'strcount' => 0,
44590             'dircount' => 0,
44591             'uncommit' => undef,
44592             'error' => undef,
44593             'patcount' => 1,
44594             'actcount' => 0,
44595             'items' => [
44596             bless( {
44597             'pattern' => 'MOD',
44598             'hashname' => '__PATTERN1__',
44599             'description' => '/MOD/i',
44600             'lookahead' => 0,
44601             'rdelim' => '/',
44602             'line' => 452,
44603             'mod' => 'i',
44604             'ldelim' => '/'
44605             }, 'Parse::RecDescent::Token' )
44606             ],
44607             'line' => 452
44608             }, 'Parse::RecDescent::Production' ),
44609             bless( {
44610             'number' => '32',
44611             'strcount' => 0,
44612             'dircount' => 0,
44613             'uncommit' => undef,
44614             'error' => undef,
44615             'patcount' => 1,
44616             'actcount' => 0,
44617             'items' => [
44618             bless( {
44619             'pattern' => 'MONTHNAME',
44620             'hashname' => '__PATTERN1__',
44621             'description' => '/MONTHNAME/i',
44622             'lookahead' => 0,
44623             'rdelim' => '/',
44624             'line' => 453,
44625             'mod' => 'i',
44626             'ldelim' => '/'
44627             }, 'Parse::RecDescent::Token' )
44628             ],
44629             'line' => 453
44630             }, 'Parse::RecDescent::Production' ),
44631             bless( {
44632             'number' => '33',
44633             'strcount' => 0,
44634             'dircount' => 0,
44635             'uncommit' => undef,
44636             'error' => undef,
44637             'patcount' => 1,
44638             'actcount' => 0,
44639             'items' => [
44640             bless( {
44641             'pattern' => 'POWER',
44642             'hashname' => '__PATTERN1__',
44643             'description' => '/POWER/i',
44644             'lookahead' => 0,
44645             'rdelim' => '/',
44646             'line' => 454,
44647             'mod' => 'i',
44648             'ldelim' => '/'
44649             }, 'Parse::RecDescent::Token' )
44650             ],
44651             'line' => 454
44652             }, 'Parse::RecDescent::Production' ),
44653             bless( {
44654             'number' => '34',
44655             'strcount' => 0,
44656             'dircount' => 0,
44657             'uncommit' => undef,
44658             'error' => undef,
44659             'patcount' => 1,
44660             'actcount' => 0,
44661             'items' => [
44662             bless( {
44663             'pattern' => 'PUT_ROUTINE_SAR',
44664             'hashname' => '__PATTERN1__',
44665             'description' => '/PUT_ROUTINE_SAR/i',
44666             'lookahead' => 0,
44667             'rdelim' => '/',
44668             'line' => 455,
44669             'mod' => 'i',
44670             'ldelim' => '/'
44671             }, 'Parse::RecDescent::Token' )
44672             ],
44673             'line' => 455
44674             }, 'Parse::RecDescent::Production' ),
44675             bless( {
44676             'number' => '35',
44677             'strcount' => 0,
44678             'dircount' => 0,
44679             'uncommit' => undef,
44680             'error' => undef,
44681             'patcount' => 1,
44682             'actcount' => 0,
44683             'items' => [
44684             bless( {
44685             'pattern' => 'QUARTER',
44686             'hashname' => '__PATTERN1__',
44687             'description' => '/QUARTER/i',
44688             'lookahead' => 0,
44689             'rdelim' => '/',
44690             'line' => 456,
44691             'mod' => 'i',
44692             'ldelim' => '/'
44693             }, 'Parse::RecDescent::Token' )
44694             ],
44695             'line' => 456
44696             }, 'Parse::RecDescent::Production' ),
44697             bless( {
44698             'number' => '36',
44699             'strcount' => 0,
44700             'dircount' => 0,
44701             'uncommit' => undef,
44702             'error' => undef,
44703             'patcount' => 1,
44704             'actcount' => 0,
44705             'items' => [
44706             bless( {
44707             'pattern' => 'RADIANS',
44708             'hashname' => '__PATTERN1__',
44709             'description' => '/RADIANS/i',
44710             'lookahead' => 0,
44711             'rdelim' => '/',
44712             'line' => 457,
44713             'mod' => 'i',
44714             'ldelim' => '/'
44715             }, 'Parse::RecDescent::Token' )
44716             ],
44717             'line' => 457
44718             }, 'Parse::RecDescent::Production' ),
44719             bless( {
44720             'number' => '37',
44721             'strcount' => 0,
44722             'dircount' => 0,
44723             'uncommit' => undef,
44724             'error' => undef,
44725             'patcount' => 1,
44726             'actcount' => 0,
44727             'items' => [
44728             bless( {
44729             'pattern' => 'RAND',
44730             'hashname' => '__PATTERN1__',
44731             'description' => '/RAND/i',
44732             'lookahead' => 0,
44733             'rdelim' => '/',
44734             'line' => 458,
44735             'mod' => 'i',
44736             'ldelim' => '/'
44737             }, 'Parse::RecDescent::Token' )
44738             ],
44739             'line' => 458
44740             }, 'Parse::RecDescent::Production' ),
44741             bless( {
44742             'number' => '38',
44743             'strcount' => 0,
44744             'dircount' => 0,
44745             'uncommit' => undef,
44746             'error' => undef,
44747             'patcount' => 1,
44748             'actcount' => 0,
44749             'items' => [
44750             bless( {
44751             'pattern' => 'REPEAT',
44752             'hashname' => '__PATTERN1__',
44753             'description' => '/REPEAT/i',
44754             'lookahead' => 0,
44755             'rdelim' => '/',
44756             'line' => 459,
44757             'mod' => 'i',
44758             'ldelim' => '/'
44759             }, 'Parse::RecDescent::Token' )
44760             ],
44761             'line' => 459
44762             }, 'Parse::RecDescent::Production' ),
44763             bless( {
44764             'number' => '39',
44765             'strcount' => 0,
44766             'dircount' => 0,
44767             'uncommit' => undef,
44768             'error' => undef,
44769             'patcount' => 1,
44770             'actcount' => 0,
44771             'items' => [
44772             bless( {
44773             'pattern' => 'REPLACE',
44774             'hashname' => '__PATTERN1__',
44775             'description' => '/REPLACE/i',
44776             'lookahead' => 0,
44777             'rdelim' => '/',
44778             'line' => 460,
44779             'mod' => 'i',
44780             'ldelim' => '/'
44781             }, 'Parse::RecDescent::Token' )
44782             ],
44783             'line' => 460
44784             }, 'Parse::RecDescent::Production' ),
44785             bless( {
44786             'number' => '40',
44787             'strcount' => 0,
44788             'dircount' => 0,
44789             'uncommit' => undef,
44790             'error' => undef,
44791             'patcount' => 1,
44792             'actcount' => 0,
44793             'items' => [
44794             bless( {
44795             'pattern' => 'RIGHT',
44796             'hashname' => '__PATTERN1__',
44797             'description' => '/RIGHT/i',
44798             'lookahead' => 0,
44799             'rdelim' => '/',
44800             'line' => 461,
44801             'mod' => 'i',
44802             'ldelim' => '/'
44803             }, 'Parse::RecDescent::Token' )
44804             ],
44805             'line' => 461
44806             }, 'Parse::RecDescent::Production' ),
44807             bless( {
44808             'number' => '41',
44809             'strcount' => 0,
44810             'dircount' => 0,
44811             'uncommit' => undef,
44812             'error' => undef,
44813             'patcount' => 1,
44814             'actcount' => 0,
44815             'items' => [
44816             bless( {
44817             'pattern' => 'ROUND',
44818             'hashname' => '__PATTERN1__',
44819             'description' => '/ROUND/i',
44820             'lookahead' => 0,
44821             'rdelim' => '/',
44822             'line' => 462,
44823             'mod' => 'i',
44824             'ldelim' => '/'
44825             }, 'Parse::RecDescent::Token' )
44826             ],
44827             'line' => 462
44828             }, 'Parse::RecDescent::Production' ),
44829             bless( {
44830             'number' => '42',
44831             'strcount' => 0,
44832             'dircount' => 0,
44833             'uncommit' => undef,
44834             'error' => undef,
44835             'patcount' => 1,
44836             'actcount' => 0,
44837             'items' => [
44838             bless( {
44839             'pattern' => 'RTRIM',
44840             'hashname' => '__PATTERN1__',
44841             'description' => '/RTRIM/',
44842             'lookahead' => 0,
44843             'rdelim' => '/',
44844             'line' => 463,
44845             'mod' => '',
44846             'ldelim' => '/'
44847             }, 'Parse::RecDescent::Token' ),
44848             bless( {
44849             'subrule' => 'I',
44850             'matchrule' => 0,
44851             'implicit' => undef,
44852             'argcode' => undef,
44853             'lookahead' => 0,
44854             'line' => 463
44855             }, 'Parse::RecDescent::Subrule' )
44856             ],
44857             'line' => 463
44858             }, 'Parse::RecDescent::Production' ),
44859             bless( {
44860             'number' => '43',
44861             'strcount' => 0,
44862             'dircount' => 0,
44863             'uncommit' => undef,
44864             'error' => undef,
44865             'patcount' => 1,
44866             'actcount' => 0,
44867             'items' => [
44868             bless( {
44869             'pattern' => 'SIGN',
44870             'hashname' => '__PATTERN1__',
44871             'description' => '/SIGN/i',
44872             'lookahead' => 0,
44873             'rdelim' => '/',
44874             'line' => 464,
44875             'mod' => 'i',
44876             'ldelim' => '/'
44877             }, 'Parse::RecDescent::Token' )
44878             ],
44879             'line' => 464
44880             }, 'Parse::RecDescent::Production' ),
44881             bless( {
44882             'number' => '44',
44883             'strcount' => 0,
44884             'dircount' => 0,
44885             'uncommit' => undef,
44886             'error' => undef,
44887             'patcount' => 1,
44888             'actcount' => 0,
44889             'items' => [
44890             bless( {
44891             'pattern' => 'SIN',
44892             'hashname' => '__PATTERN1__',
44893             'description' => '/SIN/i',
44894             'lookahead' => 0,
44895             'rdelim' => '/',
44896             'line' => 465,
44897             'mod' => 'i',
44898             'ldelim' => '/'
44899             }, 'Parse::RecDescent::Token' )
44900             ],
44901             'line' => 465
44902             }, 'Parse::RecDescent::Production' ),
44903             bless( {
44904             'number' => '45',
44905             'strcount' => 0,
44906             'dircount' => 0,
44907             'uncommit' => undef,
44908             'error' => undef,
44909             'patcount' => 1,
44910             'actcount' => 0,
44911             'items' => [
44912             bless( {
44913             'pattern' => 'SOUNDEX',
44914             'hashname' => '__PATTERN1__',
44915             'description' => '/SOUNDEX/i',
44916             'lookahead' => 0,
44917             'rdelim' => '/',
44918             'line' => 466,
44919             'mod' => 'i',
44920             'ldelim' => '/'
44921             }, 'Parse::RecDescent::Token' )
44922             ],
44923             'line' => 466
44924             }, 'Parse::RecDescent::Production' ),
44925             bless( {
44926             'number' => '46',
44927             'strcount' => 0,
44928             'dircount' => 0,
44929             'uncommit' => undef,
44930             'error' => undef,
44931             'patcount' => 1,
44932             'actcount' => 0,
44933             'items' => [
44934             bless( {
44935             'pattern' => 'SPACE',
44936             'hashname' => '__PATTERN1__',
44937             'description' => '/SPACE/i',
44938             'lookahead' => 0,
44939             'rdelim' => '/',
44940             'line' => 467,
44941             'mod' => 'i',
44942             'ldelim' => '/'
44943             }, 'Parse::RecDescent::Token' )
44944             ],
44945             'line' => 467
44946             }, 'Parse::RecDescent::Production' ),
44947             bless( {
44948             'number' => '47',
44949             'strcount' => 0,
44950             'dircount' => 0,
44951             'uncommit' => undef,
44952             'error' => undef,
44953             'patcount' => 1,
44954             'actcount' => 0,
44955             'items' => [
44956             bless( {
44957             'pattern' => 'SQLCACHE_SNAPSHOT',
44958             'hashname' => '__PATTERN1__',
44959             'description' => '/SQLCACHE_SNAPSHOT/i',
44960             'lookahead' => 0,
44961             'rdelim' => '/',
44962             'line' => 468,
44963             'mod' => 'i',
44964             'ldelim' => '/'
44965             }, 'Parse::RecDescent::Token' )
44966             ],
44967             'line' => 468
44968             }, 'Parse::RecDescent::Production' ),
44969             bless( {
44970             'number' => '48',
44971             'strcount' => 0,
44972             'dircount' => 0,
44973             'uncommit' => undef,
44974             'error' => undef,
44975             'patcount' => 1,
44976             'actcount' => 0,
44977             'items' => [
44978             bless( {
44979             'pattern' => 'SQRT',
44980             'hashname' => '__PATTERN1__',
44981             'description' => '/SQRT/i',
44982             'lookahead' => 0,
44983             'rdelim' => '/',
44984             'line' => 469,
44985             'mod' => 'i',
44986             'ldelim' => '/'
44987             }, 'Parse::RecDescent::Token' )
44988             ],
44989             'line' => 469
44990             }, 'Parse::RecDescent::Production' ),
44991             bless( {
44992             'number' => '49',
44993             'strcount' => 0,
44994             'dircount' => 0,
44995             'uncommit' => undef,
44996             'error' => undef,
44997             'patcount' => 1,
44998             'actcount' => 0,
44999             'items' => [
45000             bless( {
45001             'pattern' => 'TAN',
45002             'hashname' => '__PATTERN1__',
45003             'description' => '/TAN/i',
45004             'lookahead' => 0,
45005             'rdelim' => '/',
45006             'line' => 470,
45007             'mod' => 'i',
45008             'ldelim' => '/'
45009             }, 'Parse::RecDescent::Token' )
45010             ],
45011             'line' => 470
45012             }, 'Parse::RecDescent::Production' ),
45013             bless( {
45014             'number' => '50',
45015             'strcount' => 0,
45016             'dircount' => 0,
45017             'uncommit' => undef,
45018             'error' => undef,
45019             'patcount' => 1,
45020             'actcount' => 0,
45021             'items' => [
45022             bless( {
45023             'pattern' => 'TIMESTAMP_ISO',
45024             'hashname' => '__PATTERN1__',
45025             'description' => '/TIMESTAMP_ISO/i',
45026             'lookahead' => 0,
45027             'rdelim' => '/',
45028             'line' => 471,
45029             'mod' => 'i',
45030             'ldelim' => '/'
45031             }, 'Parse::RecDescent::Token' )
45032             ],
45033             'line' => 471
45034             }, 'Parse::RecDescent::Production' ),
45035             bless( {
45036             'number' => '51',
45037             'strcount' => 0,
45038             'dircount' => 0,
45039             'uncommit' => undef,
45040             'error' => undef,
45041             'patcount' => 1,
45042             'actcount' => 0,
45043             'items' => [
45044             bless( {
45045             'pattern' => 'TIMESTAMPDIFF',
45046             'hashname' => '__PATTERN1__',
45047             'description' => '/TIMESTAMPDIFF/i',
45048             'lookahead' => 0,
45049             'rdelim' => '/',
45050             'line' => 472,
45051             'mod' => 'i',
45052             'ldelim' => '/'
45053             }, 'Parse::RecDescent::Token' )
45054             ],
45055             'line' => 472
45056             }, 'Parse::RecDescent::Production' ),
45057             bless( {
45058             'number' => '52',
45059             'strcount' => 0,
45060             'dircount' => 0,
45061             'uncommit' => undef,
45062             'error' => undef,
45063             'patcount' => 0,
45064             'actcount' => 0,
45065             'items' => [
45066             bless( {
45067             'subrule' => '_alternation_1_of_production_53_of_rule_sysfun',
45068             'matchrule' => 0,
45069             'implicit' => '/TRUNCATE/i, or /TRUNC/i',
45070             'argcode' => undef,
45071             'lookahead' => 0,
45072             'line' => 473
45073             }, 'Parse::RecDescent::Subrule' )
45074             ],
45075             'line' => 473
45076             }, 'Parse::RecDescent::Production' ),
45077             bless( {
45078             'number' => '53',
45079             'strcount' => 0,
45080             'dircount' => 0,
45081             'uncommit' => undef,
45082             'error' => undef,
45083             'patcount' => 1,
45084             'actcount' => 0,
45085             'items' => [
45086             bless( {
45087             'pattern' => 'UCASE',
45088             'hashname' => '__PATTERN1__',
45089             'description' => '/UCASE/i',
45090             'lookahead' => 0,
45091             'rdelim' => '/',
45092             'line' => 474,
45093             'mod' => 'i',
45094             'ldelim' => '/'
45095             }, 'Parse::RecDescent::Token' )
45096             ],
45097             'line' => 474
45098             }, 'Parse::RecDescent::Production' ),
45099             bless( {
45100             'number' => '54',
45101             'strcount' => 0,
45102             'dircount' => 0,
45103             'uncommit' => undef,
45104             'error' => undef,
45105             'patcount' => 1,
45106             'actcount' => 0,
45107             'items' => [
45108             bless( {
45109             'pattern' => 'WEEK',
45110             'hashname' => '__PATTERN1__',
45111             'description' => '/WEEK/i',
45112             'lookahead' => 0,
45113             'rdelim' => '/',
45114             'line' => 475,
45115             'mod' => 'i',
45116             'ldelim' => '/'
45117             }, 'Parse::RecDescent::Token' )
45118             ],
45119             'line' => 475
45120             }, 'Parse::RecDescent::Production' ),
45121             bless( {
45122             'number' => '55',
45123             'strcount' => 0,
45124             'dircount' => 0,
45125             'uncommit' => undef,
45126             'error' => undef,
45127             'patcount' => 1,
45128             'actcount' => 0,
45129             'items' => [
45130             bless( {
45131             'pattern' => 'WEEK_ISO',
45132             'hashname' => '__PATTERN1__',
45133             'description' => '/WEEK_ISO/i',
45134             'lookahead' => 0,
45135             'rdelim' => '/',
45136             'line' => 476,
45137             'mod' => 'i',
45138             'ldelim' => '/'
45139             }, 'Parse::RecDescent::Token' )
45140             ],
45141             'line' => 476
45142             }, 'Parse::RecDescent::Production' )
45143             ],
45144             'name' => 'sysfun',
45145             'vars' => '',
45146             'line' => 421
45147             }, 'Parse::RecDescent::Rule' ),
45148             '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond' => bless( {
45149             'impcount' => 0,
45150             'calls' => [
45151             'numeric_constant'
45152             ],
45153             'changed' => 0,
45154             'opcount' => 0,
45155             'prods' => [
45156             bless( {
45157             'number' => '0',
45158             'strcount' => 0,
45159             'dircount' => 0,
45160             'uncommit' => undef,
45161             'error' => undef,
45162             'patcount' => 1,
45163             'actcount' => 0,
45164             'items' => [
45165             bless( {
45166             'pattern' => 'SELECTIVITY',
45167             'hashname' => '__PATTERN1__',
45168             'description' => '/SELECTIVITY/i',
45169             'lookahead' => 0,
45170             'rdelim' => '/',
45171             'line' => 628,
45172             'mod' => 'i',
45173             'ldelim' => '/'
45174             }, 'Parse::RecDescent::Token' ),
45175             bless( {
45176             'subrule' => 'numeric_constant',
45177             'matchrule' => 0,
45178             'implicit' => undef,
45179             'argcode' => undef,
45180             'lookahead' => 0,
45181             'line' => 628
45182             }, 'Parse::RecDescent::Subrule' )
45183             ],
45184             'line' => undef
45185             }, 'Parse::RecDescent::Production' )
45186             ],
45187             'name' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
45188             'vars' => '',
45189             'line' => 628
45190             }, 'Parse::RecDescent::Rule' ),
45191             'NAME' => bless( {
45192             'impcount' => 0,
45193             'calls' => [],
45194             'changed' => 0,
45195             'opcount' => 0,
45196             'prods' => [
45197             bless( {
45198             'number' => '0',
45199             'strcount' => 0,
45200             'dircount' => 0,
45201             'uncommit' => undef,
45202             'error' => undef,
45203             'patcount' => 1,
45204             'actcount' => 0,
45205             'items' => [
45206             bless( {
45207             'pattern' => '\\w+',
45208             'hashname' => '__PATTERN1__',
45209             'description' => '/\\\\w+/',
45210             'lookahead' => 0,
45211             'rdelim' => '/',
45212             'line' => 146,
45213             'mod' => '',
45214             'ldelim' => '/'
45215             }, 'Parse::RecDescent::Token' )
45216             ],
45217             'line' => undef
45218             }, 'Parse::RecDescent::Production' ),
45219             bless( {
45220             'number' => '1',
45221             'strcount' => 0,
45222             'dircount' => 0,
45223             'uncommit' => undef,
45224             'error' => undef,
45225             'patcount' => 1,
45226             'actcount' => 0,
45227             'items' => [
45228             bless( {
45229             'pattern' => '\\w{1,18}',
45230             'hashname' => '__PATTERN1__',
45231             'description' => '/\\\\w\\{1,18\\}/',
45232             'lookahead' => 0,
45233             'rdelim' => '/',
45234             'line' => 148,
45235             'mod' => '',
45236             'ldelim' => '/'
45237             }, 'Parse::RecDescent::Token' )
45238             ],
45239             'line' => undef
45240             }, 'Parse::RecDescent::Production' )
45241             ],
45242             'name' => 'NAME',
45243             'vars' => '',
45244             'line' => 146
45245             }, 'Parse::RecDescent::Rule' ),
45246             'constant' => bless( {
45247             'impcount' => 0,
45248             'calls' => [
45249             'int_const',
45250             'float_const',
45251             'dec_const',
45252             'char_const',
45253             'hex_const',
45254             'grastr_const'
45255             ],
45256             'changed' => 0,
45257             'opcount' => 0,
45258             'prods' => [
45259             bless( {
45260             'number' => '0',
45261             'strcount' => 0,
45262             'dircount' => 0,
45263             'uncommit' => undef,
45264             'error' => undef,
45265             'patcount' => 0,
45266             'actcount' => 0,
45267             'items' => [
45268             bless( {
45269             'subrule' => 'int_const',
45270             'matchrule' => 0,
45271             'implicit' => undef,
45272             'argcode' => undef,
45273             'lookahead' => 0,
45274             'line' => 328
45275             }, 'Parse::RecDescent::Subrule' )
45276             ],
45277             'line' => undef
45278             }, 'Parse::RecDescent::Production' ),
45279             bless( {
45280             'number' => '1',
45281             'strcount' => 0,
45282             'dircount' => 0,
45283             'uncommit' => undef,
45284             'error' => undef,
45285             'patcount' => 0,
45286             'actcount' => 0,
45287             'items' => [
45288             bless( {
45289             'subrule' => 'float_const',
45290             'matchrule' => 0,
45291             'implicit' => undef,
45292             'argcode' => undef,
45293             'lookahead' => 0,
45294             'line' => 328
45295             }, 'Parse::RecDescent::Subrule' )
45296             ],
45297             'line' => 328
45298             }, 'Parse::RecDescent::Production' ),
45299             bless( {
45300             'number' => '2',
45301             'strcount' => 0,
45302             'dircount' => 0,
45303             'uncommit' => undef,
45304             'error' => undef,
45305             'patcount' => 0,
45306             'actcount' => 0,
45307             'items' => [
45308             bless( {
45309             'subrule' => 'dec_const',
45310             'matchrule' => 0,
45311             'implicit' => undef,
45312             'argcode' => undef,
45313             'lookahead' => 0,
45314             'line' => 328
45315             }, 'Parse::RecDescent::Subrule' )
45316             ],
45317             'line' => 328
45318             }, 'Parse::RecDescent::Production' ),
45319             bless( {
45320             'number' => '3',
45321             'strcount' => 0,
45322             'dircount' => 0,
45323             'uncommit' => undef,
45324             'error' => undef,
45325             'patcount' => 0,
45326             'actcount' => 0,
45327             'items' => [
45328             bless( {
45329             'subrule' => 'char_const',
45330             'matchrule' => 0,
45331             'implicit' => undef,
45332             'argcode' => undef,
45333             'lookahead' => 0,
45334             'line' => 328
45335             }, 'Parse::RecDescent::Subrule' )
45336             ],
45337             'line' => 328
45338             }, 'Parse::RecDescent::Production' ),
45339             bless( {
45340             'number' => '4',
45341             'strcount' => 0,
45342             'dircount' => 0,
45343             'uncommit' => undef,
45344             'error' => undef,
45345             'patcount' => 0,
45346             'actcount' => 0,
45347             'items' => [
45348             bless( {
45349             'subrule' => 'hex_const',
45350             'matchrule' => 0,
45351             'implicit' => undef,
45352             'argcode' => undef,
45353             'lookahead' => 0,
45354             'line' => 328
45355             }, 'Parse::RecDescent::Subrule' )
45356             ],
45357             'line' => 328
45358             }, 'Parse::RecDescent::Production' ),
45359             bless( {
45360             'number' => '5',
45361             'strcount' => 0,
45362             'dircount' => 0,
45363             'uncommit' => undef,
45364             'error' => undef,
45365             'patcount' => 0,
45366             'actcount' => 0,
45367             'items' => [
45368             bless( {
45369             'subrule' => 'grastr_const',
45370             'matchrule' => 0,
45371             'implicit' => undef,
45372             'argcode' => undef,
45373             'lookahead' => 0,
45374             'line' => 328
45375             }, 'Parse::RecDescent::Subrule' )
45376             ],
45377             'line' => 328
45378             }, 'Parse::RecDescent::Production' )
45379             ],
45380             'name' => 'constant',
45381             'vars' => '',
45382             'line' => 328
45383             }, 'Parse::RecDescent::Rule' ),
45384             '_alternation_1_of_production_1_of_rule_ranking_function' => bless( {
45385             'impcount' => 0,
45386             'calls' => [],
45387             'changed' => 0,
45388             'opcount' => 0,
45389             'prods' => [
45390             bless( {
45391             'number' => '0',
45392             'strcount' => 1,
45393             'dircount' => 0,
45394             'uncommit' => undef,
45395             'error' => undef,
45396             'patcount' => 1,
45397             'actcount' => 0,
45398             'items' => [
45399             bless( {
45400             'pattern' => 'RANK',
45401             'hashname' => '__PATTERN1__',
45402             'description' => '/RANK/',
45403             'lookahead' => 0,
45404             'rdelim' => '/',
45405             'line' => 626,
45406             'mod' => '',
45407             'ldelim' => '/'
45408             }, 'Parse::RecDescent::Token' ),
45409             bless( {
45410             'pattern' => '()',
45411             'hashname' => '__STRING1__',
45412             'description' => '\'()\'',
45413             'lookahead' => 0,
45414             'line' => 626
45415             }, 'Parse::RecDescent::Literal' )
45416             ],
45417             'line' => undef
45418             }, 'Parse::RecDescent::Production' ),
45419             bless( {
45420             'number' => '1',
45421             'strcount' => 1,
45422             'dircount' => 0,
45423             'uncommit' => undef,
45424             'error' => undef,
45425             'patcount' => 1,
45426             'actcount' => 0,
45427             'items' => [
45428             bless( {
45429             'pattern' => 'DENSE_RANK|DENSERANK',
45430             'hashname' => '__PATTERN1__',
45431             'description' => '/DENSE_RANK|DENSERANK/i',
45432             'lookahead' => 0,
45433             'rdelim' => '/',
45434             'line' => 627,
45435             'mod' => 'i',
45436             'ldelim' => '/'
45437             }, 'Parse::RecDescent::Token' ),
45438             bless( {
45439             'pattern' => '()',
45440             'hashname' => '__STRING1__',
45441             'description' => '\'()\'',
45442             'lookahead' => 0,
45443             'line' => 627
45444             }, 'Parse::RecDescent::Literal' )
45445             ],
45446             'line' => 627
45447             }, 'Parse::RecDescent::Production' )
45448             ],
45449             'name' => '_alternation_1_of_production_1_of_rule_ranking_function',
45450             'vars' => '',
45451             'line' => 626
45452             }, 'Parse::RecDescent::Rule' ),
45453             'window_aggregation_group_clause' => bless( {
45454             'impcount' => 2,
45455             'calls' => [
45456             '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
45457             '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause'
45458             ],
45459             'changed' => 0,
45460             'opcount' => 0,
45461             'prods' => [
45462             bless( {
45463             'number' => '0',
45464             'strcount' => 0,
45465             'dircount' => 0,
45466             'uncommit' => undef,
45467             'error' => undef,
45468             'patcount' => 0,
45469             'actcount' => 0,
45470             'items' => [
45471             bless( {
45472             'subrule' => '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
45473             'matchrule' => 0,
45474             'implicit' => '/ROWS/i, or /RANGE/i',
45475             'argcode' => undef,
45476             'lookahead' => 0,
45477             'line' => 568
45478             }, 'Parse::RecDescent::Subrule' ),
45479             bless( {
45480             'subrule' => '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause',
45481             'matchrule' => 0,
45482             'implicit' => 'group_start, or group_between, or group_end',
45483             'argcode' => undef,
45484             'lookahead' => 0,
45485             'line' => 572
45486             }, 'Parse::RecDescent::Subrule' )
45487             ],
45488             'line' => undef
45489             }, 'Parse::RecDescent::Production' )
45490             ],
45491             'name' => 'window_aggregation_group_clause',
45492             'vars' => '',
45493             'line' => 566
45494             }, 'Parse::RecDescent::Rule' ),
45495             '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause' => bless( {
45496             'impcount' => 0,
45497             'calls' => [
45498             'group_start',
45499             'group_between',
45500             'group_end'
45501             ],
45502             'changed' => 0,
45503             'opcount' => 0,
45504             'prods' => [
45505             bless( {
45506             'number' => '0',
45507             'strcount' => 0,
45508             'dircount' => 0,
45509             'uncommit' => undef,
45510             'error' => undef,
45511             'patcount' => 0,
45512             'actcount' => 0,
45513             'items' => [
45514             bless( {
45515             'subrule' => 'group_start',
45516             'matchrule' => 0,
45517             'implicit' => undef,
45518             'argcode' => undef,
45519             'lookahead' => 0,
45520             'line' => 625
45521             }, 'Parse::RecDescent::Subrule' )
45522             ],
45523             'line' => undef
45524             }, 'Parse::RecDescent::Production' ),
45525             bless( {
45526             'number' => '1',
45527             'strcount' => 0,
45528             'dircount' => 0,
45529             'uncommit' => undef,
45530             'error' => undef,
45531             'patcount' => 0,
45532             'actcount' => 0,
45533             'items' => [
45534             bless( {
45535             'subrule' => 'group_between',
45536             'matchrule' => 0,
45537             'implicit' => undef,
45538             'argcode' => undef,
45539             'lookahead' => 0,
45540             'line' => 626
45541             }, 'Parse::RecDescent::Subrule' )
45542             ],
45543             'line' => 626
45544             }, 'Parse::RecDescent::Production' ),
45545             bless( {
45546             'number' => '2',
45547             'strcount' => 0,
45548             'dircount' => 0,
45549             'uncommit' => undef,
45550             'error' => undef,
45551             'patcount' => 0,
45552             'actcount' => 0,
45553             'items' => [
45554             bless( {
45555             'subrule' => 'group_end',
45556             'matchrule' => 0,
45557             'implicit' => undef,
45558             'argcode' => undef,
45559             'lookahead' => 0,
45560             'line' => 627
45561             }, 'Parse::RecDescent::Subrule' )
45562             ],
45563             'line' => 627
45564             }, 'Parse::RecDescent::Production' )
45565             ],
45566             'name' => '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause',
45567             'vars' => '',
45568             'line' => 625
45569             }, 'Parse::RecDescent::Rule' ),
45570             'VIEW' => bless( {
45571             'impcount' => 0,
45572             'calls' => [],
45573             'changed' => 0,
45574             'opcount' => 0,
45575             'prods' => [
45576             bless( {
45577             'number' => '0',
45578             'strcount' => 0,
45579             'dircount' => 0,
45580             'uncommit' => undef,
45581             'error' => undef,
45582             'patcount' => 1,
45583             'actcount' => 0,
45584             'items' => [
45585             bless( {
45586             'pattern' => 'view',
45587             'hashname' => '__PATTERN1__',
45588             'description' => '/view/i',
45589             'lookahead' => 0,
45590             'rdelim' => '/',
45591             'line' => 105,
45592             'mod' => 'i',
45593             'ldelim' => '/'
45594             }, 'Parse::RecDescent::Token' )
45595             ],
45596             'line' => undef
45597             }, 'Parse::RecDescent::Production' )
45598             ],
45599             'name' => 'VIEW',
45600             'vars' => '',
45601             'line' => 105
45602             }, 'Parse::RecDescent::Rule' ),
45603             'with_expression' => bless( {
45604             'impcount' => 0,
45605             'calls' => [
45606             'common_table_expression'
45607             ],
45608             'changed' => 0,
45609             'opcount' => 0,
45610             'prods' => [
45611             bless( {
45612             'number' => '0',
45613             'strcount' => 0,
45614             'dircount' => 1,
45615             'uncommit' => undef,
45616             'error' => undef,
45617             'patcount' => 2,
45618             'actcount' => 1,
45619             'op' => [],
45620             'items' => [
45621             bless( {
45622             'pattern' => 'WITH',
45623             'hashname' => '__PATTERN1__',
45624             'description' => '/WITH/i',
45625             'lookahead' => 0,
45626             'rdelim' => '/',
45627             'line' => 89,
45628             'mod' => 'i',
45629             'ldelim' => '/'
45630             }, 'Parse::RecDescent::Token' ),
45631             bless( {
45632             'expected' => '',
45633             'min' => 1,
45634             'name' => '\'common_table_expression(s)\'',
45635             'max' => 100000000,
45636             'leftarg' => bless( {
45637             'subrule' => 'common_table_expression',
45638             'matchrule' => 0,
45639             'implicit' => undef,
45640             'argcode' => undef,
45641             'lookahead' => 0,
45642             'line' => 89
45643             }, 'Parse::RecDescent::Subrule' ),
45644             'rightarg' => bless( {
45645             'subrule' => 'common_table_expression',
45646             'matchrule' => 0,
45647             'implicit' => undef,
45648             'argcode' => undef,
45649             'lookahead' => 0,
45650             'line' => 89
45651             }, 'Parse::RecDescent::Subrule' ),
45652             'hashname' => '__DIRECTIVE1__',
45653             'type' => 'leftop',
45654             'op' => bless( {
45655             'pattern' => ',',
45656             'hashname' => '__PATTERN2__',
45657             'description' => '/,/',
45658             'lookahead' => 0,
45659             'rdelim' => '/',
45660             'line' => 89,
45661             'mod' => '',
45662             'ldelim' => '/'
45663             }, 'Parse::RecDescent::Token' )
45664             }, 'Parse::RecDescent::Operator' ),
45665             bless( {
45666             'hashname' => '__ACTION1__',
45667             'lookahead' => 0,
45668             'line' => 90,
45669             'code' => '{
45670             $return = $item{\'common_table_expression\'};
45671             }'
45672             }, 'Parse::RecDescent::Action' )
45673             ],
45674             'line' => undef
45675             }, 'Parse::RecDescent::Production' )
45676             ],
45677             'name' => 'with_expression',
45678             'vars' => '',
45679             'line' => 87
45680             }, 'Parse::RecDescent::Rule' ),
45681             'numeric_constant' => bless( {
45682             'impcount' => 0,
45683             'calls' => [],
45684             'changed' => 0,
45685             'opcount' => 0,
45686             'prods' => [
45687             bless( {
45688             'number' => '0',
45689             'strcount' => 0,
45690             'dircount' => 0,
45691             'uncommit' => undef,
45692             'error' => undef,
45693             'patcount' => 1,
45694             'actcount' => 0,
45695             'items' => [
45696             bless( {
45697             'pattern' => '\\d+',
45698             'hashname' => '__PATTERN1__',
45699             'description' => '/\\\\d+/',
45700             'lookahead' => 0,
45701             'rdelim' => '/',
45702             'line' => 140,
45703             'mod' => '',
45704             'ldelim' => '/'
45705             }, 'Parse::RecDescent::Token' )
45706             ],
45707             'line' => undef
45708             }, 'Parse::RecDescent::Production' )
45709             ],
45710             'name' => 'numeric_constant',
45711             'vars' => '',
45712             'line' => 140
45713             }, 'Parse::RecDescent::Rule' ),
45714             'old_new_table' => bless( {
45715             'impcount' => 0,
45716             'calls' => [
45717             'identifier'
45718             ],
45719             'changed' => 0,
45720             'opcount' => 0,
45721             'prods' => [
45722             bless( {
45723             'number' => '0',
45724             'strcount' => 0,
45725             'dircount' => 0,
45726             'uncommit' => undef,
45727             'error' => undef,
45728             'patcount' => 2,
45729             'actcount' => 1,
45730             'items' => [
45731             bless( {
45732             'pattern' => 'OLD_TABLE',
45733             'hashname' => '__PATTERN1__',
45734             'description' => '/OLD_TABLE/i',
45735             'lookahead' => 0,
45736             'rdelim' => '/',
45737             'line' => 291,
45738             'mod' => 'i',
45739             'ldelim' => '/'
45740             }, 'Parse::RecDescent::Token' ),
45741             bless( {
45742             'pattern' => '(AS)?',
45743             'hashname' => '__PATTERN2__',
45744             'description' => '/(AS)?/i',
45745             'lookahead' => 0,
45746             'rdelim' => '/',
45747             'line' => 291,
45748             'mod' => 'i',
45749             'ldelim' => '/'
45750             }, 'Parse::RecDescent::Token' ),
45751             bless( {
45752             'subrule' => 'identifier',
45753             'matchrule' => 0,
45754             'implicit' => undef,
45755             'argcode' => undef,
45756             'lookahead' => 0,
45757             'line' => 291
45758             }, 'Parse::RecDescent::Subrule' ),
45759             bless( {
45760             'hashname' => '__ACTION1__',
45761             'lookahead' => 0,
45762             'line' => 292,
45763             'code' => '{ $return = join(\' \', @item[1..3] ) }'
45764             }, 'Parse::RecDescent::Action' )
45765             ],
45766             'line' => undef
45767             }, 'Parse::RecDescent::Production' ),
45768             bless( {
45769             'number' => '1',
45770             'strcount' => 0,
45771             'dircount' => 0,
45772             'uncommit' => undef,
45773             'error' => undef,
45774             'patcount' => 2,
45775             'actcount' => 1,
45776             'items' => [
45777             bless( {
45778             'pattern' => 'NEW_TABLE',
45779             'hashname' => '__PATTERN1__',
45780             'description' => '/NEW_TABLE/i',
45781             'lookahead' => 0,
45782             'rdelim' => '/',
45783             'line' => 293,
45784             'mod' => 'i',
45785             'ldelim' => '/'
45786             }, 'Parse::RecDescent::Token' ),
45787             bless( {
45788             'pattern' => '(AS)?',
45789             'hashname' => '__PATTERN2__',
45790             'description' => '/(AS)?/i',
45791             'lookahead' => 0,
45792             'rdelim' => '/',
45793             'line' => 293,
45794             'mod' => 'i',
45795             'ldelim' => '/'
45796             }, 'Parse::RecDescent::Token' ),
45797             bless( {
45798             'subrule' => 'identifier',
45799             'matchrule' => 0,
45800             'implicit' => undef,
45801             'argcode' => undef,
45802             'lookahead' => 0,
45803             'line' => 293
45804             }, 'Parse::RecDescent::Subrule' ),
45805             bless( {
45806             'hashname' => '__ACTION1__',
45807             'lookahead' => 0,
45808             'line' => 294,
45809             'code' => '{ $return = join(\' \', @item[1..3] ) }'
45810             }, 'Parse::RecDescent::Action' )
45811             ],
45812             'line' => 293
45813             }, 'Parse::RecDescent::Production' )
45814             ],
45815             'name' => 'old_new_table',
45816             'vars' => '',
45817             'line' => 291
45818             }, 'Parse::RecDescent::Rule' ),
45819             '_alternation_1_of_production_1_of_rule_numbering_function' => bless( {
45820             'impcount' => 0,
45821             'calls' => [
45822             'window_order_clause',
45823             'window_aggregation_group_clause'
45824             ],
45825             'changed' => 0,
45826             'opcount' => 0,
45827             'prods' => [
45828             bless( {
45829             'number' => '0',
45830             'strcount' => 0,
45831             'dircount' => 0,
45832             'uncommit' => undef,
45833             'error' => undef,
45834             'patcount' => 0,
45835             'actcount' => 0,
45836             'items' => [
45837             bless( {
45838             'subrule' => 'window_order_clause',
45839             'matchrule' => 0,
45840             'implicit' => undef,
45841             'argcode' => undef,
45842             'lookahead' => 0,
45843             'line' => 627
45844             }, 'Parse::RecDescent::Subrule' ),
45845             bless( {
45846             'subrule' => 'window_aggregation_group_clause',
45847             'expected' => undef,
45848             'min' => 0,
45849             'argcode' => undef,
45850             'max' => 1,
45851             'matchrule' => 0,
45852             'repspec' => '?',
45853             'lookahead' => 0,
45854             'line' => 627
45855             }, 'Parse::RecDescent::Repetition' )
45856             ],
45857             'line' => undef
45858             }, 'Parse::RecDescent::Production' )
45859             ],
45860             'name' => '_alternation_1_of_production_1_of_rule_numbering_function',
45861             'vars' => '',
45862             'line' => 627
45863             }, 'Parse::RecDescent::Rule' ),
45864             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause' => bless( {
45865             'impcount' => 0,
45866             'calls' => [
45867             'result_expression'
45868             ],
45869             'changed' => 0,
45870             'opcount' => 0,
45871             'prods' => [
45872             bless( {
45873             'number' => '0',
45874             'strcount' => 0,
45875             'dircount' => 0,
45876             'uncommit' => undef,
45877             'error' => undef,
45878             'patcount' => 0,
45879             'actcount' => 0,
45880             'items' => [
45881             bless( {
45882             'subrule' => 'result_expression',
45883             'matchrule' => 0,
45884             'implicit' => undef,
45885             'argcode' => undef,
45886             'lookahead' => 0,
45887             'line' => 626
45888             }, 'Parse::RecDescent::Subrule' )
45889             ],
45890             'line' => undef
45891             }, 'Parse::RecDescent::Production' ),
45892             bless( {
45893             'number' => '1',
45894             'strcount' => 0,
45895             'dircount' => 0,
45896             'uncommit' => undef,
45897             'error' => undef,
45898             'patcount' => 1,
45899             'actcount' => 0,
45900             'items' => [
45901             bless( {
45902             'pattern' => 'NULL',
45903             'hashname' => '__PATTERN1__',
45904             'description' => '/NULL/i',
45905             'lookahead' => 0,
45906             'rdelim' => '/',
45907             'line' => 627,
45908             'mod' => 'i',
45909             'ldelim' => '/'
45910             }, 'Parse::RecDescent::Token' )
45911             ],
45912             'line' => 627
45913             }, 'Parse::RecDescent::Production' )
45914             ],
45915             'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause',
45916             'vars' => '',
45917             'line' => 626
45918             }, 'Parse::RecDescent::Rule' ),
45919             'old_new_corr' => bless( {
45920             'impcount' => 0,
45921             'calls' => [
45922             'correlation_name'
45923             ],
45924             'changed' => 0,
45925             'opcount' => 0,
45926             'prods' => [
45927             bless( {
45928             'number' => '0',
45929             'strcount' => 0,
45930             'dircount' => 0,
45931             'uncommit' => undef,
45932             'error' => undef,
45933             'patcount' => 2,
45934             'actcount' => 1,
45935             'items' => [
45936             bless( {
45937             'pattern' => 'OLD',
45938             'hashname' => '__PATTERN1__',
45939             'description' => '/OLD/i',
45940             'lookahead' => 0,
45941             'rdelim' => '/',
45942             'line' => 286,
45943             'mod' => 'i',
45944             'ldelim' => '/'
45945             }, 'Parse::RecDescent::Token' ),
45946             bless( {
45947             'pattern' => '(AS)?',
45948             'hashname' => '__PATTERN2__',
45949             'description' => '/(AS)?/i',
45950             'lookahead' => 0,
45951             'rdelim' => '/',
45952             'line' => 286,
45953             'mod' => 'i',
45954             'ldelim' => '/'
45955             }, 'Parse::RecDescent::Token' ),
45956             bless( {
45957             'subrule' => 'correlation_name',
45958             'matchrule' => 0,
45959             'implicit' => undef,
45960             'argcode' => undef,
45961             'lookahead' => 0,
45962             'line' => 286
45963             }, 'Parse::RecDescent::Subrule' ),
45964             bless( {
45965             'hashname' => '__ACTION1__',
45966             'lookahead' => 0,
45967             'line' => 287,
45968             'code' => '{ $return = join(\' \', @item[1..3] ) }'
45969             }, 'Parse::RecDescent::Action' )
45970             ],
45971             'line' => undef
45972             }, 'Parse::RecDescent::Production' ),
45973             bless( {
45974             'number' => '1',
45975             'strcount' => 0,
45976             'dircount' => 0,
45977             'uncommit' => undef,
45978             'error' => undef,
45979             'patcount' => 2,
45980             'actcount' => 1,
45981             'items' => [
45982             bless( {
45983             'pattern' => 'NEW',
45984             'hashname' => '__PATTERN1__',
45985             'description' => '/NEW/i',
45986             'lookahead' => 0,
45987             'rdelim' => '/',
45988             'line' => 288,
45989             'mod' => 'i',
45990             'ldelim' => '/'
45991             }, 'Parse::RecDescent::Token' ),
45992             bless( {
45993             'pattern' => '(AS)?',
45994             'hashname' => '__PATTERN2__',
45995             'description' => '/(AS)?/i',
45996             'lookahead' => 0,
45997             'rdelim' => '/',
45998             'line' => 288,
45999             'mod' => 'i',
46000             'ldelim' => '/'
46001             }, 'Parse::RecDescent::Token' ),
46002             bless( {
46003             'subrule' => 'correlation_name',
46004             'matchrule' => 0,
46005             'implicit' => undef,
46006             'argcode' => undef,
46007             'lookahead' => 0,
46008             'line' => 288
46009             }, 'Parse::RecDescent::Subrule' ),
46010             bless( {
46011             'hashname' => '__ACTION1__',
46012             'lookahead' => 0,
46013             'line' => 289,
46014             'code' => '{ $return = join(\' \', @item[1..3] ) }'
46015             }, 'Parse::RecDescent::Action' )
46016             ],
46017             'line' => 288
46018             }, 'Parse::RecDescent::Production' )
46019             ],
46020             'name' => 'old_new_corr',
46021             'vars' => '',
46022             'line' => 286
46023             }, 'Parse::RecDescent::Rule' ),
46024             '_alternation_1_of_production_42_of_rule_sysibm_function' => bless( {
46025             'impcount' => 0,
46026             'calls' => [],
46027             'changed' => 0,
46028             'opcount' => 0,
46029             'prods' => [
46030             bless( {
46031             'number' => '0',
46032             'strcount' => 0,
46033             'dircount' => 0,
46034             'uncommit' => undef,
46035             'error' => undef,
46036             'patcount' => 1,
46037             'actcount' => 0,
46038             'items' => [
46039             bless( {
46040             'pattern' => 'LCASE',
46041             'hashname' => '__PATTERN1__',
46042             'description' => '/LCASE/i',
46043             'lookahead' => 0,
46044             'rdelim' => '/',
46045             'line' => 628,
46046             'mod' => 'i',
46047             'ldelim' => '/'
46048             }, 'Parse::RecDescent::Token' )
46049             ],
46050             'line' => undef
46051             }, 'Parse::RecDescent::Production' ),
46052             bless( {
46053             'number' => '1',
46054             'strcount' => 0,
46055             'dircount' => 0,
46056             'uncommit' => undef,
46057             'error' => undef,
46058             'patcount' => 1,
46059             'actcount' => 0,
46060             'items' => [
46061             bless( {
46062             'pattern' => 'LOWER',
46063             'hashname' => '__PATTERN1__',
46064             'description' => '/LOWER/',
46065             'lookahead' => 0,
46066             'rdelim' => '/',
46067             'line' => 628,
46068             'mod' => '',
46069             'ldelim' => '/'
46070             }, 'Parse::RecDescent::Token' )
46071             ],
46072             'line' => 628
46073             }, 'Parse::RecDescent::Production' )
46074             ],
46075             'name' => '_alternation_1_of_production_42_of_rule_sysibm_function',
46076             'vars' => '',
46077             'line' => 628
46078             }, 'Parse::RecDescent::Rule' ),
46079             'subtype_treatment' => bless( {
46080             'impcount' => 0,
46081             'calls' => [
46082             'expression',
46083             'data_type'
46084             ],
46085             'changed' => 0,
46086             'opcount' => 0,
46087             'prods' => [
46088             bless( {
46089             'number' => '0',
46090             'strcount' => 2,
46091             'dircount' => 0,
46092             'uncommit' => undef,
46093             'error' => undef,
46094             'patcount' => 2,
46095             'actcount' => 0,
46096             'items' => [
46097             bless( {
46098             'pattern' => 'TREAT',
46099             'hashname' => '__PATTERN1__',
46100             'description' => '/TREAT/i',
46101             'lookahead' => 0,
46102             'rdelim' => '/',
46103             'line' => 606,
46104             'mod' => 'i',
46105             'ldelim' => '/'
46106             }, 'Parse::RecDescent::Token' ),
46107             bless( {
46108             'pattern' => '(',
46109             'hashname' => '__STRING1__',
46110             'description' => '\'(\'',
46111             'lookahead' => 0,
46112             'line' => 606
46113             }, 'Parse::RecDescent::Literal' ),
46114             bless( {
46115             'subrule' => 'expression',
46116             'matchrule' => 0,
46117             'implicit' => undef,
46118             'argcode' => undef,
46119             'lookahead' => 0,
46120             'line' => 606
46121             }, 'Parse::RecDescent::Subrule' ),
46122             bless( {
46123             'pattern' => 'AS',
46124             'hashname' => '__PATTERN2__',
46125             'description' => '/AS/i',
46126             'lookahead' => 0,
46127             'rdelim' => '/',
46128             'line' => 606,
46129             'mod' => 'i',
46130             'ldelim' => '/'
46131             }, 'Parse::RecDescent::Token' ),
46132             bless( {
46133             'subrule' => 'data_type',
46134             'matchrule' => 0,
46135             'implicit' => undef,
46136             'argcode' => undef,
46137             'lookahead' => 0,
46138             'line' => 606
46139             }, 'Parse::RecDescent::Subrule' ),
46140             bless( {
46141             'pattern' => ')',
46142             'hashname' => '__STRING2__',
46143             'description' => '\')\'',
46144             'lookahead' => 0,
46145             'line' => 606
46146             }, 'Parse::RecDescent::Literal' )
46147             ],
46148             'line' => undef
46149             }, 'Parse::RecDescent::Production' )
46150             ],
46151             'name' => 'subtype_treatment',
46152             'vars' => '',
46153             'line' => 606
46154             }, 'Parse::RecDescent::Rule' ),
46155             'expression' => bless( {
46156             'impcount' => 1,
46157             'calls' => [
46158             '_alternation_1_of_production_1_of_rule_expression'
46159             ],
46160             'changed' => 0,
46161             'opcount' => 0,
46162             'prods' => [
46163             bless( {
46164             'number' => '0',
46165             'strcount' => 0,
46166             'dircount' => 1,
46167             'uncommit' => undef,
46168             'error' => undef,
46169             'patcount' => 1,
46170             'actcount' => 0,
46171             'op' => [],
46172             'items' => [
46173             bless( {
46174             'expected' => '',
46175             'min' => 1,
46176             'name' => '\'_alternation_1_of_production_1_of_rule_expression(s)\'',
46177             'max' => 100000000,
46178             'leftarg' => bless( {
46179             'subrule' => '_alternation_1_of_production_1_of_rule_expression',
46180             'matchrule' => 0,
46181             'implicit' => '\'+\', or \'-\'',
46182             'argcode' => undef,
46183             'lookahead' => 0,
46184             'line' => 319
46185             }, 'Parse::RecDescent::Subrule' ),
46186             'rightarg' => bless( {
46187             'subrule' => '_alternation_1_of_production_1_of_rule_expression',
46188             'matchrule' => 0,
46189             'implicit' => '\'+\', or \'-\'',
46190             'argcode' => undef,
46191             'lookahead' => 0,
46192             'line' => 319
46193             }, 'Parse::RecDescent::Subrule' ),
46194             'hashname' => '__DIRECTIVE1__',
46195             'type' => 'leftop',
46196             'op' => bless( {
46197             'pattern' => 'operator',
46198             'hashname' => '__PATTERN1__',
46199             'description' => '/operator/',
46200             'lookahead' => 0,
46201             'rdelim' => '/',
46202             'line' => 319,
46203             'mod' => '',
46204             'ldelim' => '/'
46205             }, 'Parse::RecDescent::Token' )
46206             }, 'Parse::RecDescent::Operator' )
46207             ],
46208             'line' => undef
46209             }, 'Parse::RecDescent::Production' )
46210             ],
46211             'name' => 'expression',
46212             'vars' => '',
46213             'line' => 299
46214             }, 'Parse::RecDescent::Rule' ),
46215             '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression' => bless( {
46216             'impcount' => 0,
46217             'calls' => [
46218             'function',
46219             'expression',
46220             'constant',
46221             'column_name',
46222             'host_variable',
46223             'special_register',
46224             'scalar_fullselect',
46225             'labeled_duration',
46226             'case_expression',
46227             'cast_specification',
46228             'OLAP_function',
46229             'method_invocation',
46230             'subtype_treatment',
46231             'sequence_reference'
46232             ],
46233             'changed' => 0,
46234             'opcount' => 0,
46235             'prods' => [
46236             bless( {
46237             'number' => '0',
46238             'strcount' => 0,
46239             'dircount' => 0,
46240             'uncommit' => undef,
46241             'error' => undef,
46242             'patcount' => 0,
46243             'actcount' => 0,
46244             'items' => [
46245             bless( {
46246             'subrule' => 'function',
46247             'matchrule' => 0,
46248             'implicit' => undef,
46249             'argcode' => undef,
46250             'lookahead' => 0,
46251             'line' => 613
46252             }, 'Parse::RecDescent::Subrule' )
46253             ],
46254             'line' => undef
46255             }, 'Parse::RecDescent::Production' ),
46256             bless( {
46257             'number' => '1',
46258             'strcount' => 2,
46259             'dircount' => 0,
46260             'uncommit' => undef,
46261             'error' => undef,
46262             'patcount' => 0,
46263             'actcount' => 0,
46264             'items' => [
46265             bless( {
46266             'pattern' => '(',
46267             'hashname' => '__STRING1__',
46268             'description' => '\'(\'',
46269             'lookahead' => 0,
46270             'line' => 614
46271             }, 'Parse::RecDescent::Literal' ),
46272             bless( {
46273             'subrule' => 'expression',
46274             'matchrule' => 0,
46275             'implicit' => undef,
46276             'argcode' => undef,
46277             'lookahead' => 0,
46278             'line' => 614
46279             }, 'Parse::RecDescent::Subrule' ),
46280             bless( {
46281             'pattern' => ')',
46282             'hashname' => '__STRING2__',
46283             'description' => '\')\'',
46284             'lookahead' => 0,
46285             'line' => 614
46286             }, 'Parse::RecDescent::Literal' )
46287             ],
46288             'line' => 614
46289             }, 'Parse::RecDescent::Production' ),
46290             bless( {
46291             'number' => '2',
46292             'strcount' => 0,
46293             'dircount' => 0,
46294             'uncommit' => undef,
46295             'error' => undef,
46296             'patcount' => 0,
46297             'actcount' => 0,
46298             'items' => [
46299             bless( {
46300             'subrule' => 'constant',
46301             'matchrule' => 0,
46302             'implicit' => undef,
46303             'argcode' => undef,
46304             'lookahead' => 0,
46305             'line' => 615
46306             }, 'Parse::RecDescent::Subrule' )
46307             ],
46308             'line' => 615
46309             }, 'Parse::RecDescent::Production' ),
46310             bless( {
46311             'number' => '3',
46312             'strcount' => 0,
46313             'dircount' => 0,
46314             'uncommit' => undef,
46315             'error' => undef,
46316             'patcount' => 0,
46317             'actcount' => 0,
46318             'items' => [
46319             bless( {
46320             'subrule' => 'column_name',
46321             'matchrule' => 0,
46322             'implicit' => undef,
46323             'argcode' => undef,
46324             'lookahead' => 0,
46325             'line' => 616
46326             }, 'Parse::RecDescent::Subrule' )
46327             ],
46328             'line' => 616
46329             }, 'Parse::RecDescent::Production' ),
46330             bless( {
46331             'number' => '4',
46332             'strcount' => 0,
46333             'dircount' => 0,
46334             'uncommit' => undef,
46335             'error' => undef,
46336             'patcount' => 0,
46337             'actcount' => 0,
46338             'items' => [
46339             bless( {
46340             'subrule' => 'host_variable',
46341             'matchrule' => 0,
46342             'implicit' => undef,
46343             'argcode' => undef,
46344             'lookahead' => 0,
46345             'line' => 617
46346             }, 'Parse::RecDescent::Subrule' )
46347             ],
46348             'line' => 617
46349             }, 'Parse::RecDescent::Production' ),
46350             bless( {
46351             'number' => '5',
46352             'strcount' => 0,
46353             'dircount' => 0,
46354             'uncommit' => undef,
46355             'error' => undef,
46356             'patcount' => 0,
46357             'actcount' => 0,
46358             'items' => [
46359             bless( {
46360             'subrule' => 'special_register',
46361             'matchrule' => 0,
46362             'implicit' => undef,
46363             'argcode' => undef,
46364             'lookahead' => 0,
46365             'line' => 618
46366             }, 'Parse::RecDescent::Subrule' )
46367             ],
46368             'line' => 618
46369             }, 'Parse::RecDescent::Production' ),
46370             bless( {
46371             'number' => '6',
46372             'strcount' => 2,
46373             'dircount' => 0,
46374             'uncommit' => undef,
46375             'error' => undef,
46376             'patcount' => 0,
46377             'actcount' => 0,
46378             'items' => [
46379             bless( {
46380             'pattern' => '(',
46381             'hashname' => '__STRING1__',
46382             'description' => '\'(\'',
46383             'lookahead' => 0,
46384             'line' => 619
46385             }, 'Parse::RecDescent::Literal' ),
46386             bless( {
46387             'subrule' => 'scalar_fullselect',
46388             'matchrule' => 0,
46389             'implicit' => undef,
46390             'argcode' => undef,
46391             'lookahead' => 0,
46392             'line' => 619
46393             }, 'Parse::RecDescent::Subrule' ),
46394             bless( {
46395             'pattern' => ')',
46396             'hashname' => '__STRING2__',
46397             'description' => '\')\'',
46398             'lookahead' => 0,
46399             'line' => 619
46400             }, 'Parse::RecDescent::Literal' )
46401             ],
46402             'line' => 619
46403             }, 'Parse::RecDescent::Production' ),
46404             bless( {
46405             'number' => '7',
46406             'strcount' => 0,
46407             'dircount' => 0,
46408             'uncommit' => undef,
46409             'error' => undef,
46410             'patcount' => 0,
46411             'actcount' => 0,
46412             'items' => [
46413             bless( {
46414             'subrule' => 'labeled_duration',
46415             'matchrule' => 0,
46416             'implicit' => undef,
46417             'argcode' => undef,
46418             'lookahead' => 0,
46419             'line' => 620
46420             }, 'Parse::RecDescent::Subrule' )
46421             ],
46422             'line' => 620
46423             }, 'Parse::RecDescent::Production' ),
46424             bless( {
46425             'number' => '8',
46426             'strcount' => 0,
46427             'dircount' => 0,
46428             'uncommit' => undef,
46429             'error' => undef,
46430             'patcount' => 0,
46431             'actcount' => 0,
46432             'items' => [
46433             bless( {
46434             'subrule' => 'case_expression',
46435             'matchrule' => 0,
46436             'implicit' => undef,
46437             'argcode' => undef,
46438             'lookahead' => 0,
46439             'line' => 621
46440             }, 'Parse::RecDescent::Subrule' )
46441             ],
46442             'line' => 621
46443             }, 'Parse::RecDescent::Production' ),
46444             bless( {
46445             'number' => '9',
46446             'strcount' => 0,
46447             'dircount' => 0,
46448             'uncommit' => undef,
46449             'error' => undef,
46450             'patcount' => 0,
46451             'actcount' => 0,
46452             'items' => [
46453             bless( {
46454             'subrule' => 'cast_specification',
46455             'matchrule' => 0,
46456             'implicit' => undef,
46457             'argcode' => undef,
46458             'lookahead' => 0,
46459             'line' => 622
46460             }, 'Parse::RecDescent::Subrule' )
46461             ],
46462             'line' => 622
46463             }, 'Parse::RecDescent::Production' ),
46464             bless( {
46465             'number' => '10',
46466             'strcount' => 0,
46467             'dircount' => 0,
46468             'uncommit' => undef,
46469             'error' => undef,
46470             'patcount' => 0,
46471             'actcount' => 0,
46472             'items' => [
46473             bless( {
46474             'subrule' => 'OLAP_function',
46475             'matchrule' => 0,
46476             'implicit' => undef,
46477             'argcode' => undef,
46478             'lookahead' => 0,
46479             'line' => 624
46480             }, 'Parse::RecDescent::Subrule' )
46481             ],
46482             'line' => 623
46483             }, 'Parse::RecDescent::Production' ),
46484             bless( {
46485             'number' => '11',
46486             'strcount' => 0,
46487             'dircount' => 0,
46488             'uncommit' => undef,
46489             'error' => undef,
46490             'patcount' => 0,
46491             'actcount' => 0,
46492             'items' => [
46493             bless( {
46494             'subrule' => 'method_invocation',
46495             'matchrule' => 0,
46496             'implicit' => undef,
46497             'argcode' => undef,
46498             'lookahead' => 0,
46499             'line' => 625
46500             }, 'Parse::RecDescent::Subrule' )
46501             ],
46502             'line' => 625
46503             }, 'Parse::RecDescent::Production' ),
46504             bless( {
46505             'number' => '12',
46506             'strcount' => 0,
46507             'dircount' => 0,
46508             'uncommit' => undef,
46509             'error' => undef,
46510             'patcount' => 0,
46511             'actcount' => 0,
46512             'items' => [
46513             bless( {
46514             'subrule' => 'subtype_treatment',
46515             'matchrule' => 0,
46516             'implicit' => undef,
46517             'argcode' => undef,
46518             'lookahead' => 0,
46519             'line' => 626
46520             }, 'Parse::RecDescent::Subrule' )
46521             ],
46522             'line' => 626
46523             }, 'Parse::RecDescent::Production' ),
46524             bless( {
46525             'number' => '13',
46526             'strcount' => 0,
46527             'dircount' => 0,
46528             'uncommit' => undef,
46529             'error' => undef,
46530             'patcount' => 0,
46531             'actcount' => 0,
46532             'items' => [
46533             bless( {
46534             'subrule' => 'sequence_reference',
46535             'matchrule' => 0,
46536             'implicit' => undef,
46537             'argcode' => undef,
46538             'lookahead' => 0,
46539             'line' => 627
46540             }, 'Parse::RecDescent::Subrule' )
46541             ],
46542             'line' => 627
46543             }, 'Parse::RecDescent::Production' )
46544             ],
46545             'name' => '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
46546             'vars' => '',
46547             'line' => 613
46548             }, 'Parse::RecDescent::Rule' ),
46549             'startrule' => bless( {
46550             'impcount' => 0,
46551             'calls' => [
46552             'statement',
46553             'eofile'
46554             ],
46555             'changed' => 0,
46556             'opcount' => 0,
46557             'prods' => [
46558             bless( {
46559             'number' => '0',
46560             'strcount' => 0,
46561             'dircount' => 0,
46562             'uncommit' => undef,
46563             'error' => undef,
46564             'patcount' => 0,
46565             'actcount' => 1,
46566             'items' => [
46567             bless( {
46568             'subrule' => 'statement',
46569             'expected' => undef,
46570             'min' => 1,
46571             'argcode' => undef,
46572             'max' => 100000000,
46573             'matchrule' => 0,
46574             'repspec' => 's',
46575             'lookahead' => 0,
46576             'line' => 12
46577             }, 'Parse::RecDescent::Repetition' ),
46578             bless( {
46579             'subrule' => 'eofile',
46580             'matchrule' => 0,
46581             'implicit' => undef,
46582             'argcode' => undef,
46583             'lookahead' => 0,
46584             'line' => 12
46585             }, 'Parse::RecDescent::Subrule' ),
46586             bless( {
46587             'hashname' => '__ACTION1__',
46588             'lookahead' => 0,
46589             'line' => 12,
46590             'code' => '{
46591             $return = {
46592             tables => \\%tables,
46593             views => \\@views,
46594             triggers => \\@triggers,
46595             }
46596             }'
46597             }, 'Parse::RecDescent::Action' )
46598             ],
46599             'line' => undef
46600             }, 'Parse::RecDescent::Production' )
46601             ],
46602             'name' => 'startrule',
46603             'vars' => '',
46604             'line' => 11
46605             }, 'Parse::RecDescent::Rule' ),
46606             '_alternation_1_of_production_1_of_rule_cast_specification' => bless( {
46607             'impcount' => 0,
46608             'calls' => [
46609             'expression',
46610             'parameter_marker'
46611             ],
46612             'changed' => 0,
46613             'opcount' => 0,
46614             'prods' => [
46615             bless( {
46616             'number' => '0',
46617             'strcount' => 0,
46618             'dircount' => 0,
46619             'uncommit' => undef,
46620             'error' => undef,
46621             'patcount' => 0,
46622             'actcount' => 0,
46623             'items' => [
46624             bless( {
46625             'subrule' => 'expression',
46626             'matchrule' => 0,
46627             'implicit' => undef,
46628             'argcode' => undef,
46629             'lookahead' => 0,
46630             'line' => 625
46631             }, 'Parse::RecDescent::Subrule' )
46632             ],
46633             'line' => undef
46634             }, 'Parse::RecDescent::Production' ),
46635             bless( {
46636             'number' => '1',
46637             'strcount' => 0,
46638             'dircount' => 0,
46639             'uncommit' => undef,
46640             'error' => undef,
46641             'patcount' => 1,
46642             'actcount' => 0,
46643             'items' => [
46644             bless( {
46645             'pattern' => 'NULL',
46646             'hashname' => '__PATTERN1__',
46647             'description' => '/NULL/i',
46648             'lookahead' => 0,
46649             'rdelim' => '/',
46650             'line' => 626,
46651             'mod' => 'i',
46652             'ldelim' => '/'
46653             }, 'Parse::RecDescent::Token' )
46654             ],
46655             'line' => 626
46656             }, 'Parse::RecDescent::Production' ),
46657             bless( {
46658             'number' => '2',
46659             'strcount' => 0,
46660             'dircount' => 0,
46661             'uncommit' => undef,
46662             'error' => undef,
46663             'patcount' => 0,
46664             'actcount' => 0,
46665             'items' => [
46666             bless( {
46667             'subrule' => 'parameter_marker',
46668             'matchrule' => 0,
46669             'implicit' => undef,
46670             'argcode' => undef,
46671             'lookahead' => 0,
46672             'line' => 627
46673             }, 'Parse::RecDescent::Subrule' )
46674             ],
46675             'line' => 627
46676             }, 'Parse::RecDescent::Production' )
46677             ],
46678             'name' => '_alternation_1_of_production_1_of_rule_cast_specification',
46679             'vars' => '',
46680             'line' => 625
46681             }, 'Parse::RecDescent::Rule' ),
46682             'before' => bless( {
46683             'impcount' => 0,
46684             'calls' => [],
46685             'changed' => 0,
46686             'opcount' => 0,
46687             'prods' => [
46688             bless( {
46689             'number' => '0',
46690             'strcount' => 0,
46691             'dircount' => 0,
46692             'uncommit' => undef,
46693             'error' => undef,
46694             'patcount' => 1,
46695             'actcount' => 0,
46696             'items' => [
46697             bless( {
46698             'pattern' => 'NO CASCADE BEFORE',
46699             'hashname' => '__PATTERN1__',
46700             'description' => '/NO CASCADE BEFORE/i',
46701             'lookahead' => 0,
46702             'rdelim' => '/',
46703             'line' => 268,
46704             'mod' => 'i',
46705             'ldelim' => '/'
46706             }, 'Parse::RecDescent::Token' )
46707             ],
46708             'line' => undef
46709             }, 'Parse::RecDescent::Production' )
46710             ],
46711             'name' => 'before',
46712             'vars' => '',
46713             'line' => 268
46714             }, 'Parse::RecDescent::Rule' ),
46715             '_alternation_1_of_production_83_of_rule_sysibm_function' => bless( {
46716             'impcount' => 0,
46717             'calls' => [],
46718             'changed' => 0,
46719             'opcount' => 0,
46720             'prods' => [
46721             bless( {
46722             'number' => '0',
46723             'strcount' => 0,
46724             'dircount' => 0,
46725             'uncommit' => undef,
46726             'error' => undef,
46727             'patcount' => 1,
46728             'actcount' => 0,
46729             'items' => [
46730             bless( {
46731             'pattern' => 'UCASE',
46732             'hashname' => '__PATTERN1__',
46733             'description' => '/UCASE/i',
46734             'lookahead' => 0,
46735             'rdelim' => '/',
46736             'line' => 628,
46737             'mod' => 'i',
46738             'ldelim' => '/'
46739             }, 'Parse::RecDescent::Token' )
46740             ],
46741             'line' => undef
46742             }, 'Parse::RecDescent::Production' ),
46743             bless( {
46744             'number' => '1',
46745             'strcount' => 0,
46746             'dircount' => 0,
46747             'uncommit' => undef,
46748             'error' => undef,
46749             'patcount' => 1,
46750             'actcount' => 0,
46751             'items' => [
46752             bless( {
46753             'pattern' => 'UPPER',
46754             'hashname' => '__PATTERN1__',
46755             'description' => '/UPPER/i',
46756             'lookahead' => 0,
46757             'rdelim' => '/',
46758             'line' => 628,
46759             'mod' => 'i',
46760             'ldelim' => '/'
46761             }, 'Parse::RecDescent::Token' )
46762             ],
46763             'line' => 628
46764             }, 'Parse::RecDescent::Production' )
46765             ],
46766             'name' => '_alternation_1_of_production_83_of_rule_sysibm_function',
46767             'vars' => '',
46768             'line' => 628
46769             }, 'Parse::RecDescent::Rule' ),
46770             'ranking_function' => bless( {
46771             'impcount' => 1,
46772             'calls' => [
46773             '_alternation_1_of_production_1_of_rule_ranking_function',
46774             'window_partition_clause',
46775             'window_order_clause'
46776             ],
46777             'changed' => 0,
46778             'opcount' => 0,
46779             'prods' => [
46780             bless( {
46781             'number' => '0',
46782             'strcount' => 2,
46783             'dircount' => 0,
46784             'uncommit' => undef,
46785             'error' => undef,
46786             'patcount' => 1,
46787             'actcount' => 0,
46788             'items' => [
46789             bless( {
46790             'subrule' => '_alternation_1_of_production_1_of_rule_ranking_function',
46791             'matchrule' => 0,
46792             'implicit' => '/RANK/, or /DENSE_RANK|DENSERANK/i',
46793             'argcode' => undef,
46794             'lookahead' => 0,
46795             'line' => 544
46796             }, 'Parse::RecDescent::Subrule' ),
46797             bless( {
46798             'pattern' => 'OVER',
46799             'hashname' => '__PATTERN1__',
46800             'description' => '/OVER/i',
46801             'lookahead' => 0,
46802             'rdelim' => '/',
46803             'line' => 544,
46804             'mod' => 'i',
46805             'ldelim' => '/'
46806             }, 'Parse::RecDescent::Token' ),
46807             bless( {
46808             'pattern' => '(',
46809             'hashname' => '__STRING1__',
46810             'description' => '\'(\'',
46811             'lookahead' => 0,
46812             'line' => 544
46813             }, 'Parse::RecDescent::Literal' ),
46814             bless( {
46815             'subrule' => 'window_partition_clause',
46816             'expected' => undef,
46817             'min' => 0,
46818             'argcode' => undef,
46819             'max' => 1,
46820             'matchrule' => 0,
46821             'repspec' => '?',
46822             'lookahead' => 0,
46823             'line' => 544
46824             }, 'Parse::RecDescent::Repetition' ),
46825             bless( {
46826             'subrule' => 'window_order_clause',
46827             'matchrule' => 0,
46828             'implicit' => undef,
46829             'argcode' => undef,
46830             'lookahead' => 0,
46831             'line' => 544
46832             }, 'Parse::RecDescent::Subrule' ),
46833             bless( {
46834             'pattern' => ')',
46835             'hashname' => '__STRING2__',
46836             'description' => '\')\'',
46837             'lookahead' => 0,
46838             'line' => 544
46839             }, 'Parse::RecDescent::Literal' )
46840             ],
46841             'line' => undef
46842             }, 'Parse::RecDescent::Production' )
46843             ],
46844             'name' => 'ranking_function',
46845             'vars' => '',
46846             'line' => 542
46847             }, 'Parse::RecDescent::Rule' ),
46848             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition' => bless( {
46849             'impcount' => 0,
46850             'calls' => [
46851             'numeric_constant'
46852             ],
46853             'changed' => 0,
46854             'opcount' => 0,
46855             'prods' => [
46856             bless( {
46857             'number' => '0',
46858             'strcount' => 0,
46859             'dircount' => 0,
46860             'uncommit' => undef,
46861             'error' => undef,
46862             'patcount' => 1,
46863             'actcount' => 0,
46864             'items' => [
46865             bless( {
46866             'pattern' => 'SELECTIVITY',
46867             'hashname' => '__PATTERN1__',
46868             'description' => '/SELECTIVITY/i',
46869             'lookahead' => 0,
46870             'rdelim' => '/',
46871             'line' => 628,
46872             'mod' => 'i',
46873             'ldelim' => '/'
46874             }, 'Parse::RecDescent::Token' ),
46875             bless( {
46876             'subrule' => 'numeric_constant',
46877             'matchrule' => 0,
46878             'implicit' => undef,
46879             'argcode' => undef,
46880             'lookahead' => 0,
46881             'line' => 628
46882             }, 'Parse::RecDescent::Subrule' )
46883             ],
46884             'line' => undef
46885             }, 'Parse::RecDescent::Production' )
46886             ],
46887             'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
46888             'vars' => '',
46889             'line' => 628
46890             }, 'Parse::RecDescent::Rule' ),
46891             '_alternation_1_of_production_1_of_rule_sysibm_function' => bless( {
46892             'impcount' => 0,
46893             'calls' => [],
46894             'changed' => 0,
46895             'opcount' => 0,
46896             'prods' => [
46897             bless( {
46898             'number' => '0',
46899             'strcount' => 0,
46900             'dircount' => 0,
46901             'uncommit' => undef,
46902             'error' => undef,
46903             'patcount' => 1,
46904             'actcount' => 0,
46905             'items' => [
46906             bless( {
46907             'pattern' => 'ABS',
46908             'hashname' => '__PATTERN1__',
46909             'description' => '/ABS/i',
46910             'lookahead' => 0,
46911             'rdelim' => '/',
46912             'line' => 628,
46913             'mod' => 'i',
46914             'ldelim' => '/'
46915             }, 'Parse::RecDescent::Token' )
46916             ],
46917             'line' => undef
46918             }, 'Parse::RecDescent::Production' ),
46919             bless( {
46920             'number' => '1',
46921             'strcount' => 0,
46922             'dircount' => 0,
46923             'uncommit' => undef,
46924             'error' => undef,
46925             'patcount' => 1,
46926             'actcount' => 0,
46927             'items' => [
46928             bless( {
46929             'pattern' => 'ABSVAL',
46930             'hashname' => '__PATTERN1__',
46931             'description' => '/ABSVAL/i',
46932             'lookahead' => 0,
46933             'rdelim' => '/',
46934             'line' => 628,
46935             'mod' => 'i',
46936             'ldelim' => '/'
46937             }, 'Parse::RecDescent::Token' )
46938             ],
46939             'line' => 628
46940             }, 'Parse::RecDescent::Production' )
46941             ],
46942             'name' => '_alternation_1_of_production_1_of_rule_sysibm_function',
46943             'vars' => '',
46944             'line' => 628
46945             }, 'Parse::RecDescent::Rule' ),
46946             'reference_b' => bless( {
46947             'impcount' => 0,
46948             'calls' => [
46949             'old_new_corr'
46950             ],
46951             'changed' => 0,
46952             'opcount' => 0,
46953             'prods' => [
46954             bless( {
46955             'number' => '0',
46956             'strcount' => 0,
46957             'dircount' => 0,
46958             'uncommit' => undef,
46959             'error' => undef,
46960             'patcount' => 1,
46961             'actcount' => 1,
46962             'items' => [
46963             bless( {
46964             'pattern' => 'REFERENCING',
46965             'hashname' => '__PATTERN1__',
46966             'description' => '/REFERENCING/i',
46967             'lookahead' => 0,
46968             'rdelim' => '/',
46969             'line' => 280,
46970             'mod' => 'i',
46971             'ldelim' => '/'
46972             }, 'Parse::RecDescent::Token' ),
46973             bless( {
46974             'subrule' => 'old_new_corr',
46975             'expected' => undef,
46976             'min' => 0,
46977             'argcode' => undef,
46978             'max' => 2,
46979             'matchrule' => 0,
46980             'repspec' => '0..2',
46981             'lookahead' => 0,
46982             'line' => 280
46983             }, 'Parse::RecDescent::Repetition' ),
46984             bless( {
46985             'hashname' => '__ACTION1__',
46986             'lookahead' => 0,
46987             'line' => 281,
46988             'code' => '{ $return = join(\' \', $item[1], join(\' \', @{$item[2]}) ) }'
46989             }, 'Parse::RecDescent::Action' )
46990             ],
46991             'line' => undef
46992             }, 'Parse::RecDescent::Production' )
46993             ],
46994             'name' => 'reference_b',
46995             'vars' => '',
46996             'line' => 280
46997             }, 'Parse::RecDescent::Rule' ),
46998             '_alternation_1_of_production_1_of_rule_simple_when_clause' => bless( {
46999             'impcount' => 1,
47000             'calls' => [
47001             'search_condition',
47002             '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause'
47003             ],
47004             'changed' => 0,
47005             'opcount' => 0,
47006             'prods' => [
47007             bless( {
47008             'number' => '0',
47009             'strcount' => 0,
47010             'dircount' => 0,
47011             'uncommit' => undef,
47012             'error' => undef,
47013             'patcount' => 2,
47014             'actcount' => 0,
47015             'items' => [
47016             bless( {
47017             'pattern' => 'WHEN',
47018             'hashname' => '__PATTERN1__',
47019             'description' => '/WHEN/i',
47020             'lookahead' => 0,
47021             'rdelim' => '/',
47022             'line' => 624,
47023             'mod' => 'i',
47024             'ldelim' => '/'
47025             }, 'Parse::RecDescent::Token' ),
47026             bless( {
47027             'subrule' => 'search_condition',
47028             'matchrule' => 0,
47029             'implicit' => undef,
47030             'argcode' => undef,
47031             'lookahead' => 0,
47032             'line' => 624
47033             }, 'Parse::RecDescent::Subrule' ),
47034             bless( {
47035             'pattern' => 'THEN',
47036             'hashname' => '__PATTERN2__',
47037             'description' => '/THEN/i',
47038             'lookahead' => 0,
47039             'rdelim' => '/',
47040             'line' => 624,
47041             'mod' => 'i',
47042             'ldelim' => '/'
47043             }, 'Parse::RecDescent::Token' ),
47044             bless( {
47045             'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause',
47046             'matchrule' => 0,
47047             'implicit' => 'result_expression, or /NULL/i',
47048             'argcode' => undef,
47049             'lookahead' => 0,
47050             'line' => 627
47051             }, 'Parse::RecDescent::Subrule' )
47052             ],
47053             'line' => undef
47054             }, 'Parse::RecDescent::Production' )
47055             ],
47056             'name' => '_alternation_1_of_production_1_of_rule_simple_when_clause',
47057             'vars' => '',
47058             'line' => 624
47059             }, 'Parse::RecDescent::Rule' ),
47060             '_alternation_1_of_production_9_of_rule_sysibm_function' => bless( {
47061             'impcount' => 0,
47062             'calls' => [],
47063             'changed' => 0,
47064             'opcount' => 0,
47065             'prods' => [
47066             bless( {
47067             'number' => '0',
47068             'strcount' => 0,
47069             'dircount' => 0,
47070             'uncommit' => undef,
47071             'error' => undef,
47072             'patcount' => 1,
47073             'actcount' => 0,
47074             'items' => [
47075             bless( {
47076             'pattern' => 'CORRELATION',
47077             'hashname' => '__PATTERN1__',
47078             'description' => '/CORRELATION/i',
47079             'lookahead' => 0,
47080             'rdelim' => '/',
47081             'line' => 628,
47082             'mod' => 'i',
47083             'ldelim' => '/'
47084             }, 'Parse::RecDescent::Token' )
47085             ],
47086             'line' => undef
47087             }, 'Parse::RecDescent::Production' ),
47088             bless( {
47089             'number' => '1',
47090             'strcount' => 0,
47091             'dircount' => 0,
47092             'uncommit' => undef,
47093             'error' => undef,
47094             'patcount' => 1,
47095             'actcount' => 0,
47096             'items' => [
47097             bless( {
47098             'pattern' => 'CORR',
47099             'hashname' => '__PATTERN1__',
47100             'description' => '/CORR/',
47101             'lookahead' => 0,
47102             'rdelim' => '/',
47103             'line' => 628,
47104             'mod' => '',
47105             'ldelim' => '/'
47106             }, 'Parse::RecDescent::Token' )
47107             ],
47108             'line' => 628
47109             }, 'Parse::RecDescent::Production' )
47110             ],
47111             'name' => '_alternation_1_of_production_9_of_rule_sysibm_function',
47112             'vars' => '',
47113             'line' => 628
47114             }, 'Parse::RecDescent::Rule' ),
47115             '_alternation_1_of_production_7_of_rule_sysfun' => bless( {
47116             'impcount' => 0,
47117             'calls' => [],
47118             'changed' => 0,
47119             'opcount' => 0,
47120             'prods' => [
47121             bless( {
47122             'number' => '0',
47123             'strcount' => 0,
47124             'dircount' => 0,
47125             'uncommit' => undef,
47126             'error' => undef,
47127             'patcount' => 1,
47128             'actcount' => 0,
47129             'items' => [
47130             bless( {
47131             'pattern' => 'CEIL',
47132             'hashname' => '__PATTERN1__',
47133             'description' => '/CEIL/i',
47134             'lookahead' => 0,
47135             'rdelim' => '/',
47136             'line' => 628,
47137             'mod' => 'i',
47138             'ldelim' => '/'
47139             }, 'Parse::RecDescent::Token' )
47140             ],
47141             'line' => undef
47142             }, 'Parse::RecDescent::Production' ),
47143             bless( {
47144             'number' => '1',
47145             'strcount' => 0,
47146             'dircount' => 0,
47147             'uncommit' => undef,
47148             'error' => undef,
47149             'patcount' => 1,
47150             'actcount' => 0,
47151             'items' => [
47152             bless( {
47153             'pattern' => 'CEILING',
47154             'hashname' => '__PATTERN1__',
47155             'description' => '/CEILING/i',
47156             'lookahead' => 0,
47157             'rdelim' => '/',
47158             'line' => 628,
47159             'mod' => 'i',
47160             'ldelim' => '/'
47161             }, 'Parse::RecDescent::Token' )
47162             ],
47163             'line' => 628
47164             }, 'Parse::RecDescent::Production' )
47165             ],
47166             'name' => '_alternation_1_of_production_7_of_rule_sysfun',
47167             'vars' => '',
47168             'line' => 628
47169             }, 'Parse::RecDescent::Rule' ),
47170             'prevval_expression' => bless( {
47171             'impcount' => 0,
47172             'calls' => [
47173             'sequence_name'
47174             ],
47175             'changed' => 0,
47176             'opcount' => 0,
47177             'prods' => [
47178             bless( {
47179             'number' => '0',
47180             'strcount' => 0,
47181             'dircount' => 0,
47182             'uncommit' => undef,
47183             'error' => undef,
47184             'patcount' => 1,
47185             'actcount' => 0,
47186             'items' => [
47187             bless( {
47188             'pattern' => 'PREVVAL\\s+FOR',
47189             'hashname' => '__PATTERN1__',
47190             'description' => '/PREVVAL\\\\s+FOR/i',
47191             'lookahead' => 0,
47192             'rdelim' => '/',
47193             'line' => 613,
47194             'mod' => 'i',
47195             'ldelim' => '/'
47196             }, 'Parse::RecDescent::Token' ),
47197             bless( {
47198             'subrule' => 'sequence_name',
47199             'matchrule' => 0,
47200             'implicit' => undef,
47201             'argcode' => undef,
47202             'lookahead' => 0,
47203             'line' => 613
47204             }, 'Parse::RecDescent::Subrule' )
47205             ],
47206             'line' => undef
47207             }, 'Parse::RecDescent::Production' )
47208             ],
47209             'name' => 'prevval_expression',
47210             'vars' => '',
47211             'line' => 613
47212             }, 'Parse::RecDescent::Rule' ),
47213             'where_clause' => bless( {
47214             'impcount' => 0,
47215             'calls' => [
47216             'WHERE',
47217             'search_condition'
47218             ],
47219             'changed' => 0,
47220             'opcount' => 0,
47221             'prods' => [
47222             bless( {
47223             'number' => '0',
47224             'strcount' => 0,
47225             'dircount' => 0,
47226             'uncommit' => undef,
47227             'error' => undef,
47228             'patcount' => 0,
47229             'actcount' => 0,
47230             'items' => [
47231             bless( {
47232             'subrule' => 'WHERE',
47233             'matchrule' => 0,
47234             'implicit' => undef,
47235             'argcode' => undef,
47236             'lookahead' => 0,
47237             'line' => 218
47238             }, 'Parse::RecDescent::Subrule' ),
47239             bless( {
47240             'subrule' => 'search_condition',
47241             'matchrule' => 0,
47242             'implicit' => undef,
47243             'argcode' => undef,
47244             'lookahead' => 0,
47245             'line' => 218
47246             }, 'Parse::RecDescent::Subrule' )
47247             ],
47248             'line' => undef
47249             }, 'Parse::RecDescent::Production' )
47250             ],
47251             'name' => 'where_clause',
47252             'vars' => '',
47253             'line' => 216
47254             }, 'Parse::RecDescent::Rule' ),
47255             'group_start' => bless( {
47256             'impcount' => 0,
47257             'calls' => [
47258             'unsigned_constant'
47259             ],
47260             'changed' => 0,
47261             'opcount' => 0,
47262             'prods' => [
47263             bless( {
47264             'number' => '0',
47265             'strcount' => 0,
47266             'dircount' => 0,
47267             'uncommit' => undef,
47268             'error' => undef,
47269             'patcount' => 1,
47270             'actcount' => 0,
47271             'items' => [
47272             bless( {
47273             'pattern' => 'UNBOUNDED\\s+PRECEDING',
47274             'hashname' => '__PATTERN1__',
47275             'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
47276             'lookahead' => 0,
47277             'rdelim' => '/',
47278             'line' => 574,
47279             'mod' => 'i',
47280             'ldelim' => '/'
47281             }, 'Parse::RecDescent::Token' )
47282             ],
47283             'line' => undef
47284             }, 'Parse::RecDescent::Production' ),
47285             bless( {
47286             'number' => '1',
47287             'strcount' => 0,
47288             'dircount' => 0,
47289             'uncommit' => undef,
47290             'error' => undef,
47291             'patcount' => 1,
47292             'actcount' => 0,
47293             'items' => [
47294             bless( {
47295             'subrule' => 'unsigned_constant',
47296             'matchrule' => 0,
47297             'implicit' => undef,
47298             'argcode' => undef,
47299             'lookahead' => 0,
47300             'line' => 575
47301             }, 'Parse::RecDescent::Subrule' ),
47302             bless( {
47303             'pattern' => 'PRECEDING',
47304             'hashname' => '__PATTERN1__',
47305             'description' => '/PRECEDING/i',
47306             'lookahead' => 0,
47307             'rdelim' => '/',
47308             'line' => 575,
47309             'mod' => 'i',
47310             'ldelim' => '/'
47311             }, 'Parse::RecDescent::Token' )
47312             ],
47313             'line' => 575
47314             }, 'Parse::RecDescent::Production' ),
47315             bless( {
47316             'number' => '2',
47317             'strcount' => 0,
47318             'dircount' => 0,
47319             'uncommit' => undef,
47320             'error' => undef,
47321             'patcount' => 1,
47322             'actcount' => 0,
47323             'items' => [
47324             bless( {
47325             'pattern' => 'CURRENT\\s+ROW',
47326             'hashname' => '__PATTERN1__',
47327             'description' => '/CURRENT\\\\s+ROW/i',
47328             'lookahead' => 0,
47329             'rdelim' => '/',
47330             'line' => 576,
47331             'mod' => 'i',
47332             'ldelim' => '/'
47333             }, 'Parse::RecDescent::Token' )
47334             ],
47335             'line' => 576
47336             }, 'Parse::RecDescent::Production' )
47337             ],
47338             'name' => 'group_start',
47339             'vars' => '',
47340             'line' => 574
47341             }, 'Parse::RecDescent::Rule' ),
47342             'correlation_name' => bless( {
47343             'impcount' => 0,
47344             'calls' => [
47345             'NAME'
47346             ],
47347             'changed' => 0,
47348             'opcount' => 0,
47349             'prods' => [
47350             bless( {
47351             'number' => '0',
47352             'strcount' => 0,
47353             'dircount' => 0,
47354             'uncommit' => undef,
47355             'error' => undef,
47356             'patcount' => 0,
47357             'actcount' => 0,
47358             'items' => [
47359             bless( {
47360             'subrule' => 'NAME',
47361             'matchrule' => 0,
47362             'implicit' => undef,
47363             'argcode' => undef,
47364             'lookahead' => 0,
47365             'line' => 138
47366             }, 'Parse::RecDescent::Subrule' )
47367             ],
47368             'line' => undef
47369             }, 'Parse::RecDescent::Production' )
47370             ],
47371             'name' => 'correlation_name',
47372             'vars' => '',
47373             'line' => 138
47374             }, 'Parse::RecDescent::Rule' ),
47375             'SQL_procedure_statement' => bless( {
47376             'impcount' => 0,
47377             'calls' => [],
47378             'changed' => 0,
47379             'opcount' => 0,
47380             'prods' => [
47381             bless( {
47382             'number' => '0',
47383             'strcount' => 0,
47384             'dircount' => 0,
47385             'uncommit' => undef,
47386             'error' => undef,
47387             'patcount' => 2,
47388             'actcount' => 1,
47389             'items' => [
47390             bless( {
47391             'pattern' => '[^;]*',
47392             'hashname' => '__PATTERN1__',
47393             'description' => '/[^;]*/',
47394             'lookahead' => 0,
47395             'rdelim' => '/',
47396             'line' => 94,
47397             'mod' => '',
47398             'ldelim' => '/'
47399             }, 'Parse::RecDescent::Token' ),
47400             bless( {
47401             'pattern' => '(;|\\z)',
47402             'hashname' => '__PATTERN2__',
47403             'description' => '/(;|\\\\z)/',
47404             'lookahead' => 0,
47405             'rdelim' => '/',
47406             'line' => 94,
47407             'mod' => '',
47408             'ldelim' => '/'
47409             }, 'Parse::RecDescent::Token' ),
47410             bless( {
47411             'hashname' => '__ACTION1__',
47412             'lookahead' => 0,
47413             'line' => 94,
47414             'code' => '{ $return = $item[1] . $item[2] }'
47415             }, 'Parse::RecDescent::Action' )
47416             ],
47417             'line' => undef
47418             }, 'Parse::RecDescent::Production' )
47419             ],
47420             'name' => 'SQL_procedure_statement',
47421             'vars' => '',
47422             'line' => 94
47423             }, 'Parse::RecDescent::Rule' ),
47424             'group_between' => bless( {
47425             'impcount' => 0,
47426             'calls' => [
47427             'group_bound1',
47428             'group_bound2'
47429             ],
47430             'changed' => 0,
47431             'opcount' => 0,
47432             'prods' => [
47433             bless( {
47434             'number' => '0',
47435             'strcount' => 0,
47436             'dircount' => 0,
47437             'uncommit' => undef,
47438             'error' => undef,
47439             'patcount' => 2,
47440             'actcount' => 0,
47441             'items' => [
47442             bless( {
47443             'pattern' => 'BETWEEN',
47444             'hashname' => '__PATTERN1__',
47445             'description' => '/BETWEEN/i',
47446             'lookahead' => 0,
47447             'rdelim' => '/',
47448             'line' => 578,
47449             'mod' => 'i',
47450             'ldelim' => '/'
47451             }, 'Parse::RecDescent::Token' ),
47452             bless( {
47453             'subrule' => 'group_bound1',
47454             'matchrule' => 0,
47455             'implicit' => undef,
47456             'argcode' => undef,
47457             'lookahead' => 0,
47458             'line' => 578
47459             }, 'Parse::RecDescent::Subrule' ),
47460             bless( {
47461             'pattern' => 'AND',
47462             'hashname' => '__PATTERN2__',
47463             'description' => '/AND/i',
47464             'lookahead' => 0,
47465             'rdelim' => '/',
47466             'line' => 578,
47467             'mod' => 'i',
47468             'ldelim' => '/'
47469             }, 'Parse::RecDescent::Token' ),
47470             bless( {
47471             'subrule' => 'group_bound2',
47472             'matchrule' => 0,
47473             'implicit' => undef,
47474             'argcode' => undef,
47475             'lookahead' => 0,
47476             'line' => 578
47477             }, 'Parse::RecDescent::Subrule' )
47478             ],
47479             'line' => undef
47480             }, 'Parse::RecDescent::Production' )
47481             ],
47482             'name' => 'group_between',
47483             'vars' => '',
47484             'line' => 578
47485             }, 'Parse::RecDescent::Rule' ),
47486             'nextval_expression' => bless( {
47487             'impcount' => 0,
47488             'calls' => [
47489             'sequence_name'
47490             ],
47491             'changed' => 0,
47492             'opcount' => 0,
47493             'prods' => [
47494             bless( {
47495             'number' => '0',
47496             'strcount' => 0,
47497             'dircount' => 0,
47498             'uncommit' => undef,
47499             'error' => undef,
47500             'patcount' => 1,
47501             'actcount' => 0,
47502             'items' => [
47503             bless( {
47504             'pattern' => 'NEXTVAL\\s+FOR',
47505             'hashname' => '__PATTERN1__',
47506             'description' => '/NEXTVAL\\\\s+FOR/i',
47507             'lookahead' => 0,
47508             'rdelim' => '/',
47509             'line' => 611,
47510             'mod' => 'i',
47511             'ldelim' => '/'
47512             }, 'Parse::RecDescent::Token' ),
47513             bless( {
47514             'subrule' => 'sequence_name',
47515             'matchrule' => 0,
47516             'implicit' => undef,
47517             'argcode' => undef,
47518             'lookahead' => 0,
47519             'line' => 611
47520             }, 'Parse::RecDescent::Subrule' )
47521             ],
47522             'line' => undef
47523             }, 'Parse::RecDescent::Production' )
47524             ],
47525             'name' => 'nextval_expression',
47526             'vars' => '',
47527             'line' => 611
47528             }, 'Parse::RecDescent::Rule' ),
47529             'desc_option' => bless( {
47530             'impcount' => 1,
47531             'calls' => [
47532             '_alternation_1_of_production_1_of_rule_desc_option'
47533             ],
47534             'changed' => 0,
47535             'opcount' => 0,
47536             'prods' => [
47537             bless( {
47538             'number' => '0',
47539             'strcount' => 0,
47540             'dircount' => 0,
47541             'uncommit' => undef,
47542             'error' => undef,
47543             'patcount' => 1,
47544             'actcount' => 0,
47545             'items' => [
47546             bless( {
47547             'pattern' => 'DESC',
47548             'hashname' => '__PATTERN1__',
47549             'description' => '/DESC/i',
47550             'lookahead' => 0,
47551             'rdelim' => '/',
47552             'line' => 564,
47553             'mod' => 'i',
47554             'ldelim' => '/'
47555             }, 'Parse::RecDescent::Token' ),
47556             bless( {
47557             'subrule' => '_alternation_1_of_production_1_of_rule_desc_option',
47558             'expected' => '/NULLS\\\\s+FIRST/i, or /NULLS\\\\s+LAST/i',
47559             'min' => 0,
47560             'argcode' => undef,
47561             'max' => 1,
47562             'matchrule' => 0,
47563             'repspec' => '?',
47564             'lookahead' => 0,
47565             'line' => 564
47566             }, 'Parse::RecDescent::Repetition' )
47567             ],
47568             'line' => undef
47569             }, 'Parse::RecDescent::Production' )
47570             ],
47571             'name' => 'desc_option',
47572             'vars' => '',
47573             'line' => 564
47574             }, 'Parse::RecDescent::Rule' ),
47575             'column_list' => bless( {
47576             'impcount' => 0,
47577             'calls' => [
47578             'column_name'
47579             ],
47580             'changed' => 0,
47581             'opcount' => 0,
47582             'prods' => [
47583             bless( {
47584             'number' => '0',
47585             'strcount' => 2,
47586             'dircount' => 1,
47587             'uncommit' => undef,
47588             'error' => undef,
47589             'patcount' => 1,
47590             'actcount' => 1,
47591             'op' => [],
47592             'items' => [
47593             bless( {
47594             'pattern' => '(',
47595             'hashname' => '__STRING1__',
47596             'description' => '\'(\'',
47597             'lookahead' => 0,
47598             'line' => 96
47599             }, 'Parse::RecDescent::Literal' ),
47600             bless( {
47601             'expected' => '',
47602             'min' => 1,
47603             'name' => '\'column_name(s)\'',
47604             'max' => 100000000,
47605             'leftarg' => bless( {
47606             'subrule' => 'column_name',
47607             'matchrule' => 0,
47608             'implicit' => undef,
47609             'argcode' => undef,
47610             'lookahead' => 0,
47611             'line' => 96
47612             }, 'Parse::RecDescent::Subrule' ),
47613             'rightarg' => bless( {
47614             'subrule' => 'column_name',
47615             'matchrule' => 0,
47616             'implicit' => undef,
47617             'argcode' => undef,
47618             'lookahead' => 0,
47619             'line' => 96
47620             }, 'Parse::RecDescent::Subrule' ),
47621             'hashname' => '__DIRECTIVE1__',
47622             'type' => 'leftop',
47623             'op' => bless( {
47624             'pattern' => ',',
47625             'hashname' => '__PATTERN1__',
47626             'description' => '/,/',
47627             'lookahead' => 0,
47628             'rdelim' => '/',
47629             'line' => 96,
47630             'mod' => '',
47631             'ldelim' => '/'
47632             }, 'Parse::RecDescent::Token' )
47633             }, 'Parse::RecDescent::Operator' ),
47634             bless( {
47635             'pattern' => ')',
47636             'hashname' => '__STRING2__',
47637             'description' => '\')\'',
47638             'lookahead' => 0,
47639             'line' => 96
47640             }, 'Parse::RecDescent::Literal' ),
47641             bless( {
47642             'hashname' => '__ACTION1__',
47643             'lookahead' => 0,
47644             'line' => 97,
47645             'code' => '{
47646             $return = join(\' \', \'(\', @{$item[2]}, \')\');
47647             }'
47648             }, 'Parse::RecDescent::Action' )
47649             ],
47650             'line' => undef
47651             }, 'Parse::RecDescent::Production' )
47652             ],
47653             'name' => 'column_list',
47654             'vars' => '',
47655             'line' => 96
47656             }, 'Parse::RecDescent::Rule' ),
47657             '_alternation_1_of_production_63_of_rule_sysibm_function' => bless( {
47658             'impcount' => 0,
47659             'calls' => [],
47660             'changed' => 0,
47661             'opcount' => 0,
47662             'prods' => [
47663             bless( {
47664             'number' => '0',
47665             'strcount' => 0,
47666             'dircount' => 0,
47667             'uncommit' => undef,
47668             'error' => undef,
47669             'patcount' => 1,
47670             'actcount' => 0,
47671             'items' => [
47672             bless( {
47673             'pattern' => 'REGR_INTERCEPT',
47674             'hashname' => '__PATTERN1__',
47675             'description' => '/REGR_INTERCEPT/i',
47676             'lookahead' => 0,
47677             'rdelim' => '/',
47678             'line' => 628,
47679             'mod' => 'i',
47680             'ldelim' => '/'
47681             }, 'Parse::RecDescent::Token' )
47682             ],
47683             'line' => undef
47684             }, 'Parse::RecDescent::Production' ),
47685             bless( {
47686             'number' => '1',
47687             'strcount' => 0,
47688             'dircount' => 0,
47689             'uncommit' => undef,
47690             'error' => undef,
47691             'patcount' => 1,
47692             'actcount' => 0,
47693             'items' => [
47694             bless( {
47695             'pattern' => 'REGR_ICPT',
47696             'hashname' => '__PATTERN1__',
47697             'description' => '/REGR_ICPT/i',
47698             'lookahead' => 0,
47699             'rdelim' => '/',
47700             'line' => 628,
47701             'mod' => 'i',
47702             'ldelim' => '/'
47703             }, 'Parse::RecDescent::Token' )
47704             ],
47705             'line' => 628
47706             }, 'Parse::RecDescent::Production' )
47707             ],
47708             'name' => '_alternation_1_of_production_63_of_rule_sysibm_function',
47709             'vars' => '',
47710             'line' => 628
47711             }, 'Parse::RecDescent::Rule' ),
47712             'dereference_operation' => bless( {
47713             'impcount' => 1,
47714             'calls' => [
47715             'scoped_reference_expression',
47716             'name1',
47717             '_alternation_1_of_production_1_of_rule_dereference_operation'
47718             ],
47719             'changed' => 0,
47720             'opcount' => 0,
47721             'prods' => [
47722             bless( {
47723             'number' => '0',
47724             'strcount' => 1,
47725             'dircount' => 0,
47726             'uncommit' => undef,
47727             'error' => undef,
47728             'patcount' => 0,
47729             'actcount' => 0,
47730             'items' => [
47731             bless( {
47732             'subrule' => 'scoped_reference_expression',
47733             'matchrule' => 0,
47734             'implicit' => undef,
47735             'argcode' => undef,
47736             'lookahead' => 0,
47737             'line' => 526
47738             }, 'Parse::RecDescent::Subrule' ),
47739             bless( {
47740             'pattern' => '->',
47741             'hashname' => '__STRING1__',
47742             'description' => '\'->\'',
47743             'lookahead' => 0,
47744             'line' => 526
47745             }, 'Parse::RecDescent::Literal' ),
47746             bless( {
47747             'subrule' => 'name1',
47748             'matchrule' => 0,
47749             'implicit' => undef,
47750             'argcode' => undef,
47751             'lookahead' => 0,
47752             'line' => 526
47753             }, 'Parse::RecDescent::Subrule' ),
47754             bless( {
47755             'subrule' => '_alternation_1_of_production_1_of_rule_dereference_operation',
47756             'expected' => '\'(\'',
47757             'min' => 0,
47758             'argcode' => undef,
47759             'max' => 1,
47760             'matchrule' => 0,
47761             'repspec' => '?',
47762             'lookahead' => 0,
47763             'line' => 527
47764             }, 'Parse::RecDescent::Repetition' )
47765             ],
47766             'line' => undef
47767             }, 'Parse::RecDescent::Production' )
47768             ],
47769             'name' => 'dereference_operation',
47770             'vars' => '',
47771             'line' => 526
47772             }, 'Parse::RecDescent::Rule' ),
47773             'OUTER' => bless( {
47774             'impcount' => 0,
47775             'calls' => [],
47776             'changed' => 0,
47777             'opcount' => 0,
47778             'prods' => [
47779             bless( {
47780             'number' => '0',
47781             'strcount' => 0,
47782             'dircount' => 0,
47783             'uncommit' => undef,
47784             'error' => undef,
47785             'patcount' => 1,
47786             'actcount' => 0,
47787             'items' => [
47788             bless( {
47789             'pattern' => 'outer',
47790             'hashname' => '__PATTERN1__',
47791             'description' => '/outer/i',
47792             'lookahead' => 0,
47793             'rdelim' => '/',
47794             'line' => 115,
47795             'mod' => 'i',
47796             'ldelim' => '/'
47797             }, 'Parse::RecDescent::Token' )
47798             ],
47799             'line' => undef
47800             }, 'Parse::RecDescent::Production' )
47801             ],
47802             'name' => 'OUTER',
47803             'vars' => '',
47804             'line' => 115
47805             }, 'Parse::RecDescent::Rule' ),
47806             'window_order_clause' => bless( {
47807             'impcount' => 1,
47808             'calls' => [
47809             '_alternation_1_of_production_1_of_rule_window_order_clause'
47810             ],
47811             'changed' => 0,
47812             'opcount' => 0,
47813             'prods' => [
47814             bless( {
47815             'number' => '0',
47816             'strcount' => 0,
47817             'dircount' => 1,
47818             'uncommit' => undef,
47819             'error' => undef,
47820             'patcount' => 2,
47821             'actcount' => 0,
47822             'op' => [],
47823             'items' => [
47824             bless( {
47825             'pattern' => 'ORDER\\s+BY',
47826             'hashname' => '__PATTERN1__',
47827             'description' => '/ORDER\\\\s+BY/i',
47828             'lookahead' => 0,
47829             'rdelim' => '/',
47830             'line' => 555,
47831             'mod' => 'i',
47832             'ldelim' => '/'
47833             }, 'Parse::RecDescent::Token' ),
47834             bless( {
47835             'expected' => '',
47836             'min' => 1,
47837             'name' => '\'_alternation_1_of_production_1_of_rule_window_order_clause(s)\'',
47838             'max' => 100000000,
47839             'leftarg' => bless( {
47840             'subrule' => '_alternation_1_of_production_1_of_rule_window_order_clause',
47841             'matchrule' => 0,
47842             'implicit' => 'sort_key_expression',
47843             'argcode' => undef,
47844             'lookahead' => 0,
47845             'line' => 560
47846             }, 'Parse::RecDescent::Subrule' ),
47847             'rightarg' => bless( {
47848             'subrule' => '_alternation_1_of_production_1_of_rule_window_order_clause',
47849             'matchrule' => 0,
47850             'implicit' => 'sort_key_expression',
47851             'argcode' => undef,
47852             'lookahead' => 0,
47853             'line' => 560
47854             }, 'Parse::RecDescent::Subrule' ),
47855             'hashname' => '__DIRECTIVE1__',
47856             'type' => 'leftop',
47857             'op' => bless( {
47858             'pattern' => ',',
47859             'hashname' => '__PATTERN2__',
47860             'description' => '/,/',
47861             'lookahead' => 0,
47862             'rdelim' => '/',
47863             'line' => 560,
47864             'mod' => '',
47865             'ldelim' => '/'
47866             }, 'Parse::RecDescent::Token' )
47867             }, 'Parse::RecDescent::Operator' )
47868             ],
47869             'line' => undef
47870             }, 'Parse::RecDescent::Production' )
47871             ],
47872             'name' => 'window_order_clause',
47873             'vars' => '',
47874             'line' => 555
47875             }, 'Parse::RecDescent::Rule' ),
47876             'TRIGGER' => bless( {
47877             'impcount' => 0,
47878             'calls' => [],
47879             'changed' => 0,
47880             'opcount' => 0,
47881             'prods' => [
47882             bless( {
47883             'number' => '0',
47884             'strcount' => 0,
47885             'dircount' => 0,
47886             'uncommit' => undef,
47887             'error' => undef,
47888             'patcount' => 1,
47889             'actcount' => 0,
47890             'items' => [
47891             bless( {
47892             'pattern' => 'trigger',
47893             'hashname' => '__PATTERN1__',
47894             'description' => '/trigger/i',
47895             'lookahead' => 0,
47896             'rdelim' => '/',
47897             'line' => 103,
47898             'mod' => 'i',
47899             'ldelim' => '/'
47900             }, 'Parse::RecDescent::Token' )
47901             ],
47902             'line' => undef
47903             }, 'Parse::RecDescent::Production' )
47904             ],
47905             'name' => 'TRIGGER',
47906             'vars' => '',
47907             'line' => 103
47908             }, 'Parse::RecDescent::Rule' ),
47909             'comment' => bless( {
47910             'impcount' => 0,
47911             'calls' => [],
47912             'changed' => 0,
47913             'opcount' => 0,
47914             'prods' => [
47915             bless( {
47916             'number' => '0',
47917             'strcount' => 0,
47918             'dircount' => 0,
47919             'uncommit' => undef,
47920             'error' => undef,
47921             'patcount' => 1,
47922             'actcount' => 1,
47923             'items' => [
47924             bless( {
47925             'pattern' => '^\\s*-{2}.*\\n',
47926             'hashname' => '__PATTERN1__',
47927             'description' => '/^\\\\s*-\\{2\\}.*\\\\n/',
47928             'lookahead' => 0,
47929             'rdelim' => '/',
47930             'line' => 27,
47931             'mod' => '',
47932             'ldelim' => '/'
47933             }, 'Parse::RecDescent::Token' ),
47934             bless( {
47935             'hashname' => '__ACTION1__',
47936             'lookahead' => 0,
47937             'line' => 28,
47938             'code' => '{
47939             my $comment = $item[1];
47940             $comment =~ s/^\\s*(-{2})\\s*//;
47941             $comment =~ s/\\s*$//;
47942             $return = $comment;
47943             }'
47944             }, 'Parse::RecDescent::Action' )
47945             ],
47946             'line' => undef
47947             }, 'Parse::RecDescent::Production' )
47948             ],
47949             'name' => 'comment',
47950             'vars' => '',
47951             'line' => 27
47952             }, 'Parse::RecDescent::Rule' )
47953             }
47954             }, 'Parse::RecDescent' );
47955             }